:root {
    --bg: #f8f9fb;
    --bg-soft: #ffffff;
    --card: #ffffff;
    --border: #e2e6ed;
    --border-soft: #eef0f5;
    --text: #1a1f2e;
    --muted: #6b7280;
    --muted-light: #9ca3af;
    --primary: #2563eb;
    --primary-hover: #1d4ed8;
    --primary-light: #eff6ff;
    --accent: #0ea5e9;
    --success: #16a34a;
    --error: #dc2626;
    --error-bg: #fef2f2;
    --error-border: #fecaca;
    --header-bg: #fdfdfe;
    --footer-bg: #f3f4f6;
    --radius: 12px;
    --shell-width: 1280px;
    --compact-shell-width: 880px;
    --shadow: 0 1px 3px rgba(0,0,0,0.07), 0 4px 16px rgba(0,0,0,0.05);
    font-family: 'Vazirmatn', system-ui, sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
}

.page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ─── هدر ─── */
.topbar {
    background: var(--header-bg);
    border-bottom: 1px solid var(--border);
}

.topbar-inner {
    max-width: var(--shell-width);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.5rem;
    direction: ltr;
}

.brand {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 800;
    font-size: 1.15rem;
    color: var(--text);
    text-decoration: none;
    letter-spacing: -0.3px;
}

.brand-lock {
    font-size: 1rem;
}

.brand .accent {
    color: var(--primary);
}

.nav {
    display: flex;
    gap: 1.4rem;
    align-items: center;
}

    .nav a {
        color: var(--muted);
        text-decoration: none;
        font-size: 0.88rem;
        font-weight: 500;
    }

        .nav a:hover {
            color: var(--text);
        }

.tool-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 1.2rem;
}

.tool-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 0.75rem;
    align-items: start;
    min-height: 8.5rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--card);
    color: var(--text);
    text-decoration: none;
    box-shadow: var(--shadow);
    transition: border-color 0.15s, transform 0.15s, background 0.15s;
}

    .tool-card:hover {
        transform: translateY(-2px);
        border-color: var(--primary);
        background: var(--primary-light);
    }

    .tool-card strong {
        font-size: 0.95rem;
        line-height: 1.5;
    }

    .tool-card span:last-child {
        grid-column: 1 / -1;
        color: var(--muted);
        font-size: 0.82rem;
        line-height: 1.8;
    }

.tool-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 8px;
    background: var(--primary);
    color: white;
    font-size: 0.8rem;
    font-weight: 800;
    direction: ltr;
}

.home-issue-hero {
    display: grid;
    place-items: center;
    margin: 0 0 2rem;
    padding: 3.2rem 2.4rem;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.18), rgba(37, 99, 235, 0.06)), #2563eb;
    color: #fff;
    box-shadow: 0 18px 44px rgba(37, 99, 235, 0.22);
    overflow: hidden;
}

.home-issue-copy {
    display: grid;
    gap: 1rem;
    justify-items: center;
    max-width: 50rem;
    text-align: center;
}

.home-issue-hero h1 {
    margin: 0;
    font-size: clamp(1.85rem, 3vw, 2.65rem);
    line-height: 1.45;
    font-weight: 900;
    letter-spacing: 0;
    white-space: nowrap;
}

.home-issue-hero p {
    max-width: 40rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 1rem;
    line-height: 1.9;
}

.home-hero-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.45rem;
}

    .home-hero-actions .btn {
        margin-top: 0;
        text-decoration: none;
    }

.hero-primary {
    background: #fff;
    color: #1d4ed8;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

    .hero-primary:hover {
        color: #1d4ed8;
        background: #f8fafc;
    }

.hero-secondary {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.42);
}

    .hero-secondary:hover {
        background: rgba(255, 255, 255, 0.22);
    }

.nav-form {
    margin: 0;
}

    .nav-form button {
        border: none;
        background: transparent;
        color: var(--muted);
        cursor: pointer;
        font: inherit;
        font-weight: 600;
        padding: 0;
    }

        .nav-form button:hover {
            color: var(--primary);
        }

.home-tools-heading {
    margin-top: 0;
}

    .home-tools-heading h2 {
        margin: 0 0 0.5rem;
        color: var(--text);
        font-size: 1.45rem;
        font-weight: 850;
        line-height: 1.6;
    }

@media (max-width: 920px) {
    .tool-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.info-panel {
    margin-top: 1.2rem;
    padding: 1.4rem;
}

    .info-panel h2,
    .result-section h2 {
        margin: 0 0 0.75rem;
        font-size: 1rem;
        line-height: 1.6;
    }

    .info-panel p {
        margin: 0;
        color: var(--muted);
        font-size: 0.88rem;
        line-height: 1.9;
        text-align: right;
    }

/* ─── محتوا ─── */
.content {
    flex: 1;
    max-width: var(--compact-shell-width);
    margin: 0 auto;
    padding: 2.5rem 1.5rem 4rem;
    width: 100%;
}

    .content:has(.home-issue-hero),
    .content:has(.tls-assessment-shell),
    .content:has(.dns-security-shell),
    .content:has(.admin-grid),
    .content:has(.admin-shell),
    .content:has(.dashboard-grid),
    .content:has(.dashboard-shell),
    .content:has(.customer-area) {
        max-width: var(--shell-width);
    }

/* ─── هیرو ─── */
.hero {
    text-align: center;
    margin-bottom: 1.5rem;
}

    .hero h1 {
        font-size: 1.9rem;
        font-weight: 800;
        margin: 0 0 0.5rem;
        color: var(--text);
        letter-spacing: -0.5px;
    }

    .hero p {
        color: var(--muted);
        margin: 0;
        font-size: 0.95rem;
        line-height: 1.7;
    }

/* ─── کارت ویزارد ─── */
.wizard-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 2rem;
    box-shadow: var(--shadow);
}

.step h2 {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 1.4rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text);
}

.step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    font-size: 0.82rem;
    font-weight: 700;
    flex-shrink: 0;
}

.step.center {
    text-align: center;
    padding: 3rem 0;
}

/* ─── فیلدها ─── */
.field-label {
    display: block;
    margin: 0 0 0.4rem;
    font-size: 0.83rem;
    font-weight: 600;
    color: var(--text);
    text-align: right;
}

    .field-label small {
        font-weight: 400;
        color: var(--muted);
    }

.field-group {
    margin-bottom: 1.2rem;
}

.input, .textarea {
    width: 100%;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--text);
    padding: 0.65rem 0.85rem;
    font-family: 'Vazirmatn', monospace;
    font-size: 0.88rem;
    resize: vertical;
    transition: border-color 0.15s;
}

    .textarea.cert {
        font-family: 'Courier New', monospace;
        direction: ltr;
        text-align: left;
        font-size: 0.78rem;
    }

    .input:focus, .textarea:focus {
        outline: none;
        border-color: var(--primary);
        box-shadow: 0 0 0 3px rgba(37,99,235,0.08);
    }

/* ─── روش وریفیکیشن ─── */
.method-select {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem;
}

.radio-card {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    border: 1.5px solid var(--border);
    border-radius: 9px;
    padding: 0.85rem;
    cursor: pointer;
    background: var(--bg);
    transition: border-color 0.15s, background 0.15s;
}

    .radio-card.selected {
        border-color: var(--primary);
        background: var(--primary-light);
    }

    .radio-card div {
        display: flex;
        flex-direction: column;
        gap: 0.15rem;
    }

    .radio-card strong {
        font-size: 0.88rem;
    }

    .radio-card span {
        color: var(--muted);
        font-size: 0.78rem;
    }

    .radio-card input[type=radio] {
        margin-top: 2px;
        accent-color: var(--primary);
    }

.checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    font-size: 0.85rem;
    color: var(--muted);
    cursor: pointer;
}

    .checkbox-row input {
        accent-color: var(--primary);
    }

/* ─── دکمه‌ها ─── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 9px;
    padding: 0.7rem 1.3rem;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s;
    font-family: 'Vazirmatn', sans-serif;
}

    .btn.primary {
        background: var(--primary);
        color: white;
        width: 100%;
        margin-top: 1.4rem;
    }

        .btn.primary:hover {
            background: var(--primary-hover);
        }

        .btn.primary:disabled {
            opacity: 0.55;
            cursor: not-allowed;
        }

    .btn.secondary {
        background: white;
        border: 1px solid var(--border);
        color: var(--text);
    }

        .btn.secondary.full {
            width: 100%;
            margin-top: 1.4rem;
        }

        .btn.secondary:hover {
            background: var(--bg);
        }

.btn-row {
    display: flex;
    gap: 0.7rem;
    margin-top: 1.4rem;
}

    .btn-row .btn {
        margin-top: 0;
        flex: 1;
    }

/* ─── آلرت ─── */
.alert {
    margin-top: 1rem;
    padding: 0.75rem 0.95rem;
    border-radius: 8px;
    font-size: 0.85rem;
    line-height: 1.6;
}

    .alert.error {
        background: var(--error-bg);
        border: 1px solid var(--error-border);
        color: var(--error);
    }

    .alert.warn {
        background: #fffbeb;
        border: 1px solid #facc15;
        color: #854d0e;
    }

    .alert.success {
        background: #ecfdf5;
        border: 1px solid #86efac;
        color: #166534;
    }

.actalis-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0 0 1rem;
}

    .actalis-info-grid div {
        display: grid;
        gap: 0.4rem;
        border: 1px solid var(--border);
        border-radius: 8px;
        background: #f8fafc;
        padding: 0.85rem;
    }

    .actalis-info-grid strong {
        color: var(--text);
        font-size: 0.85rem;
    }

    .actalis-info-grid span,
    .actalis-info-grid code {
        color: var(--muted);
        font-size: 0.78rem;
        line-height: 1.7;
        overflow-wrap: anywhere;
    }

.auth-card,
.admin-shell {
    max-width: 100%;
    margin-bottom:10px;
}

.auth-form {
    display: grid;
    gap: 0.95rem;
}

.auth-links {
    margin-top: 1rem;
    text-align: center;
}

    .auth-links a {
        color: var(--primary);
        font-size: 0.86rem;
        font-weight: 700;
        text-decoration: none;
    }

.admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.admin-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.admin-overview-secondary {
    margin-bottom: 0.9rem;
}

.admin-overview-item {
    display: grid;
    gap: 0.55rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
    color: var(--text);
    text-decoration: none;
    box-shadow: var(--shadow);
}

    .admin-overview-item span {
        color: var(--muted);
        font-weight: 800;
        font-size: 0.8rem;
    }

    .admin-overview-item strong {
        color: var(--primary);
        font-size: 1.65rem;
    }

    .admin-overview-item small {
        color: var(--muted);
        line-height: 1.7;
    }

.admin-card {
    display: grid;
    gap: 0.45rem;
    min-height: 9rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: white;
    box-shadow: var(--shadow);
    color: var(--text);
    text-decoration: none;
}

    .admin-card strong {
        color: var(--primary);
        font-size: 1.7rem;
        line-height: 1;
    }

    .admin-card span {
        font-weight: 850;
    }

    .admin-card small {
        color: var(--muted);
        line-height: 1.8;
    }

.admin-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

    .admin-toolbar h2 {
        margin: 0;
    }

.admin-plan-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.admin-table {
    display: grid;
    gap: 0.55rem;
}

.admin-table-head,
.admin-table-row {
    display: grid;
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    text-align: right;
}

.admin-table-head {
    background: #eef2f7;
    color: var(--text);
    font-size: 0.82rem;
}

.admin-table-row {
    background: #fff;
}

    .admin-table-head.users,
    .admin-table-row.users {
        grid-template-columns: minmax(11rem, 1.2fr) 7rem minmax(10rem, 1fr) minmax(10rem, 1fr) minmax(9rem, 1fr) minmax(13rem, 1.2fr);
    }

.admin-table-head.users-compact,
.admin-user-row > summary {
    display: grid;
    grid-template-columns: minmax(14rem, 1.5fr) 8rem minmax(9rem, 1fr) 6rem minmax(16rem, 1.3fr) 4rem;
    gap: 0.75rem;
    align-items: center;
}

.admin-user-row {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

    .admin-user-row > summary {
        padding: 0.75rem;
        cursor: pointer;
        list-style: none;
    }

        .admin-user-row > summary::-webkit-details-marker {
            display: none;
        }

    .admin-user-row[open] .row-toggle {
        transform: rotate(45deg);
    }

.row-toggle {
    display: inline-grid;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    border: 1px solid var(--border);
    border-radius: 50%;
    color: var(--primary);
    transition: transform 0.15s;
}

.user-detail-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    padding: 0.9rem;
    border-top: 1px solid var(--border);
    background: #f8fafc;
}

    .user-detail-panel section {
        display: grid;
        gap: 0.55rem;
        padding: 0.75rem;
        border: 1px solid var(--border);
        border-radius: 8px;
        background: white;
    }

    .user-detail-panel h3 {
        margin: 0;
        font-size: 0.9rem;
    }

.admin-table-head.plans,
.admin-table-row.plans {
    grid-template-columns: 7rem minmax(9rem, 1fr) 7rem 7rem 6rem 7rem minmax(10rem, 1fr);
}

.admin-table-head.plans-modern,
.admin-table-row.plans-modern {
    /* grid-template-columns: minmax(10rem, 1fr) minmax(8rem, 0.8fr) minmax(16rem, 1.4fr) minmax(13rem, 1fr) 7rem minmax(10rem, 1fr);*/
    grid-template-columns: minmax(7rem, 1fr) minmax(30rem, 0.8fr) minmax(19rem, 1.4fr) minmax(2rem, 1fr) 7rem minmax(2rem, 1fr);
}

.admin-table-head.products-modern,
.admin-table-row.products-modern {
    grid-template-columns: minmax(10rem, 1fr) minmax(9rem, 0.8fr) minmax(8rem, 0.8fr) minmax(8rem, 0.8fr) 7rem minmax(8rem, 0.7fr) minmax(8rem, 0.7fr);
}

.admin-table-head.notifications-modern,
.admin-table-row.notifications-modern {
    grid-template-columns: minmax(14rem, 1fr) minmax(12rem, 1fr) 7rem 10rem;
}

.admin-table-head.event-logs-modern,
.admin-table-row.event-logs-modern {
    grid-template-columns: minmax(8rem, 0.7fr) minmax(13rem, 1fr) minmax(33rem, 2.2fr) minmax(6rem, 0.8fr) minmax(5rem, 0.6fr);
}


.event-logs-modern button {
    font: inherit;
}
.log-modal p {
    font-size: 0.78rem;
}

.admin-table-head.certificates,
.admin-table-row.certificates {
    grid-template-columns: minmax(12rem, 1fr) 7rem 7rem 9rem 9rem;
}

.role-stack {
    display: grid;
    gap: 0.35rem;
}

.admin-user-certificates {
    grid-column: 1 / -1;
}

.admin-certificate-list {
    display: grid;
    gap: 0.4rem;
}

    .admin-certificate-list article {
        display: grid;
        grid-template-columns: minmax(2rem, 1.2fr) minmax(16rem, 0.7fr) minmax(11rem, 0.8fr) minmax(12rem, 0.8fr) minmax(12rem, 0.8fr) minmax(2rem, 0.8fr);
        align-items: center;
        gap: 0.4rem;
        padding: 0.55rem 0.7rem;
        border: 1px solid var(--border);
        border-radius: 8px;
        background: #f8fafc;
    }

    .admin-certificate-list div {
        display: grid;
        gap: 0.2rem;
    }

    .admin-certificate-list strong {
        color: var(--text);
        font-size: 0.84rem;
    }

    .admin-certificate-list span,
    .admin-certificate-list small,
    .log-text,
    .event-log-meta {
        color: var(--muted);
        font-size: 0.78rem;
        line-height: 1.75;
    }

.log-text {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
}

.log-text-preview {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.75;
    text-overflow: ellipsis;
}

.log-inline-btn {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--primary);
    font-size: 0.76rem;
    font-weight: 850;
    cursor: pointer;
}

.log-inline-btn:hover {
    text-decoration: underline;
}

.log-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgb(15 23 42 / 0.45);
}

.log-modal {
    width: min(46rem, 92vw);
    max-height: min(32rem, 82vh);
    overflow: auto;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--shadow);
}

.log-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

.log-modal-head h3 {
    margin: 0;
    font-size: 1rem;
}

.log-modal p {
    margin: 0;
    color: var(--text);
    line-height: 2;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.log-details {
    position: relative;
    display: inline-block;
}

    .log-details summary {
        cursor: pointer;
        list-style: none;
        color: var(--primary);
        font-weight: 850;
        font-size: 0.76rem;
    }

        .log-details summary::-webkit-details-marker {
            display: none;
        }

    .log-details p {
        position: absolute;
        z-index: 5;
        top: 1.6rem;
        left: 0;
        width: min(34rem, 70vw);
        max-height: 18rem;
        overflow: auto;
        margin: 0;
        padding: 0.85rem;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: #fff;
        box-shadow: var(--shadow);
        color: var(--text);
        white-space: normal;
        line-height: 1.9;
        text-align: right;
    }

.admin-filter-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    margin-bottom: 0.9rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #1e3a8a;
    font-size: 0.82rem;
    font-weight: 750;
}

.admin-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 1rem;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 800;
}

    .admin-pager .disabled {
        pointer-events: none;
        opacity: 0.45;
    }

.inline-details {
    border: 1px solid var(--border);
    background: #fff;
}

    .inline-details summary {
        cursor: pointer;
        list-style: none;
        padding: 0.4rem 0.55rem;
        color: var(--primary);
        font-weight: 850;
        font-size: 0.78rem;
    }

        .inline-details summary::-webkit-details-marker {
            display: none;
        }

    .inline-details[open] summary {
        border-bottom: 1px solid var(--border);
    }

    .inline-details .role-stack,
    .inline-details .activity-cell {
        padding: 0.55rem;
    }

.role-stack label {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--muted);
    font-size: 0.78rem;
}

.role-stack input {
    accent-color: var(--primary);
}

.plan-cell,
.activity-cell {
    display: grid;
    gap: 0.35rem;
}

    .activity-cell span,
    .mini-row span {
        color: var(--muted);
        font-size: 0.78rem;
        line-height: 1.7;
    }

.input.compact {
    min-height: 2.25rem;
    padding: 0.45rem 0.55rem;
    font-size: 0.78rem;
}

.admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

    .admin-actions .btn {
        padding: 0.48rem 0.75rem;
        font-size: 0.78rem;
    }

.btn.danger {
    border-color: #fecaca;
    color: #991b1b;
}

    .btn.danger:hover {
        background: #fef2f2;
    }

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.dashboard-card {
    display: grid;
    gap: 0.5rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: white;
    box-shadow: var(--shadow);
}

    .dashboard-card span {
        color: var(--muted);
        font-size: 0.82rem;
    }

    .dashboard-card strong {
        color: var(--text);
        font-size: 1.35rem;
    }

    .dashboard-card small {
        color: var(--muted);
        line-height: 1.7;
    }

.empty-state {
    padding: 1rem;
    border: 1px dashed var(--border);
    border-radius: 8px;
    background: #f8fafc;
    color: var(--muted);
    text-align: center;
}

.mini-row {
    display: grid;
    gap: 0.25rem;
    padding: 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    margin-top: 0.55rem;
}

.customer-area {
    display: grid;
    gap: 1.1rem;
    animation: sectionIn 0.35s ease-out both;
}

.customer-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}

    .customer-header span {
        color: var(--muted);
        font-size: 0.8rem;
    }

    .customer-header h1 {
        margin: 0.25rem 0 0;
        color: var(--text);
    }

    .customer-header strong {
        direction: ltr;
        color: var(--muted);
    }

.customer-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 1.4rem;
    align-items: start;
}

.customer-sidebar {
    display: grid;
    gap: 0.25rem;
    border-left: 1px solid var(--border);
    padding-left: 0.8rem;
}

    .customer-sidebar a,
    .customer-sidebar button {
        display: block;
        width: 100%;
        padding: 0.65rem 0.75rem;
        border: none;
        background: transparent;
        color: #475569;
        text-decoration: none;
        font-weight: 800;
        font-size: 0.82rem;
        border-radius: 0;
        text-align: right;
        cursor: pointer;
        font-family: inherit;
    }

        .customer-sidebar a.active,
        .customer-sidebar button.active,
        .customer-sidebar a:hover,
        .customer-sidebar button:hover {
            background: #eff6ff;
            color: var(--primary);
        }

    .customer-sidebar > span {
        margin: 1rem 0 0.25rem;
        color: #64748b;
        font-size: 0.72rem;
        font-weight: 900;
    }

.customer-main {
    display: grid;
    gap: 1rem;
}

.panel-flat {
    border: 1px solid var(--border);
    border-radius: 0;
    background: #fff;
    padding: 1rem;
    box-shadow: 0 3px 12px rgba(15, 23, 42, 0.04);
}

    .panel-flat h2 {
        margin: 0;
        color: var(--text);
    }

.current-plan-panel {
    border-top: 4px solid #16a34a;
}

.plan-title-row,
.certificate-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

    .plan-title-row h2 {
        margin: 0;
    }

    .plan-title-row span {
        color: var(--muted);
        font-size: 0.82rem;
    }

.link-button,
.compact-action,
.certificate-card-flat footer a,
.certificate-card-flat footer button {
    border: none;
    background: transparent;
    color: var(--primary);
    font: inherit;
    font-weight: 850;
    cursor: pointer;
    text-decoration: none;
}

.compact-action {
    border: 1px solid var(--primary);
    padding: 0.45rem 0.75rem;
}

    .compact-action.disabled {
        opacity: 0.5;
        pointer-events: none;
    }

.quota-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.2rem;
}

    .quota-grid div {
        display: grid;
        gap: 0.4rem;
    }

.quota-bar {
    height: 0.45rem;
    background: #e5e7eb;
    overflow: hidden;
}

    .quota-bar i {
        display: block;
        height: 100%;
        background: #22c55e;
    }

.quota-grid strong {
    color: var(--text);
}

.quota-grid span {
    color: var(--muted);
    font-size: 0.78rem;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.pricing-card-flat {
    display: grid;
    gap: 0.65rem;
    border: 1px solid var(--border);
    border-radius: 0;
    background: #fff;
    padding: 1rem;
}

    .pricing-card-flat.current {
        background: #f8fafc;
        border-color: #bfdbfe;
    }

    .pricing-card-flat h3 {
        margin: 0;
    }

    .pricing-card-flat strong {
        color: #ea580c;
        font-size: 1.25rem;
    }

    .pricing-card-flat span,
    .pricing-card-flat p {
        margin: 0;
        color: var(--muted);
        line-height: 1.7;
    }

.home-plan-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: -2.2rem auto 2.5rem;
    max-width: var(--shell-width);
    position: relative;
    z-index: 1;
}

.home-plan-card {
    display: grid;
    gap: 0.75rem;
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    padding: 1.1rem;
}

    .home-plan-card header {
        display: grid;
        gap: 0.35rem;
    }

    .home-plan-card h2 {
        margin: 0;
        font-size: 1.05rem;
    }

    .home-plan-card strong {
        color: #ea580c;
        font-size: 1.25rem;
    }

    .home-plan-card p {
        margin: 0;
        color: var(--muted);
        line-height: 1.7;
    }

.certificate-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
    margin: 1rem 0;
}

.certificate-provider-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 1rem;
    border-bottom: 1px solid var(--border);
}

    .certificate-provider-tabs button {
        border: none;
        border-bottom: 3px solid transparent;
        background: transparent;
        color: #475569;
        padding: 0.65rem;
        cursor: pointer;
        font-family: inherit;
        font-weight: 800;
    }

        .certificate-provider-tabs button.active {
            color: var(--primary);
            border-bottom-color: var(--primary);
        }

.certificate-list {
    display: grid;
    gap: 0.75rem;
}

.certificate-card-flat {
    border: 1px solid var(--border);
    border-radius: 0;
    background: #fff;
}

    .certificate-card-flat header,
    .certificate-card-flat footer,
    .certificate-meta {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.8rem 0.9rem;
    }

    .certificate-card-flat header {
        border-bottom: 1px solid var(--border-soft);
    }

    .certificate-card-flat h3 {
        margin: 0 0 0.25rem;
        font-size: 1rem;
    }

    .certificate-card-flat span,
    .certificate-meta {
        color: var(--muted);
        font-size: 0.78rem;
    }

    .certificate-card-flat footer {
        border-top: 1px solid var(--border-soft);
        justify-content: flex-start;
    }

.compact-list {
    display: grid;
    gap: 0.5rem;
}

.compact-row {
    border: 1px solid var(--border);
    border-radius: 0;
    background: #fff;
}

    .compact-row summary {
        display: grid;
        grid-template-columns: minmax(10rem, 0.5fr) minmax(0, 1fr);
        gap: 0.75rem;
        align-items: center;
        padding: 0.65rem 0.8rem;
        cursor: pointer;
        list-style: none;
    }

        .compact-row summary::-webkit-details-marker {
            display: none;
        }

.permission-create {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 10rem;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.permission-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    padding: 0 0.8rem 0.8rem;
}

    .permission-tags b {
        border: 1px solid var(--border);
        background: #f8fafc;
        color: #334155;
        padding: 0.3rem 0.55rem;
        font-size: 0.76rem;
    }

.plan-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

    .plan-detail-grid div {
        display: grid;
        gap: 0.35rem;
        padding: 0.75rem;
        border: 1px solid var(--border);
        background: #f8fafc;
    }

    .plan-detail-grid span {
        color: var(--muted);
        font-size: 0.76rem;
    }

    .plan-detail-grid strong {
        color: var(--text);
    }

.tool-shortcuts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

    .tool-shortcuts a {
        padding: 0.85rem;
        border: 1px solid var(--border);
        background: #f8fafc;
        color: var(--text);
        text-decoration: none;
        font-weight: 800;
    }

.modal-backdrop-lite {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.45);
}

.upgrade-modal {
    width: min(920px, 100%);
    max-height: min(86vh, 760px);
    overflow: auto;
    background: #fff;
    border-radius: 10px;
    border: 1px solid var(--border);
    padding: 1rem;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
}

    .upgrade-modal > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 1rem;
    }

    .upgrade-modal h2 {
        margin: 0;
    }

    .upgrade-modal header button {
        border: none;
        background: #f1f5f9;
        color: #0f172a;
        width: 2rem;
        height: 2rem;
        border-radius: 50%;
        cursor: pointer;
        font-size: 1.1rem;
    }

.confirm-modal {
    width: min(620px, 100%);
}

.confirm-body {
    display: grid;
    gap: 0.85rem;
    color: #475569;
    line-height: 1.9;
}

    .confirm-body p {
        margin: 0;
    }

.confirm-order-summary {
    display: grid;
    gap: 0.35rem;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    background: #eff6ff;
    padding: 0.85rem;
}

    .confirm-order-summary span,
    .confirm-order-summary small {
        color: #64748b;
    }

    .confirm-order-summary strong {
        color: #0f172a;
    }

.confirm-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

@keyframes sectionIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.result-section {
    margin-top: 1.25rem;
}

.wizard-card > .result-section {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}

    .wizard-card > .result-section > h2 {
        margin: 0;
        padding: 0.75rem 1rem;
        background: #e5e7eb;
        border-bottom: 1px solid var(--border);
        text-align: center;
        font-size: 1rem;
        font-weight: 800;
    }

    .wizard-card > .result-section > .kv-table,
    .wizard-card > .result-section > .quality-chart,
    .wizard-card > .result-section > .browser-table,
    .wizard-card > .result-section > .result-list,
    .wizard-card > .result-section > .codeblock,
    .wizard-card > .result-section > .method-select,
    .wizard-card > .result-section > .tag-list {
        margin: 0.9rem;
    }

.result-list {
    margin-top: 1rem;
}

.result-section .result-list {
    margin-top: 0;
}

.status-row {
    display: block;
    width: 100%;
    margin-top: 0.55rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg);
    font-size: 0.84rem;
}

    .status-row summary,
    .status-row:not(details) {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .status-row summary {
        cursor: pointer;
        list-style: none;
    }

        .status-row summary::-webkit-details-marker {
            display: none;
        }

    .status-row strong {
        color: var(--text);
        line-height: 1.6;
    }

    .status-row span {
        color: var(--muted);
        line-height: 1.6;
        text-align: left;
    }

    .status-row p {
        margin: 0.65rem 0 0;
        color: var(--muted);
        line-height: 1.8;
        white-space: pre-wrap;
        word-break: break-word;
    }

    .status-row.ok {
        border-color: #bbf7d0;
        background: #f0fdf4;
    }

    .status-row.warn {
        border-color: #fde68a;
        background: #fffbeb;
    }

    .status-row.bad {
        border-color: var(--error-border);
        background: var(--error-bg);
    }

    .status-row.neutral {
        border-color: var(--border);
        background: #f8fafc;
    }

.kv-table {
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    background: white;
}

    .kv-table div {
        display: grid;
        grid-template-columns: minmax(7rem, 0.8fr) 1.4fr;
        gap: 0.75rem;
        padding: 0.7rem 0.85rem;
        border-bottom: 1px solid var(--border-soft);
        font-size: 0.82rem;
    }

        .kv-table div:last-child {
            border-bottom: none;
        }

        .kv-table div.decode-row {
            grid-template-columns: 1.1fr 1.4fr;
        }

            .kv-table div.decode-row strong::before {
                content: "✓";
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 1.15rem;
                height: 1.15rem;
                margin-left: 0.35rem;
                border-radius: 50%;
                background: var(--success);
                color: white;
                font-size: 0.72rem;
                vertical-align: middle;
            }

    .kv-table strong {
        color: var(--text);
    }

    .kv-table span {
        color: var(--muted);
        text-align: left;
        word-break: break-word;
    }

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

    .tag-list span {
        display: inline-flex;
        align-items: center;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--bg);
        padding: 0.35rem 0.65rem;
        color: var(--text);
        font-size: 0.78rem;
    }

.score-card {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-top: 1.25rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

    .score-card strong {
        display: block;
        font-size: 1.25rem;
        line-height: 1.4;
    }

    .score-card span {
        color: var(--muted);
        font-size: 0.83rem;
    }

.score-grade {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    font-size: 1.3rem;
    font-weight: 800;
    direction: ltr;
}

.matcher-mode {
    margin-bottom: 1.2rem;
}

.captcha-box {
    display: grid;
    grid-template-columns: 1fr minmax(8rem, 12rem) auto;
    gap: 0.65rem;
    align-items: stretch;
    margin: 0 0 1.2rem;
    padding: 0.85rem;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: var(--bg);
}

    .captcha-box div {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 0.15rem;
    }

    .captcha-box strong {
        font-size: 0.83rem;
    }

    .captcha-box span {
        color: var(--primary);
        direction: ltr;
        font-weight: 800;
    }

    .captcha-box .input {
        background: white;
        text-align: center;
    }

.grade-reasons {
    margin-top: 1rem;
    border: 1px solid #fde68a;
    border-radius: 8px;
    background: #fffbeb;
    padding: 0.75rem 0.95rem;
}

    .grade-reasons p {
        margin: 0;
        color: #854d0e;
        font-size: 0.84rem;
        line-height: 1.8;
        text-align: right;
    }

        .grade-reasons p + p {
            margin-top: 0.45rem;
        }

.scan-progress {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem;
    background: var(--bg);
}

.stage-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.stage-item {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 3.2rem;
    padding: 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
}

    .stage-item span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 1.3rem;
        height: 1.3rem;
        border-radius: 50%;
        color: white;
        background: var(--muted-light);
        flex-shrink: 0;
        font-size: 0.75rem;
        font-weight: 800;
    }

    .stage-item strong {
        font-size: 0.78rem;
        line-height: 1.6;
    }

    .stage-item.active span {
        background: var(--primary);
        animation: pulse 1s ease-in-out infinite;
    }

    .stage-item.done span {
        background: var(--success);
    }

.progress-track {
    position: relative;
    height: 1.1rem;
    margin-top: 1rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: white;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    border-radius: inherit;
    background: var(--primary);
    transition: width 0.2s ease;
}

.progress-track span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text);
    font-size: 0.72rem;
    font-weight: 800;
    direction: ltr;
}

.quality-chart {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.7rem;
    align-items: end;
    min-height: 12rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: white;
}

.quality-bar {
    display: grid;
    grid-template-rows: 8rem auto auto;
    gap: 0.35rem;
    align-items: end;
    justify-items: center;
    min-width: 0;
}

    .quality-bar span {
        display: block;
        width: 70%;
        min-height: 0.35rem;
        border-radius: 7px 7px 0 0;
        background: var(--success);
    }

    .quality-bar.warn span {
        background: #eab308;
    }

    .quality-bar.bad span {
        background: var(--error);
    }

    .quality-bar strong {
        direction: ltr;
        color: var(--text);
        font-size: 0.8rem;
    }

    .quality-bar em {
        color: var(--muted);
        font-size: 0.72rem;
        font-style: normal;
        line-height: 1.5;
        text-align: center;
    }

.browser-table {
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    background: white;
}

    .browser-table div {
        display: grid;
        grid-template-columns: 1fr 0.8fr 1.6fr;
        gap: 0.75rem;
        padding: 0.65rem 0.8rem;
        border-bottom: 1px solid var(--border-soft);
        font-size: 0.78rem;
        align-items: center;
    }

        .browser-table div:first-child {
            background: var(--bg);
        }

        .browser-table div:last-child {
            border-bottom: none;
        }

    .browser-table span {
        color: var(--muted);
        word-break: break-word;
    }

    .browser-table .bad span {
        color: var(--error);
    }

@keyframes pulse {
    0%, 100% {
        opacity: 0.65;
    }

    50% {
        opacity: 1;
    }
}

/* ─── بلوک دستورالعمل ─── */
.instruction-block {
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 1rem 1.1rem;
    margin-top: 0.9rem;
    background: var(--bg);
}

.instruction-domain {
    font-weight: 700;
    font-size: 0.92rem;
    margin-bottom: 0.9rem;
    color: var(--text);
    text-align: right;
}

.field-block {
    margin-bottom: 1rem;
}

    .field-block:last-of-type {
        margin-bottom: 0;
    }

.field-caption {
    font-size: 0.83rem;
    color: var(--text);
    margin: 0 0 0.4rem;
    line-height: 1.7;
    text-align: right;
}

.inline-code {
    direction: ltr;
    unicode-bidi: isolate;
    display: inline-block;
    background: #f1f5f9;
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 0.05rem 0.35rem;
    font-size: 0.78rem;
    color: var(--primary);
    font-family: 'Courier New', monospace;
}

.copy-row {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

.codeblock {
    flex: 1;
    direction: ltr;
    text-align: left;
    unicode-bidi: isolate;
    background: white;
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: 0.55rem 0.8rem;
    font-size: 0.8rem;
    word-break: break-all;
    font-family: 'Courier New', monospace;
    line-height: 1.5;
    color: #1e293b;
}

.copy-btn {
    flex-shrink: 0;
    min-width: 4rem;
    background: white;
    border: 1px solid var(--border);
    border-radius: 7px;
    color: var(--muted);
    font-size: 0.78rem;
    cursor: pointer;
    padding: 0 0.8rem;
    font-family: 'Vazirmatn', sans-serif;
    transition: all 0.15s;
}

    .copy-btn:hover {
        border-color: var(--primary);
        color: var(--primary);
        background: var(--primary-light);
    }

.hint {
    font-size: 0.78rem;
    color: var(--muted);
    line-height: 1.7;
    margin-top: 0.7rem;
    text-align: right;
}

.hint-inline {
    font-size: 0.76rem;
    color: var(--muted);
    margin: 0.35rem 0 0;
    line-height: 1.6;
    display: block;
    text-align: right;
}

/* ─── اسپینر ─── */
.spinner {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid var(--border);
    border-top-color: var(--primary);
    margin: 0 auto 1rem;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ─── گواهینامه صادرشده ─── */
.success-icon {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.cert-label {
    font-size: 0.83rem;
    font-weight: 600;
    margin: 1.2rem 0 0.4rem;
    text-align: right;
}

.tls-scan-shell {
    max-width: min(1180px, calc(100vw - 2rem));
}

.tls-assessment-shell {
    max-width: min(1180px, calc(100vw - 2rem));
    margin-inline: auto;
}

.tls-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    gap: 1rem;
    align-items: start;
}

.btn.primary.no-margin {
    margin-top: 0;
}

.new-scan-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
}

    .new-scan-panel div {
        display: grid;
        gap: 0.25rem;
    }

    .new-scan-panel strong {
        color: #0f172a;
        font-size: 0.95rem;
    }

    .new-scan-panel span {
        color: #475569;
        font-size: 0.82rem;
        line-height: 1.8;
    }

.dns-report-domain {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: fit-content;
    margin-top: 0.35rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #fff;
}

    .dns-report-domain b {
        color: #0f172a;
        font-size: 0.82rem;
        unicode-bidi: isolate;
    }

.scan-mode-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.scan-mode-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.25rem 0.65rem;
    align-items: start;
    padding: 0.9rem;
    border: 1.5px solid var(--border);
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
}

    .scan-mode-card.selected {
        border-color: var(--primary);
        background: var(--primary-light);
    }

    .scan-mode-card input {
        margin-top: 0.25rem;
        accent-color: var(--primary);
    }

    .scan-mode-card strong {
        color: #0f172a;
        line-height: 1.5;
    }

    .scan-mode-card em {
        display: inline-flex;
        margin-right: 0.35rem;
        padding: 0.14rem 0.38rem;
        border-radius: 999px;
        background: #dbeafe;
        color: #1d4ed8;
        font-size: 0.68rem;
        font-style: normal;
    }

    .scan-mode-card span {
        grid-column: 2;
        color: #64748b;
        font-size: 0.78rem;
        line-height: 1.8;
    }

.target-card,
.ip-select-panel {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
}

    .target-card h2,
    .ip-select-panel h2 {
        margin: 0 0 0.9rem;
        font-size: 1rem;
    }

.ip-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.ip-card {
    display: grid;
    gap: 0.3rem;
    padding: 0.9rem;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    background: var(--bg);
    cursor: pointer;
}

    .ip-card.selected {
        border-color: var(--primary);
        background: var(--primary-light);
    }

    .ip-card input {
        justify-self: start;
        accent-color: var(--primary);
    }

    .ip-card span,
    .tls-stage em {
        color: var(--muted);
        font-size: 0.76rem;
        font-style: normal;
        line-height: 1.6;
    }

.security-report {
    display: grid;
    gap: 1.1rem;
    margin-top: 1.2rem;
}

.report-hero {
    display: grid;
    grid-template-columns: 8.5rem 1fr;
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

    .report-hero h2 {
        margin: 0 0 0.5rem;
    }

    .report-hero p {
        margin: 0.35rem 0;
        color: var(--muted);
        line-height: 1.8;
    }

.grade-tile {
    min-height: 8rem;
    border-radius: 10px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 0.35rem;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

    .grade-tile strong {
        font-size: 3rem;
        line-height: 1;
    }

    .grade-tile span {
        font-weight: 700;
    }

.summary-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.summary-box {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1rem;
}

    .summary-box.ok {
        background: #f0fdf4;
        border-color: #bbf7d0;
    }

    .summary-box.warn {
        background: #fffbeb;
        border-color: #fde68a;
    }

    .summary-box h3 {
        margin: 0 0 0.7rem;
        font-size: 0.98rem;
    }

    .summary-box p {
        margin: 0.35rem 0;
        color: #334155;
        line-height: 1.8;
    }

.quality-chart.wide {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.data-table details {
    min-width: 760px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 5px;
    overflow: hidden;
}

    .data-table details summary {
        display: grid;
        gap: 0.5rem;
        padding: 0.65rem;
        list-style: none;
        cursor: pointer;
    }

        .data-table details summary::-webkit-details-marker {
            display: none;
        }

    .data-table details p {
        margin: 0;
        padding: 0.7rem;
        border-top: 1px solid var(--border-soft);
        color: var(--muted);
        line-height: 1.8;
    }

.cipher-table details summary {
    grid-template-columns: 2.2fr 0.8fr 1fr 1fr 0.8fr 1fr;
}

.browser-table details summary {
    grid-template-columns: 1.1fr 0.85fr 0.9fr 2fr 0.8fr;
}

.data-table details.ok,
.status-row.ok {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.data-table details.warn,
.status-row.warn {
    border-color: #fde68a;
    background: #fffbeb;
}

.data-table details.bad,
.status-row.bad {
    border-color: var(--error-border);
    background: var(--error-bg);
}

.data-table details.neutral,
.status-row.neutral {
    border-color: var(--border);
    background: #f8fafc;
}

.mt {
    margin-top: 0.9rem;
}

.tls-progress-card,
.ssl-section,
.ssl-summary-panel {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.tls-progress-card {
    padding: 1rem;
    margin-top: 1rem;
}

.tls-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.7rem;
}

.tls-progress-track {
    height: 0.9rem;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    overflow: hidden;
    background: #f8fafc;
}

.tls-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #16a34a, #84cc16);
    transition: width 0.25s ease;
}

.tls-progress-card p {
    margin: 0.75rem 0;
    color: var(--muted);
    line-height: 1.8;
}

.tls-stage-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.6rem;
}

.tls-stage {
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: 0.65rem;
    display: grid;
    gap: 0.25rem;
    background: #f8fafc;
}

    .tls-stage span {
        font-size: 0.72rem;
        color: var(--muted);
    }

    .tls-stage.done {
        border-color: #86efac;
        background: #ecfdf5;
    }

    .tls-stage.active {
        border-color: var(--primary);
        background: var(--primary-light);
    }

.ssl-labs-report {
    display: grid;
    gap: 1rem;
    margin-top: 1.2rem;
}

.ssl-report-summary {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 1rem;
    align-items: start;
}

.ssl-grade-card {
    width: 104px;
    min-height: 104px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    justify-items: center;
    color: #111827;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

    .ssl-grade-card strong {
        font-size: 2.4rem;
        line-height: 1;
    }

    .ssl-grade-card small {
        margin-top: 0.25rem;
        font-size: 0.68rem;
        opacity: 0.86;
    }

    .ssl-grade-card span {
        margin-top: 0.35rem;
        font-size: 0.85rem;
    }

.grade-a {
    background: #4caf50;
    color: #fff;
}

.grade-b {
    background: #f9c74f;
    color: #2b2b2b;
}

.grade-c {
    background: #ff9800;
    color: #fff;
}

.grade-d {
    background: #f4511e;
    color: #fff;
}

.grade-e {
    background: #ef6c00;
    color: #fff;
}

.grade-f,
.grade-t {
    background: #e53935;
    color: white;
}

.ssl-summary-panel,
.ssl-section {
    padding: 1rem;
}

    .ssl-section h2,
    .ssl-summary-panel h2 {
        background: #e5e7eb;
        color: #111827;
        border-radius: 5px;
        padding: 0.7rem;
        margin: 0 0 0.9rem;
        text-align: center;
        font-size: 1.05rem;
    }

.ssl-warning-list {
    display: grid;
    gap: 0.5rem;
}

.ssl-warning,
.report-note.warn {
    border: 1px solid #facc15;
    background: #fef9c3;
    color: #854d0e;
    border-radius: 6px;
    padding: 0.75rem 0.9rem;
}

.ssl-warning {
    display: flex;
    gap: 0.7rem;
}

.report-note {
    margin: 0.45rem 0;
    line-height: 1.9;
    color: #334155;
}

.ssl-table {
    display: grid;
    gap: 0.45rem;
}

    .ssl-table > div {
        display: grid;
        grid-template-columns: minmax(12rem, 0.45fr) 1fr;
        gap: 0.8rem;
        padding: 0.65rem 0.8rem;
        border: 1px solid var(--border);
        border-radius: 6px;
        background: #f8fafc;
    }

    .ssl-table span {
        overflow-wrap: anywhere;
    }

.data-table {
    display: grid;
    gap: 0.35rem;
    overflow-x: auto;
}

    .data-table > div {
        display: grid;
        gap: 0.5rem;
        min-width: 760px;
        padding: 0.65rem;
        border-radius: 5px;
        border: 1px solid var(--border);
        align-items: center;
    }

.cipher-table > div {
    grid-template-columns: 2.2fr 0.8fr 1fr 1fr 0.8fr 1fr;
}

.browser-table > div {
    grid-template-columns: 1.3fr 0.8fr 2fr 1fr;
}

.data-head {
    background: #e5e7eb;
}

.cipher-strong,
.data-table .ok {
    background: #ecfdf5;
}

.cipher-weak {
    background: #fffbeb;
}

.cipher-insecure,
.data-table .bad {
    background: #fef2f2;
}

.cert-chain {
    display: grid;
    gap: 0.45rem;
}

.json-output {
    direction: ltr;
    text-align: left;
    white-space: pre-wrap;
    overflow: auto;
    max-height: 28rem;
    background: #0f172a;
    color: #e2e8f0;
    border-radius: 7px;
    padding: 1rem;
    font-size: 0.78rem;
    line-height: 1.6;
}

/* ─── فوتر ─── */
.footer {
    text-align: center;
    padding: 1.2rem;
    color: var(--muted-light);
    font-size: 0.78rem;
    border-top: 1px solid var(--border);
    background: var(--footer-bg);
}

@media (max-width: 580px) {
    .method-select {
        grid-template-columns: 1fr;
    }

    .tool-grid {
        grid-template-columns: 1fr;
    }

    .topbar-inner {
        align-items: flex-start;
        gap: 0.8rem;
        flex-direction: column;
    }

    .nav {
        width: 100%;
        justify-content: flex-start;
        gap: 1rem;
    }

    .kv-table div {
        grid-template-columns: 1fr;
        gap: 0.3rem;
    }

        .kv-table div.decode-row {
            grid-template-columns: 1fr;
        }

    .status-row summary,
    .status-row:not(details) {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.3rem;
    }

    .stage-grid,
    .actalis-info-grid,
    .home-issue-hero,
    .quality-chart,
    .browser-table div,
    .ssl-report-summary,
    .captcha-box,
    .tls-form-grid,
    .ip-grid,
    .report-hero,
    .summary-columns {
        grid-template-columns: 1fr;
    }

    .ssl-grade-card {
        width: 100%;
        min-height: 88px;
    }

    .quality-chart {
        min-height: auto;
    }

    .quality-bar {
        grid-template-columns: 3rem 1fr 2.5rem;
        grid-template-rows: auto;
        align-items: center;
        justify-items: stretch;
    }

        .quality-bar span {
            width: 100%;
            height: 0.65rem !important;
            border-radius: 999px;
        }

        .quality-bar em {
            order: -1;
            text-align: right;
        }

    .wizard-card {
        padding: 1.4rem;
    }

    .home-issue-hero {
        padding: 2rem 1.2rem;
        border-radius: 14px;
    }

    .home-issue-copy {
        justify-items: stretch;
        text-align: center;
    }

    .home-issue-hero h1 {
        white-space: normal;
    }

    .home-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}


#components-reconnect-modal {
    direction: ltr;
}

.scan-command-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(17rem, 0.75fr);
    gap: 1rem;
    align-items: start;
}

.scan-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.target-context-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 1rem;
}

    .target-context-strip div {
        border: 1px solid var(--border);
        border-radius: 8px;
        background: #fff;
        padding: 0.75rem;
    }

    .target-context-strip span,
    .kpi-card span {
        display: block;
        color: #475569;
        font-size: 0.75rem;
        margin-bottom: 0.35rem;
    }

    .target-context-strip strong {
        display: block;
        overflow-wrap: anywhere;
        color: #0f172a;
        font-size: 0.85rem;
    }

.scan-progress-product {
    display: grid;
    grid-template-columns: 7.25rem 1fr;
    gap: 1rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
}

.progress-orbit {
    width: 7rem;
    height: 7rem;
    border-radius: 50%;
    display: grid;
    place-content: center;
    text-align: center;
    border: 8px solid #2563eb;
    background: white;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.18);
}

    .progress-orbit strong {
        color: #0f172a;
        font-size: 1.35rem;
    }

    .progress-orbit span {
        color: #64748b;
        font-size: 0.75rem;
    }

.stage-timeline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.8rem;
}

.stage-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.42rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: #fff;
    color: #475569;
    font-size: 0.75rem;
}

    .stage-pill b {
        display: inline-grid;
        place-items: center;
        width: 1rem;
        height: 1rem;
        border-radius: 50%;
        background: #e2e8f0;
        color: #334155;
    }

    .stage-pill.ok {
        border-color: #86efac;
        background: #f0fdf4;
        color: #166534;
    }

    .stage-pill.warn {
        border-color: #93c5fd;
        background: #eff6ff;
        color: #1d4ed8;
    }

.security-report-v2 {
    --scan-accent: #2563eb;
    --scan-accent-2: #16a34a;
    --scan-soft: #eff6ff;
    --scan-border: #bfdbfe;
    --scan-ink: #0f172a;
    --scan-shadow: rgba(37, 99, 235, 0.12);
    display: grid;
    gap: 1.1rem;
    margin-top: 1.25rem;
}

    .security-report-v2.quick-scan-theme {
        --scan-accent: #2563eb;
        --scan-accent-2: #16a34a;
        --scan-soft: #eff6ff;
        --scan-border: #bfdbfe;
        --scan-ink: #0f172a;
        --scan-shadow: rgba(37, 99, 235, 0.12);
    }

    .security-report-v2.deep-scan-theme {
        --scan-accent: #7c3aed;
        --scan-accent-2: #f97316;
        --scan-soft: #fff7ed;
        --scan-border: #fed7aa;
        --scan-ink: #1f1235;
        --scan-shadow: rgba(124, 58, 237, 0.18);
    }

.executive-summary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: stretch;
    padding: 1rem;
    border: 1px solid var(--scan-border);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(14, 165, 233, 0.03)), #fff;
    box-shadow: 0 12px 32px var(--scan-shadow);
    overflow: hidden;
    position: relative;
}

    .executive-summary::before {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: radial-gradient(circle at 18% 14%, color-mix(in srgb, var(--scan-accent) 14%, transparent), transparent 32%), radial-gradient(circle at 82% 0%, color-mix(in srgb, var(--scan-accent-2) 12%, transparent), transparent 28%);
    }

    .executive-summary > * {
        position: relative;
    }

.quick-scan-theme .executive-summary {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(22, 163, 74, 0.06)), #f8fbff;
}

.deep-scan-theme .executive-summary {
    border-width: 1px;
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.14), rgba(249, 115, 22, 0.12)), #fffaf5;
    box-shadow: 0 18px 42px var(--scan-shadow);
}

.executive-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.summary-header {
    text-align: center;
}

.score-badge-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    margin: 0.25rem 0 0.85rem;
}

.score-badge {
    --grade-bg: #cbd5e1;
    --grade-fg: #0f172a;
    width: 132px;
    height: 132px;
    border-radius: 999px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--grade-bg);
    color: var(--grade-fg);
    border: 6px solid rgba(255, 255, 255, 0.92);
    box-shadow: 0 16px 34px var(--scan-shadow);
    direction: ltr;
}

.deep-scan-theme .score-badge {
    transform: scale(1.04);
    box-shadow: 0 20px 44px rgba(124, 58, 237, 0.22);
}

.scan-type-badge,
.scan-depth-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    border-radius: 999px;
    border: 1px solid var(--scan-border);
    background: rgba(255, 255, 255, 0.72);
    color: var(--scan-ink);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
}

.scan-type-badge {
    gap: 0.5rem;
    padding: 0.46rem 0.75rem;
}

    .scan-type-badge span {
        display: inline-grid;
        place-items: center;
        width: 1.45rem;
        height: 1.45rem;
        border-radius: 50%;
        background: var(--scan-accent);
        color: white;
        font-weight: 900;
    }

    .scan-type-badge strong {
        font-size: 0.82rem;
        direction: ltr;
    }

    .scan-type-badge em {
        color: #475569;
        font-size: 0.72rem;
        font-style: normal;
    }

    .scan-type-badge.deep {
        background: rgba(255, 247, 237, 0.9);
    }

        .scan-type-badge.deep span {
            background: linear-gradient(135deg, var(--scan-accent), var(--scan-accent-2));
        }

.scan-depth-pill {
    padding: 0.32rem 0.7rem;
    color: var(--scan-accent);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0;
}

.score-badge.grade-aplus,
.score-badge.grade-a {
    --grade-bg: #22c55e;
    --grade-fg: #062a12;
}

.score-badge.grade-b {
    --grade-bg: #f6c343;
    --grade-fg: #2a1b00;
}

.score-badge.grade-c {
    --grade-bg: #fb923c;
    --grade-fg: #2a1200;
}

.score-badge.grade-d,
.score-badge.grade-f {
    --grade-bg: #ef4444;
    --grade-fg: #2a0606;
}

.score-badge .score-grade {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1;
}

.score-badge .score-value {
    margin-top: 0.4rem;
    font-size: 0.9rem;
    font-weight: 800;
    opacity: 0.95;
}

.section-kicker {
    color: var(--scan-accent);
    font-weight: 800;
    font-size: 0.78rem;
    margin-bottom: 0.35rem;
}

.executive-copy h2 {
    margin: 0 0 0.55rem;
    color: var(--scan-ink);
    font-size: 1.45rem;
    line-height: 1.6;
}

.executive-copy p {
    margin: 0;
    color: #334155;
    line-height: 1.9;
}

.scan-depth-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin: 1rem auto 0;
    max-width: 46rem;
}

    .scan-depth-strip span {
        display: grid;
        gap: 0.25rem;
        padding: 0.75rem 0.85rem;
        border: 1px solid var(--scan-border);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.78);
        box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
    }

    .scan-depth-strip b {
        color: var(--scan-accent);
        font-size: 0.95rem;
    }

    .scan-depth-strip em {
        color: #475569;
        font-size: 0.74rem;
        font-style: normal;
        line-height: 1.7;
    }

    .scan-depth-strip.deep span {
        background: rgba(255, 247, 237, 0.82);
        border-color: #fdba74;
    }

.risk-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.9rem;
    justify-content: center;
}

    .risk-strip span {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        border-radius: 999px;
        padding: 0.45rem 0.7rem;
        font-size: 0.78rem;
        font-weight: 700;
        border: 1px solid var(--border);
    }

    .risk-strip .ok {
        background: #dcfce7;
        border-color: #86efac;
        color: #166534;
    }

    .risk-strip .warn {
        background: #fef3c7;
        border-color: #facc15;
        color: #92400e;
    }

    .risk-strip .bad {
        background: #fee2e2;
        border-color: #fca5a5;
        color: #991b1b;
    }

    .risk-strip .neutral {
        background: #f1f5f9;
        border-color: #cbd5e1;
        color: #334155;
    }

.ltr {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: right;
}

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
}

.summary-card-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

    .summary-card-row.quick .summary-card {
        min-height: 8.6rem;
        border-color: #dbeafe;
    }

    .summary-card-row.deep .summary-card {
        border-color: #fed7aa;
        box-shadow: 0 12px 28px rgba(124, 58, 237, 0.08);
    }

.scan-coverage-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--scan-border);
    border-radius: 12px;
    background: var(--scan-soft);
}

    .scan-coverage-note.deep {
        border-color: #fed7aa;
        background: linear-gradient(135deg, #fff7ed, #faf5ff);
    }

    .scan-coverage-note strong {
        color: #0f172a;
    }

    .scan-coverage-note p {
        margin: 0.35rem 0 0;
        color: #334155;
        line-height: 1.8;
        font-size: 0.84rem;
    }

.summary-card {
    --tier-accent: #64748b;
    --tier-bg: #f8fafc;
    --tier-text: #334155;
    min-height: 10rem;
    position: relative;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--tier-accent) 28%, var(--border));
    border-radius: 14px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--tier-bg) 74%, #fff), #fff 72%), #fff;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

    .summary-card::before {
        content: "";
        position: absolute;
        inset: 0 0 auto;
        height: 5px;
        background: var(--tier-accent);
    }

    .summary-card.score-tier-a {
        --tier-accent: #15803d;
        --tier-bg: #dcfce7;
        --tier-text: #14532d;
    }

    .summary-card.score-tier-b {
        --tier-accent: #16a34a;
        --tier-bg: #ccfbf1;
        --tier-text: #166534;
    }

    .summary-card.score-tier-c {
        --tier-accent: #eab308;
        --tier-bg: #fef9c3;
        --tier-text: #854d0e;
    }

    .summary-card.score-tier-d {
        --tier-accent: #f97316;
        --tier-bg: #ffedd5;
        --tier-text: #9a3412;
    }

    .summary-card.score-tier-f {
        --tier-accent: #dc2626;
        --tier-bg: #fee2e2;
        --tier-text: #991b1b;
    }

.quick-posture-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

    .quick-posture-panel article {
        min-height: 7rem;
        padding: 0.95rem;
        border: 1px solid #bfdbfe;
        border-radius: 14px;
        background: linear-gradient(180deg, #ffffff, #f8fbff);
        box-shadow: 0 8px 22px rgba(37, 99, 235, 0.06);
    }

    .quick-posture-panel span {
        color: #2563eb;
        font-size: 0.78rem;
        font-weight: 900;
    }

    .quick-posture-panel strong {
        display: block;
        margin: 0.55rem 0 0.35rem;
        color: #0f172a;
        font-size: 1.45rem;
    }

    .quick-posture-panel em {
        color: #475569;
        font-size: 0.78rem;
        font-style: normal;
        line-height: 1.7;
    }

.deep-analysis-panel {
    border: 1px solid #fed7aa;
    border-radius: 16px;
    padding: 1rem;
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.08), rgba(249, 115, 22, 0.08)), #fff;
    box-shadow: 0 14px 34px rgba(124, 58, 237, 0.1);
}

.summary-card span {
    color: var(--tier-text);
    font-size: 0.78rem;
    font-weight: 800;
}

.summary-card strong {
    color: #0f172a;
    font-size: 2.35rem;
    line-height: 1;
    text-align: center;
}

.summary-card em {
    color: #334155;
    font-size: 0.76rem;
    font-style: normal;
    line-height: 1.7;
    text-align: center;
}

.score-tier-badge {
    align-self: center;
    width: fit-content;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--tier-accent) 28%, transparent);
    background: color-mix(in srgb, var(--tier-bg) 78%, #fff);
    color: var(--tier-text);
    padding: 0.28rem 0.62rem;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.4;
    direction: ltr;
}

.headers-score-card {
    position: relative;
}

    .headers-score-card strong {
        font-size: 2rem;
    }

    .headers-score-card a,
    .remediation-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: fit-content;
        min-height: 2rem;
        padding: 0.35rem 0.8rem;
        border-radius: 999px;
        background: #0f172a;
        color: #fff;
        font-size: 0.76rem;
        font-weight: 800;
        text-decoration: none;
    }

        .headers-score-card a:hover,
        .remediation-link:hover {
            background: #1d4ed8;
            color: #fff;
        }

.header-impact-card.bad {
    border-color: #991b1b;
    border-top: 5px solid #991b1b;
    background: linear-gradient(180deg, #fee2e2 0%, #fff7ed 100%);
}

.header-impact-card {
    position: relative;
    color: #7f1d1d;
}

    .header-impact-card strong {
        font-size: 2.8rem;
        color: #7f1d1d;
    }

    .header-impact-card a {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        margin-top: 0.55rem;
        border-radius: 999px;
        background: #7f1d1d;
        color: #fff;
        text-decoration: none;
        padding: 0.45rem 0.7rem;
        font-size: 0.75rem;
        font-weight: 800;
    }

    .header-impact-card.warn {
        border-color: #9a3412;
        border-top-color: #9a3412;
        background: linear-gradient(180deg, #ffedd5 0%, #fff7ed 100%);
    }

        .header-impact-card.warn strong,
        .header-impact-card.warn {
            color: #7c2d12;
        }

            .header-impact-card.warn a {
                background: #9a3412;
            }

.analytics-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr);
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.analytics-chart h3,
.analytics-summary h3 {
    margin: 0 0 0.85rem;
    color: #0f172a;
    font-size: 1rem;
}

.risk-bar {
    display: grid;
    grid-template-columns: 8.5rem 1fr 2.5rem;
    gap: 0.75rem;
    align-items: center;
    margin: 0.65rem 0;
}

    .risk-bar span {
        color: #334155;
        font-size: 0.8rem;
        font-weight: 800;
    }

    .risk-bar div {
        height: 0.85rem;
        border-radius: 999px;
        background: #e2e8f0;
        overflow: hidden;
    }

    .risk-bar i {
        display: block;
        height: 100%;
        border-radius: inherit;
    }

    .risk-bar b {
        color: #0f172a;
        text-align: left;
    }

    .risk-bar.high i {
        background: #dc2626;
    }

    .risk-bar.medium i {
        background: #f97316;
    }

    .risk-bar.low i {
        background: #2563eb;
    }

.analytics-summary {
    display: grid;
    gap: 0.65rem;
}

    .analytics-summary div {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: #f8fafc;
        padding: 0.75rem;
    }

    .analytics-summary span {
        color: #475569;
        font-size: 0.82rem;
    }

    .analytics-summary strong {
        color: #0f172a;
        font-size: 1.25rem;
    }

.priority-stack {
    display: grid;
    gap: 0.85rem;
}

.priority-panel {
    border: 1px solid var(--border);
    border-radius: 13px;
    overflow: hidden;
}

    .priority-panel > summary {
        display: grid;
        grid-template-columns: auto 1fr auto;
        gap: 0.65rem;
        align-items: center;
        padding: 0.9rem 1rem;
        cursor: pointer;
        list-style: none;
    }

        .priority-panel > summary::-webkit-details-marker,
        .priority-panel article details summary::-webkit-details-marker {
            display: none;
        }

        .priority-panel > summary span,
        .priority-icon {
            display: inline-grid;
            place-items: center;
            width: 1.45rem;
            height: 1.45rem;
            border-radius: 50%;
            color: white;
            font-weight: 900;
        }

        .priority-panel > summary strong {
            color: #0f172a;
        }

        .priority-panel > summary b {
            border-radius: 999px;
            background: rgba(15, 23, 42, 0.08);
            color: #0f172a;
            padding: 0.25rem 0.55rem;
        }

    .priority-panel.high {
        background: #fff1f2;
        border-color: #fecdd3;
    }

        .priority-panel.high > summary,
        .priority-panel.high .priority-icon {
            background: #fee2e2;
        }

            .priority-panel.high > summary span,
            .priority-panel.high .priority-icon {
                background: #dc2626;
            }

    .priority-panel.medium {
        background: #fff7ed;
        border-color: #fed7aa;
    }

        .priority-panel.medium > summary,
        .priority-panel.medium .priority-icon {
            background: #ffedd5;
        }

            .priority-panel.medium > summary span,
            .priority-panel.medium .priority-icon {
                background: #f97316;
            }

    .priority-panel.low {
        background: #eff6ff;
        border-color: #bfdbfe;
    }

        .priority-panel.low > summary,
        .priority-panel.low .priority-icon {
            background: #dbeafe;
        }

            .priority-panel.low > summary span,
            .priority-panel.low .priority-icon {
                background: #2563eb;
            }

    .priority-panel article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto auto;
        gap: 0.7rem;
        align-items: center;
        margin: 0.65rem;
        padding: 0.8rem;
        border: 1px solid rgba(15, 23, 42, 0.08);
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.78);
    }

        .priority-panel article > strong {
            color: #0f172a;
            line-height: 1.6;
        }

        .priority-panel article > small {
            grid-column: 2 / -1;
            color: #475569;
            font-size: 0.76rem;
            line-height: 1.8;
        }

.remediation-link {
    border: none;
    cursor: pointer;
    font-family: inherit;
}

.priority-remediation-preview {
    display: grid;
    gap: 0.45rem;
    grid-column: 1 / -1;
    margin: 0.15rem 2rem 0 0;
    padding: 0.65rem 0.8rem;
    border-radius: 9px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    background: #eff6ff;
    color: #1e3a8a;
    line-height: 1.9;
    font-size: 0.78rem;
}

    .priority-remediation-preview p {
        margin: 0;
        color: inherit;
        line-height: 1.9;
    }

    .priority-remediation-preview b {
        color: #172554;
    }

.technical-details div:target {
    outline: 3px solid rgba(37, 99, 235, 0.22);
    outline-offset: 3px;
    box-shadow: 0 16px 36px rgba(37, 99, 235, 0.12);
}

.status-badge {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 0.25rem 0.55rem;
    font-size: 0.72rem;
}

    .status-badge.ok {
        background: #dcfce7;
        color: #166534;
    }

    .status-badge.warn {
        background: #fef3c7;
        color: #92400e;
    }

    .status-badge.bad {
        background: #fee2e2;
        color: #991b1b;
    }

    .status-badge.neutral {
        background: #e2e8f0;
        color: #334155;
    }

.priority-panel article details {
    min-width: 8rem;
}

    .priority-panel article details summary {
        cursor: pointer;
        border-radius: 999px;
        background: #0f172a;
        color: #fff;
        padding: 0.42rem 0.7rem;
        font-size: 0.74rem;
        font-weight: 800;
        list-style: none;
        text-align: center;
    }

    .priority-panel article details p {
        margin: 0.65rem 0 0;
        color: #334155;
        line-height: 1.8;
        grid-column: 1 / -1;
    }

.kpi-card {
    min-height: 9rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: white;
    padding: 0.9rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

    .kpi-card strong {
        color: #0f172a;
        font-size: 2rem;
        line-height: 1;
    }

    .kpi-card em {
        color: #475569;
        font-size: 0.76rem;
        font-style: normal;
        line-height: 1.7;
    }

    .kpi-card.ok {
        border-top: 4px solid #16a34a;
    }

    .kpi-card.warn {
        border-top: 4px solid #eab308;
    }

    .kpi-card.bad {
        border-top: 4px solid #dc2626;
    }

.report-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.report-card {
    border-radius: 12px;
    padding: 1rem;
    border: 1px solid var(--border);
}

    .report-card h3 {
        margin: 0 0 0.7rem;
        font-size: 1rem;
    }

    .report-card p {
        display: flex;
        gap: 0.5rem;
        margin: 0.45rem 0;
        color: #334155;
        line-height: 1.8;
    }

    .report-card span {
        display: inline-grid;
        place-items: center;
        width: 1.25rem;
        height: 1.25rem;
        border-radius: 50%;
        flex: 0 0 auto;
        font-weight: 800;
    }

    .report-card.strengths {
        background: #f0fdf4;
        border-color: #bbf7d0;
    }

        .report-card.strengths span {
            background: #16a34a;
            color: white;
        }

    .report-card.weaknesses {
        background: #fffbeb;
        border-color: #fde68a;
    }

        .report-card.weaknesses span {
            background: #eab308;
            color: white;
        }

.score-explainer {
    display: grid;
    gap: 0.6rem;
}

    .score-explainer p {
        margin: 0;
        padding: 0.8rem 0.9rem;
        border: 1px solid #bfdbfe;
        border-radius: 9px;
        background: #eff6ff;
        color: #1e3a8a;
        line-height: 1.9;
    }

.header-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-bottom: 0.8rem;
}

.headers-summary-text {
    flex-basis: 100%;
    margin: 0 0 0.25rem;
    color: #334155;
    line-height: 1.8;
}

.header-legend span {
    border-radius: 999px;
    padding: 0.4rem 0.65rem;
    font-size: 0.76rem;
    font-weight: 700;
    border: 1px solid var(--border);
}

.header-legend .ok {
    background: #dcfce7;
    color: #166534;
    border-color: #86efac;
}

.header-legend .warn {
    background: #fef3c7;
    color: #92400e;
    border-color: #facc15;
}

.header-legend .bad {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fca5a5;
}

.header-legend .neutral {
    background: #f1f5f9;
    color: #334155;
    border-color: #cbd5e1;
}

.headers-matrix {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.header-metric {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0.85rem;
    background: white;
}

    .header-metric > div:first-child {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        min-width: 0;
    }

    .header-metric b {
        display: inline-grid;
        place-items: center;
        width: 1.35rem;
        height: 1.35rem;
        border-radius: 50%;
        flex: 0 0 auto;
    }

    .header-metric strong {
        overflow-wrap: anywhere;
        color: #0f172a;
        font-size: 0.82rem;
    }

    .header-metric > span {
        display: inline-flex;
        margin-top: 0.7rem;
        border-radius: 999px;
        padding: 0.25rem 0.55rem;
        font-size: 0.72rem;
        font-weight: 800;
        direction: ltr;
    }

    .header-metric em {
        display: inline-flex;
        width: fit-content;
        margin-top: 0.55rem;
        padding: 0.24rem 0.5rem;
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.07);
        color: #334155;
        font-size: 0.72rem;
        font-style: normal;
        font-weight: 800;
    }

.header-meter {
    height: 0.55rem;
    margin-top: 0.65rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

    .header-meter i {
        display: block;
        height: 100%;
        border-radius: inherit;
    }

.header-metric p {
    margin: 0.65rem 0 0;
    color: #475569;
    font-size: 0.74rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.header-metric small {
    display: block;
    margin-top: 0.6rem;
    color: #334155;
    font-size: 0.74rem;
    line-height: 1.8;
}

.header-metric code {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    margin-top: 0.55rem;
    padding: 0.28rem 0.5rem;
    border-radius: 7px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255, 255, 255, 0.74);
    color: #0f172a;
    direction: ltr;
    unicode-bidi: plaintext;
    overflow-wrap: anywhere;
    font-size: 0.72rem;
}

.header-metric.ok {
    border-color: #86efac;
    background: #f0fdf4;
}

    .header-metric.ok b,
    .header-metric.ok .header-meter i,
    .header-metric.ok > span {
        background: #16a34a;
        color: white;
    }

.header-metric.warn {
    border-color: #fde68a;
    background: #fffbeb;
}

    .header-metric.warn b,
    .header-metric.warn .header-meter i,
    .header-metric.warn > span {
        background: #eab308;
        color: #422006;
    }

.header-metric.bad {
    border-color: #fca5a5;
    background: #fef2f2;
}

    .header-metric.bad b,
    .header-metric.bad .header-meter i,
    .header-metric.bad > span {
        background: #dc2626;
        color: white;
    }

.header-metric.neutral {
    background: #f8fafc;
}

    .header-metric.neutral b,
    .header-metric.neutral .header-meter i,
    .header-metric.neutral > span {
        background: #64748b;
        color: white;
    }

.assessment-list,
.cipher-dashboard,
.vulnerability-board,
.ports-grid {
    display: grid;
    gap: 0.65rem;
}

    .assessment-list.two {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .assessment-list details,
    .vulnerability-board details {
        border: 1px solid var(--border);
        border-radius: 10px;
        background: white;
        overflow: hidden;
    }

    .assessment-list summary,
    .vulnerability-board summary {
        display: grid;
        grid-template-columns: auto minmax(8rem, 0.7fr) minmax(0, 1fr);
        align-items: center;
        gap: 0.7rem;
        padding: 0.8rem;
        cursor: pointer;
        list-style: none;
    }

        .assessment-list summary::-webkit-details-marker,
        .vulnerability-board summary::-webkit-details-marker,
        .technical-details summary::-webkit-details-marker {
            display: none;
        }

        .assessment-list summary span,
        .vulnerability-board summary span {
            display: inline-grid;
            place-items: center;
            width: 1.35rem;
            height: 1.35rem;
            border-radius: 50%;
            font-weight: 900;
        }

        .assessment-list summary b,
        .vulnerability-board summary b {
            color: #475569;
            font-size: 0.8rem;
            text-align: left;
            overflow-wrap: anywhere;
        }

    .assessment-list p,
    .vulnerability-board p,
    .assessment-list em,
    .vulnerability-board em {
        display: block;
        margin: 0;
        padding: 0 0.9rem 0.8rem;
        color: #475569;
        font-style: normal;
        line-height: 1.8;
    }

.vulnerability-facts {
    display: grid;
    gap: 0.45rem;
    margin: 0 0.9rem 0.85rem;
}

    .vulnerability-facts div {
        display: grid;
        grid-template-columns: minmax(7rem, 0.32fr) minmax(0, 1fr);
        gap: 0.75rem;
        align-items: start;
        padding: 0.55rem 0.65rem;
        border: 1px solid rgba(15, 23, 42, 0.08);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.62);
    }

    .vulnerability-facts dt,
    .vulnerability-facts dd {
        margin: 0;
        line-height: 1.8;
        font-size: 0.78rem;
    }

    .vulnerability-facts dt {
        color: #334155;
        font-weight: 800;
    }

    .vulnerability-facts dd {
        color: #475569;
        overflow-wrap: anywhere;
    }

.assessment-list details.ok,
.vulnerability-board details.ok,
.cipher-dashboard article.ok,
.ports-grid article.ok {
    border-color: #86efac;
    background: #f0fdf4;
}

.assessment-list details.warn,
.vulnerability-board details.warn,
.cipher-dashboard article.warn,
.ports-grid article.warn {
    border-color: #fde68a;
    background: #fffbeb;
}

.assessment-list details.bad,
.vulnerability-board details.bad,
.cipher-dashboard article.bad,
.ports-grid article.bad {
    border-color: #fca5a5;
    background: #fef2f2;
}

.assessment-list details.neutral,
.vulnerability-board details.neutral,
.cipher-dashboard article.neutral,
.ports-grid article.neutral {
    background: #f8fafc;
}

.assessment-list .ok summary span,
.vulnerability-board .ok summary span {
    background: #16a34a;
    color: white;
}

.assessment-list .warn summary span,
.vulnerability-board .warn summary span {
    background: #eab308;
    color: #422006;
}

.assessment-list .bad summary span,
.vulnerability-board .bad summary span {
    background: #dc2626;
    color: white;
}

.assessment-list .neutral summary span,
.vulnerability-board .neutral summary span {
    background: #64748b;
    color: white;
}

.cipher-dashboard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

    .cipher-dashboard article {
        border: 1px solid var(--border);
        border-radius: 12px;
        padding: 0.9rem;
        background: white;
    }

    .cipher-dashboard header {
        display: flex;
        align-items: center;
        gap: 0.55rem;
    }

        .cipher-dashboard header span {
            display: inline-grid;
            place-items: center;
            width: 1.35rem;
            height: 1.35rem;
            border-radius: 50%;
            background: #64748b;
            color: white;
            flex: 0 0 auto;
        }

    .cipher-dashboard strong {
        overflow-wrap: anywhere;
        color: #0f172a;
        font-size: 0.82rem;
    }

.cipher-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.75rem 0;
}

    .cipher-tags b {
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.07);
        color: #334155;
        padding: 0.25rem 0.5rem;
        font-size: 0.72rem;
    }

.cipher-dashboard p {
    margin: 0;
    color: #475569;
    line-height: 1.8;
    font-size: 0.8rem;
}

.limitation-note {
    margin: 0.3rem 0.9rem 0.8rem !important;
    padding: 0.6rem 0.75rem !important;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
}

.ports-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

    .ports-grid article {
        border: 1px solid var(--border);
        border-radius: 12px;
        padding: 0.9rem;
    }

    .ports-grid strong {
        display: block;
        font-size: 1.35rem;
        color: #0f172a;
    }

    .ports-grid span {
        display: block;
        color: #475569;
        margin: 0.25rem 0 0.55rem;
    }

    .ports-grid p {
        margin: 0;
        color: #475569;
        line-height: 1.7;
        font-size: 0.78rem;
    }

.technical-details {
    display: grid;
    gap: 0.75rem;
}

    .technical-details > details {
        border: 1px solid var(--border);
        border-radius: 10px;
        background: #fff;
        overflow: hidden;
    }

        .technical-details > details > summary {
            padding: 0.85rem;
            cursor: pointer;
            font-weight: 800;
            background: #f8fafc;
            list-style: none;
        }

    .technical-details div {
        display: grid;
        grid-template-columns: minmax(8rem, 0.5fr) minmax(0, 1fr);
        gap: 0.5rem;
        padding: 0.75rem 0.85rem;
        border-top: 1px solid var(--border-soft);
    }

    .technical-details .remediation-block,
    .technical-details .certificate-chain-item {
        grid-template-columns: minmax(10rem, 0.35fr) minmax(0, 1fr);
        margin: 0.65rem;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: #fff;
    }

        .technical-details .remediation-block.selected {
            border-color: #2563eb;
            box-shadow: 0 12px 30px rgba(37, 99, 235, 0.15);
        }

    .technical-details code {
        display: block;
        max-width: 100%;
        padding: 0.35rem 0.5rem;
        border: 1px solid rgba(15, 23, 42, 0.08);
        border-radius: 7px;
        background: #f8fafc;
        color: #0f172a;
        direction: ltr;
        unicode-bidi: plaintext;
        overflow-wrap: anywhere;
        font-family: 'Vazirmatn', ui-monospace, 'Cascadia Code', 'Courier New', monospace;
        font-size: 0.76rem;
        line-height: 1.8;
    }

    .technical-details p {
        grid-column: 1 / -1;
        margin: 0;
        color: #64748b;
        line-height: 1.7;
    }

    .technical-details .technical-value {
        display: inline-block;
        max-width: 100%;
        margin-inline-start: 0.35rem;
        padding: 0.25rem 0.55rem;
        border: 1px solid rgba(15, 23, 42, 0.08);
        border-radius: 7px;
        background: #f8fafc;
        color: #0f172a;
        font-family: 'Vazirmatn', ui-monospace, 'Cascadia Code', 'Courier New', monospace;
        font-size: 0.78rem;
        line-height: 1.9;
        overflow-wrap: anywhere;
        unicode-bidi: plaintext;
    }

    .technical-details .certificate-chain-item {
        align-items: start;
    }

        .technical-details .certificate-chain-item > strong {
            align-self: center;
        }

.chain-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    width: fit-content;
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1.6;
}

    .chain-status-badge.ok {
        background: #dcfce7;
        color: #166534;
    }

    .chain-status-badge.warn {
        background: #fef3c7;
        color: #92400e;
    }

    .chain-status-badge.bad {
        background: #fee2e2;
        color: #991b1b;
    }

    .chain-status-badge.neutral {
        background: #e2e8f0;
        color: #334155;
    }

.technical-details .technical-pair {
    display: grid;
    grid-template-columns: minmax(5rem, max-content) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: center;
}

    .technical-details .technical-pair b {
        justify-self: end;
        color: #475569;
        font-weight: 800;
        text-align: right;
    }

@media (max-width: 900px) {
    .scan-command-panel,
    .executive-summary,
    .report-grid,
    .assessment-list.two,
    .cipher-dashboard,
    .admin-grid,
    .admin-overview,
    .home-plan-grid,
    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .admin-table-head.users,
    .admin-table-row.users,
    .admin-table-head.plans,
    .admin-table-row.plans,
    .admin-table-head.certificates,
    .admin-table-row.certificates,
    .admin-table-head.users-compact,
    .admin-user-row > summary,
    .admin-table-head.plans-modern,
    .admin-table-row.plans-modern,
    .admin-table-head.event-logs-modern,
    .admin-table-row.event-logs-modern,
    .user-detail-panel,
    .admin-plan-form,
    .customer-layout,
    .quota-grid,
    .allocation-card,
    .allocation-inputs,
    .pricing-grid,
    .billing-period-actions,
    .certificate-filters,
    .certificate-provider-tabs,
    .permission-create,
    .plan-detail-grid,
    .tool-shortcuts {
        grid-template-columns: 1fr;
    }

    .customer-sidebar {
        border-left: none;
        border-bottom: 1px solid var(--border);
        padding: 0 0 0.75rem;
    }

    .customer-header,
    .plan-title-row,
    .certificate-toolbar,
    .certificate-card-flat header,
    .certificate-card-flat footer,
    .certificate-meta {
        align-items: flex-start;
        flex-direction: column;
    }

    .target-context-strip,
    .headers-matrix,
    .kpi-grid,
    .summary-card-row,
    .analytics-panel,
    .scan-depth-strip,
    .quick-posture-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ports-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 580px) {
    .score-badge {
        width: 112px;
        height: 112px;
    }

        .score-badge .score-grade {
            font-size: 2.85rem;
        }

        .score-badge .score-value {
            font-size: 0.82rem;
        }

    .scan-actions,
    .scan-mode-selector,
    .target-context-strip,
    .scan-depth-strip,
    .quick-posture-panel,
    .headers-matrix,
    .kpi-grid,
    .summary-card-row,
    .analytics-panel,
    .ports-grid,
    .scan-progress-product {
        grid-template-columns: 1fr;
    }

    .risk-bar,
    .priority-panel article,
    .new-scan-panel,
    .scan-coverage-note {
        grid-template-columns: 1fr;
    }

    .new-scan-panel,
    .scan-coverage-note {
        display: grid;
    }

    .progress-orbit {
        width: 100%;
        height: 6rem;
        border-radius: 12px;
    }

    .assessment-list summary,
    .vulnerability-board summary,
    .technical-details div {
        grid-template-columns: 1fr;
    }
}


h1:focus {
    outline: none;
}

h1 {
    outline: none !important;
}

.pricing-grid {
    align-items: stretch;
}

.plans-modern {
    grid-template-columns: 1.1fr 1.35fr 2fr auto 1fr;
}

.plan-allocation-editor {
    display: grid;
    gap: 0.9rem;
    margin-top: 1.4rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e2e8f0;
}

.allocation-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: end;
}

    .allocation-heading h3 {
        margin: 0;
        color: #0f172a;
        font-size: 1.05rem;
    }

    .allocation-heading span {
        color: #64748b;
        font-size: 0.82rem;
        line-height: 1.8;
    }

.allocation-card {
    display: grid;
    grid-template-columns: 13rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    border: 1px solid #dbe4f0;
    background: #fff;
    padding: 0.9rem;
}

    .allocation-card header {
        display: grid;
        gap: 0.25rem;
    }

        .allocation-card header strong {
            color: #0f172a;
        }

        .allocation-card header small {
            color: #64748b;
        }

.allocation-inputs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.allocation-summary {
    display: grid;
    gap: 0.4rem;
}

    .allocation-summary span {
        display: block;
        padding: 0.4rem 0.55rem;
        border: 1px solid #e2e8f0;
        background: #f8fafc;
        color: #475569;
        font-size: 0.8rem;
        line-height: 1.8;
    }

    .allocation-summary b {
        color: #0f172a;
        margin-left: 0.35rem;
    }

.quota-stack {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
}

.quota-product-card {
    border: 1px solid #dbe4f0;
    background: #fff;
    padding: 0.9rem;
}

    .quota-product-card header {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        align-items: center;
        margin-bottom: 0.75rem;
    }

        .quota-product-card header strong {
            color: #0f172a;
        }

        .quota-product-card header span {
            color: #64748b;
            font-size: 0.78rem;
        }

.quota-lines {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quota-line {
    display: grid;
    gap: 0.45rem;
}

    .quota-line > div:first-child {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        align-items: center;
    }

    .quota-line span {
        color: #64748b;
        font-size: 0.8rem;
    }

    .quota-line strong {
        color: #0f172a;
        font-size: 0.86rem;
    }

.plan-product-limits {
    gap: 0.55rem;
}

.plan-product-limit {
    display: grid;
    gap: 0.28rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid #e2e8f0;
    background: #fff;
    margin-bottom: 6px;
}

    .plan-product-limit strong {
        color: #0f172a;
        font-size: 0.92rem;
    }

    .plan-product-limit span {
        color: #64748b;
        font-size: 0.78rem;
    }

.pricing-card-flat {
    position: relative;
    overflow: hidden;
    border-radius: 0;
    padding: 1.05rem;
    background: #fff;
    border: 1px solid #dbeafe;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.05);
    min-height: 100%;
    align-content: start;
}

    .pricing-card-flat::before {
        content: "";
        position: absolute;
        inset: 0 0 auto;
        height: 4px;
        background: #2563eb;
    }

    .pricing-card-flat.current::before {
        background: #16a34a;
    }

    .pricing-card-flat.lower {
        opacity: 0.72;
        filter: grayscale(0.15);
    }

.plan-card-top {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    align-items: start;
    margin-bottom: 0.7rem;
}

    .plan-card-top span {
        display: inline-flex;
        width: fit-content;
        border-radius: 999px;
        background: #eff6ff;
        color: #1d4ed8;
        padding: 0.25rem 0.55rem;
        font-size: 0.72rem;
        font-weight: 850;
    }

.pricing-card-flat.current .plan-card-top span {
    background: #dcfce7;
    color: #166534;
}

.plan-card-top h3 {
    margin: 0.55rem 0 0;
    font-size: 1.3rem;
    color: #0f172a;
}

.plan-period-selector {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
    align-items: center;
    padding: 0.7rem;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    margin-bottom: 0.65rem;
    min-height: 8.5rem;
}

    .plan-period-selector label {
        color: #475569;
        font-size: 0.78rem;
        font-weight: 850;
    }

    .plan-period-selector select {
        min-height: 2.5rem;
    }

    .plan-period-selector strong {
        display: block;
        min-height: 2.1rem;
        color: #ea580c;
        font-size: 1.18rem;
        line-height: 2.1rem;
        text-align: center;
        white-space: nowrap;
    }

.discount-slot {
    display: flex;
    justify-content: center;
    min-height: 1.85rem;
}

.plan-period-selector b {
    justify-self: center;
    align-self: start;
    border: 1px solid #fed7aa;
    border-radius: 999px;
    background: #fff7ed;
    color: #c2410c;
    padding: 0.22rem 0.6rem;
    font-size: 0.72rem;
}

.plan-feature-list {
    display: grid;
    gap: 0.6rem;
    margin-bottom: 1rem;
}

    .plan-feature-list p {
        display: flex;
        justify-content: space-between;
        gap: 0.75rem;
        margin: 0;
        padding: 0.65rem 0.75rem;
        border-radius: 0;
        background: #f8fafc;
    }

.billing-period-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

    .billing-period-actions .btn {
        padding: 0.65rem 0.6rem;
        font-size: 0.82rem;
    }

.plan-select-button {
    border: 1px solid #ff7100;
    background: #ff7100;
    color: #fff;
    min-height: 2.75rem;
    padding: 0.65rem 0.9rem;
    font-family: inherit;
    font-weight: 900;
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

    .plan-select-button:hover {
        background: #ea580c;
        box-shadow: 0 10px 18px rgba(234, 88, 12, 0.18);
        transform: translateY(-1px);
    }

.pricing-grid.selection-locked .plan-select-button {
    pointer-events: none;
    opacity: 0.55;
    background: #94a3b8;
    border-color: #94a3b8;
    box-shadow: none;
    transform: none;
}

.plan-static-action {
    display: grid;
    place-items: center;
    min-height: 2.75rem;
    padding: 0.65rem 0.9rem;
    border: 1px solid transparent;
    font-weight: 900;
    user-select: none;
}

    .plan-static-action.current {
        border-color: #bbf7d0;
        background: #f0fdf4;
        color: #166534;
    }

    .plan-static-action.placeholder {
        visibility: hidden;
    }

.admin-user-plan-editor {
    display: grid;
    gap: 0.75rem;
}

    .admin-user-plan-editor > strong {
        display: grid;
        place-items: center;
        min-height: 2.8rem;
        border: 1px solid #dbeafe;
        border-radius: 10px;
        background: #eff6ff;
        color: #1d4ed8;
    }

    .admin-user-plan-editor label {
        display: grid;
        gap: 0.4rem;
    }

        .admin-user-plan-editor label span {
            color: #64748b;
            font-weight: 850;
        }

.receipt-note {
    color: #b91c1c;
    line-height: 1.8;
}

    .receipt-note.inline {
        grid-column: 1 / -1;
        width: 100%;
        border: 1px solid #fecaca;
        border-radius: 9px;
        background: #fff1f2;
        padding: 0.45rem 0.65rem;
        color: #b91c1c;
        font-size: 0.82rem;
    }

.receipt-view-button {
    width: auto;
    margin: 0;
}

.pwa-install-card {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 60;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    width: min(25rem, calc(100vw - 2rem));
    padding: 1rem;
    border: 1px solid #bfdbfe;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(239, 246, 255, 0.98), rgba(255, 255, 255, 0.98));
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.22);
}

.pwa-close {
    position: absolute;
    top: 0.55rem;
    left: 0.55rem;
    display: grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid #dbe4f0;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    cursor: pointer;
    font: inherit;
    font-weight: 900;
}

.pwa-icon {
    display: grid;
    place-items: center;
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 14px;
    background: #2563eb;
    color: #fff;
    direction: ltr;
    font-weight: 950;
    letter-spacing: 0;
    box-shadow: 0 12px 28px rgba(37, 99, 235, 0.28);
}

.pwa-copy {
    display: grid;
    gap: 0.35rem;
    padding-left: 1.9rem;
}

.pwa-copy strong {
    color: #0f172a;
    font-size: 0.98rem;
}

.pwa-copy p,
.pwa-copy small,
.pwa-ios-guide {
    margin: 0;
    color: #64748b;
    font-size: 0.8rem;
    line-height: 1.8;
}

.pwa-copy small {
    color: #1d4ed8;
    font-weight: 850;
}

.pwa-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
}

.pwa-actions .btn {
    margin-top: 0;
    width: 100%;
}

.pwa-ios-guide {
    display: grid;
    align-items: center;
    min-height: 2.7rem;
    border: 1px dashed #bfdbfe;
    border-radius: 10px;
    background: #eff6ff;
    padding: 0.55rem 0.75rem;
    text-align: center;
}

.notification-settings-panel,
.notification-policy-list {
    display: grid;
    gap: 0.75rem;
    margin: 0.9rem 0 1rem;
}

.notification-settings-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
    padding: 0.85rem;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    background: #eff6ff;
}

.notification-settings-head strong {
    color: #0f172a;
}

.notification-settings-head p {
    margin: 0.35rem 0 0;
    color: #475569;
    line-height: 1.9;
    font-size: 0.82rem;
}

.notification-preference-list {
    display: grid;
    gap: 0.65rem;
}

.notification-preference-card,
.notification-policy-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    gap: 0.75rem;
    align-items: center;
    border: 1px solid #dbe4f0;
    border-radius: 12px;
    background: #fff;
    padding: 0.85rem;
}

.notification-preference-card strong,
.notification-policy-card strong {
    color: #0f172a;
}

.notification-preference-card p,
.notification-policy-card p {
    margin: 0.3rem 0 0;
    color: #64748b;
    line-height: 1.8;
    font-size: 0.8rem;
}

.switch-row {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 5.1rem;
    justify-content: center;
    border: 1px solid #dbe4f0;
    border-radius: 999px;
    background: #f8fafc;
    padding: 0.45rem 0.65rem;
    color: #475569;
    font-size: 0.78rem;
    font-weight: 850;
    cursor: pointer;
}

.switch-row input {
    accent-color: #2563eb;
}

.switch-row:has(input:checked) {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}

.switch-row:has(input:disabled) {
    opacity: 0.62;
    cursor: not-allowed;
}

.notification-form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.plan-feature-list b {
    color: #0f172a;
}

.plan-feature-list span {
    color: #64748b;
}

.tool-shortcuts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

    .tool-shortcuts a {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 0.4rem 0.75rem;
        align-items: start;
        min-height: 7rem;
        padding: 1rem;
        border: 1px solid #dbe4f0;
        border-radius: 10px;
        background: #fff;
        color: #0f172a;
        text-decoration: none;
        box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
    }

        .tool-shortcuts a:hover {
            border-color: #2563eb;
            background: #eff6ff;
        }

    .tool-shortcuts small {
        grid-column: 1 / -1;
        color: #64748b;
        line-height: 1.8;
    }

.nav-notification-button {
    position: relative;
}

    .nav-notification-button b {
        position: absolute;
        left: 0.55rem;
        top: 50%;
        transform: translateY(-50%);
        min-width: 1.35rem;
        height: 1.35rem;
        display: inline-grid;
        place-items: center;
        border-radius: 999px;
        background: #ef4444;
        color: white;
        font-size: 0.72rem;
    }

.notification-count {
    border-radius: 999px;
    background: #fee2e2;
    color: #991b1b;
    padding: 0.32rem 0.65rem;
    font-size: 0.76rem;
    font-weight: 850;
}

.notification-card {
    display: grid;
    gap: 0.7rem;
    margin-top: 0.7rem;
    padding: 0.9rem;
    border: 1px solid #dbe4f0;
    border-radius: 10px;
    background: #fff;
}

    .notification-card.unread {
        border-color: #bfdbfe;
        background: #eff6ff;
    }

    .notification-card > div {
        display: flex;
        justify-content: space-between;
        gap: 0.8rem;
        align-items: center;
    }

    .notification-card time {
        color: #64748b;
        font-size: 0.76rem;
        direction: ltr;
    }

    .notification-card p {
        margin: 0;
        color: #475569;
        line-height: 1.95;
        white-space: pre-line;
        overflow-wrap: anywhere;
    }

.payment-method-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1rem 0;
}

    .payment-method-strip article,
    .bank-account-card,
    .manual-payment-form {
        border: 1px solid #dbe4f0;
        border-radius: 10px;
        background: #fff;
        padding: 0.9rem;
    }

    .payment-method-strip article {
        display: grid;
        gap: 0.35rem;
    }

        .payment-method-strip article:first-child {
            border-color: #86efac;
            background: #f0fdf4;
        }

    .payment-method-strip .disabled {
        opacity: 0.58;
        background: #f8fafc;
    }

    .payment-method-strip span,
    .manual-payment-panel p {
        color: #64748b;
        line-height: 1.8;
    }

.manual-payment-panel {
    display: grid;
    gap: 0.8rem;
    margin-top: 1rem;
}

.checkout-page {
    display: grid;
    gap: 1rem;
}

    .checkout-page .certificate-toolbar p {
        margin: 0.35rem 0 0;
        color: #64748b;
        line-height: 1.8;
    }

.checkout-summary-card {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    padding: 0.9rem;
}

    .checkout-summary-card div {
        display: grid;
        gap: 0.35rem;
        border: 1px solid #dbeafe;
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.78);
        padding: 0.75rem;
    }

    .checkout-summary-card span {
        color: #64748b;
        font-size: 0.85rem;
    }

    .checkout-summary-card strong {
        color: #0f172a;
    }

.checkout-actions-row {
    display: flex;
    justify-content: flex-start;
}

    .checkout-actions-row .btn {
        width: auto;
    }

.bank-account-card {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    background: #f8fafc;
}

    .bank-account-card span {
        color: #64748b;
    }

    .bank-account-card b {
        color: #0f172a;
    }

.manual-payment-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    gap: 0.75rem;
    align-items: end;
}

.file-picker {
    min-height: 2.9rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.35rem 0.75rem;
    align-items: center;
    border: 1px solid #dbe4f0;
    border-radius: 10px;
    background: #f8fafc;
    padding: 0.55rem 0.75rem;
    cursor: pointer;
}

    .file-picker span {
        color: #1d4ed8;
        font-weight: 850;
    }

    .file-picker small {
        min-width: 0;
        color: #64748b;
        direction: ltr;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.billing-period-actions,
.certificate-action-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.order-history {
    display: grid;
    gap: 0.65rem;
    margin-top: 1rem;
}

    .order-history article {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto auto;
        gap: 0.75rem;
        align-items: center;
        padding: 0.8rem;
        border: 1px solid #dbe4f0;
        border-radius: 10px;
        background: #fff;
    }

        .order-history article div {
            display: grid;
            gap: 0.25rem;
        }

        .order-history article span {
            color: #64748b;
            font-size: 0.78rem;
        }

.admin-overview {
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}

.admin-overview-item {
    min-height: 8rem;
    border-radius: 10px;
}

.admin-table-head.payments-modern,
.admin-table-row.payments-modern {
    grid-template-columns: minmax(12rem, 1.2fr) minmax(9rem, 1fr) minmax(8rem, 1fr) 9rem 7rem minmax(13rem, 1.2fr);
}

#blazor-error-ui {
    display: none !important;
}

#components-reconnect-modal:not([open]):not(.components-reconnect-show):not(.components-reconnect-failed):not(.components-reconnect-retrying):not(.components-reconnect-paused):not(.components-reconnect-resume-failed) {
    display: none !important;
}

#components-reconnect-modal {
    border: 0;
    border-radius: 16px;
    padding: 1.3rem;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.26);
    font-family: 'Vazirmatn', system-ui, sans-serif;
    direction: rtl;
}

    #components-reconnect-modal p {
        color: #475569;
        line-height: 1.8;
    }

    #components-reconnect-modal button {
        border: 1px solid #dbe4f0;
        border-radius: 10px;
        background: #fff;
        padding: 0.45rem 0.8rem;
        font-weight: 850;
    }

@media (max-width: 900px) {
    .tool-shortcuts,
    .payment-method-strip,
    .bank-account-card,
    .confirm-actions,
    .checkout-summary-card,
    .manual-payment-form,
    .order-history article,
    .admin-table-head.payments-modern,
    .admin-table-row.payments-modern,
    .admin-table-head.products-modern,
    .admin-table-row.products-modern,
    .admin-table-head.notifications-modern,
    .admin-table-row.notifications-modern,
    .admin-table-head.event-logs-modern,
    .admin-table-row.event-logs-modern,
    .user-detail-panel,
    .admin-certificate-list article,
    .notification-preference-card,
    .notification-policy-card,
    .notification-form-grid,
    .pwa-actions {
        grid-template-columns: 1fr;
    }

    .notification-settings-head {
        flex-direction: column;
    }

    .pwa-install-card {
        right: 1rem;
        bottom: 1rem;
    }
}


.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

