:root {
    --admin-primary: #4f46e5;
    --admin-primary-hover: #4338ca;
    --admin-primary-soft: #eef2ff;
    --admin-primary-border: #c7d2fe;
    --admin-success: #059669;
    --admin-success-soft: #ecfdf5;
    --admin-success-border: #a7f3d0;
    --admin-warning: #d97706;
    --admin-warning-soft: #fffbeb;
    --admin-warning-border: #fcd34d;
    --admin-danger: #dc2626;
    --admin-danger-soft: #fef2f2;
    --admin-danger-border: #fecaca;
    --admin-info: #2563eb;
    --admin-info-soft: #eff6ff;
    --admin-info-border: #bfdbfe;
    --admin-text: #111827;
    --admin-muted: #6b7280;
    --admin-border: #e5e7eb;
    --admin-soft-border: #f1f5f9;
    --admin-surface: #ffffff;
    --admin-background: #f7f8fb;
    --admin-shadow: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.08);
    --admin-shadow-strong: 0 18px 50px rgba(15, 23, 42, 0.14);
    --admin-radius: 8px;
    --admin-sidebar-width: 268px;

    --md-primary: var(--admin-primary);
    --md-primary-variant: var(--admin-primary-hover);
    --md-secondary: var(--admin-info);
    --md-background: var(--admin-background);
    --md-surface: var(--admin-surface);
    --md-error: var(--admin-danger);
    --sidebar-width: var(--admin-sidebar-width);
}

body.admin-app,
body.admin-auth-page {
    font-family: 'Roboto', Arial, sans-serif;
    color: var(--admin-text);
    background: var(--admin-background);
}

body.admin-app {
    overflow-x: hidden;
}

.text-primary,
.text-admin-primary {
    color: var(--admin-primary) !important;
}

.text-success,
.text-admin-success {
    color: var(--admin-success) !important;
}

.text-warning,
.text-admin-warning {
    color: var(--admin-warning) !important;
}

.text-danger,
.text-admin-danger {
    color: var(--admin-danger) !important;
}

.text-info,
.text-admin-info {
    color: var(--admin-info) !important;
}

.text-muted {
    color: var(--admin-muted) !important;
}

.text-purple {
    color: var(--admin-primary) !important;
}

.sidebar {
    width: var(--admin-sidebar-width);
    background: var(--admin-surface);
    border-left: 1px solid var(--admin-border);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    transition: transform 0.25s ease;
}

.sidebar .logo {
    padding: 24px;
    border-bottom: 1px solid var(--admin-border);
    margin-bottom: 8px;
}

.sidebar .logo img,
.logo-mobile img,
.auth-brand img {
    object-fit: cover;
    border-radius: var(--admin-radius);
}

.sidebar .logo img {
    width: 40px;
    height: 40px;
    margin-left: 12px;
}

.sidebar .logo span {
    color: var(--admin-primary);
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0;
}

.sidebar-close {
    color: var(--admin-muted);
    border-radius: 999px;
}

.sidebar-close:hover {
    background: var(--admin-primary-soft);
    color: var(--admin-primary);
}

.nav-list {
    list-style: none;
    padding: 0 12px;
    margin: 0;
}

.nav-item {
    margin-bottom: 4px;
}

.nav-link {
    display: flex;
    align-items: center;
    color: var(--admin-muted);
    text-decoration: none;
    border-radius: var(--admin-radius);
    padding: 11px 14px;
    font-size: 0.92rem;
    font-weight: 500;
    letter-spacing: 0;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.nav-link:hover,
.nav-link.active {
    background: var(--admin-primary-soft);
    color: var(--admin-primary);
}

.nav-link i {
    margin-left: 12px;
    width: 22px;
    font-size: 1.15rem;
}

.nav-link.justify-content-between {
    gap: 12px;
}

.ticket-count-badge {
    min-width: 22px;
    padding: 4px 8px;
    font-size: 0.7rem;
}

.nav-link.text-danger {
    color: var(--admin-danger) !important;
}

.nav-link.text-danger:hover {
    background: var(--admin-danger-soft);
}

.main-content {
    margin-right: var(--admin-sidebar-width);
    padding: 28px;
    background: var(--admin-background);
}

.main-content > h1,
.main-content > h2,
.main-content > h3,
.main-content > h4 {
    color: var(--admin-text) !important;
    font-weight: 600 !important;
    margin-bottom: 24px !important;
}

.main-content > h1 i,
.main-content > h2 i,
.main-content > h3 i,
.main-content > h4 i {
    color: var(--admin-primary);
}

.card {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border) !important;
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow) !important;
    transition: none;
}

.card:hover {
    box-shadow: var(--admin-shadow) !important;
}

.card-header {
    background: transparent !important;
    border-bottom: 1px solid var(--admin-border) !important;
    color: var(--admin-text);
    font-weight: 600;
    padding: 16px 20px;
}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6 {
    color: var(--admin-text);
}

.card-body {
    padding: 20px;
}

.stat-card {
    padding: 22px !important;
    min-height: 112px;
    height: 100%;
    position: relative;
    overflow: hidden;
    text-align: right;
}

.stat-card .stat-icon {
    position: absolute;
    left: 18px;
    top: 18px;
    transform: none;
    width: 46px;
    height: 46px;
    border-radius: var(--admin-radius);
    background: var(--admin-primary-soft);
    color: var(--admin-primary) !important;
    opacity: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.stat-card .stat-icon.text-success,
.stat-card .stat-icon.bi-person-check,
.stat-card .stat-icon.bi-shield-check,
.stat-card .stat-icon.bi-check-circle,
.stat-card .stat-icon.bi-check-circle-fill {
    background: var(--admin-success-soft);
    color: var(--admin-success) !important;
}

.stat-card .stat-icon.text-warning,
.stat-card .stat-icon.bi-hourglass-split {
    background: var(--admin-warning-soft);
    color: var(--admin-warning) !important;
}

.stat-card .stat-icon.text-danger {
    background: var(--admin-danger-soft);
    color: var(--admin-danger) !important;
}

.stat-card .stat-value,
.stat-value {
    color: var(--admin-text);
    font-size: 1.85rem;
    font-weight: 700;
    margin-bottom: 2px;
    padding-left: 58px;
    display: block;
}

.stat-card .stat-label,
.stat-label {
    color: var(--admin-muted);
    font-size: 0.875rem;
    font-weight: 500;
}

.btn {
    border-radius: 7px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    box-shadow: none !important;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.btn-primary,
.btn-info,
.btn-purple {
    background: var(--admin-primary) !important;
    border-color: var(--admin-primary) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-info:hover,
.btn-purple:hover {
    background: var(--admin-primary-hover) !important;
    border-color: var(--admin-primary-hover) !important;
}

.btn-outline-primary,
.btn-outline-info {
    color: var(--admin-primary) !important;
    border-color: var(--admin-primary-border) !important;
    background: transparent !important;
}

.btn-outline-primary:hover,
.btn-outline-info:hover {
    background: var(--admin-primary-soft) !important;
    color: var(--admin-primary-hover) !important;
}

.btn-light,
.btn-outline-secondary,
.btn-secondary {
    color: var(--admin-muted) !important;
    border-color: var(--admin-border) !important;
    background: var(--admin-surface) !important;
}

.btn-light:hover,
.btn-outline-secondary:hover,
.btn-secondary:hover {
    background: var(--admin-soft-border) !important;
    color: var(--admin-text) !important;
}

.btn-success,
.btn-outline-success:hover {
    background: var(--admin-success) !important;
    border-color: var(--admin-success) !important;
    color: #fff !important;
}

.btn-outline-success {
    color: var(--admin-success) !important;
    border-color: var(--admin-success-border) !important;
    background: transparent !important;
}

.btn-warning {
    background: var(--admin-warning) !important;
    border-color: var(--admin-warning) !important;
    color: #fff !important;
}

.btn-outline-warning {
    color: var(--admin-warning) !important;
    border-color: var(--admin-warning-border) !important;
}

.btn-danger,
.btn-outline-danger:hover {
    background: var(--admin-danger) !important;
    border-color: var(--admin-danger) !important;
    color: #fff !important;
}

.btn-outline-danger {
    color: var(--admin-danger) !important;
    border-color: var(--admin-danger-border) !important;
    background: transparent !important;
}

.btn-icon {
    width: 36px;
    height: 36px;
    padding: 0 !important;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-icon.btn-sm {
    width: 32px;
    height: 32px;
}

.form-control,
.form-select {
    border-radius: var(--admin-radius);
    border-color: var(--admin-border);
    color: var(--admin-text);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--admin-primary);
    box-shadow: 0 0 0 0.2rem rgba(79, 70, 229, 0.12);
}

.input-group {
    overflow: visible;
}

.input-group .form-control {
    border-radius: 0 var(--admin-radius) var(--admin-radius) 0;
}

.input-group .btn {
    border-radius: var(--admin-radius) 0 0 var(--admin-radius);
}

.table {
    margin-bottom: 0;
}

.table thead th,
.table th {
    background: #f8fafc !important;
    border-bottom: 1px solid var(--admin-border) !important;
    color: var(--admin-muted) !important;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    padding: 13px 16px;
}

.table tbody td,
.table td {
    border-bottom: 1px solid var(--admin-soft-border);
    color: var(--admin-text);
    padding: 15px 16px;
    vertical-align: middle;
}

.table tbody tr:hover {
    background: #fbfdff;
}

.clickable-row {
    cursor: pointer;
}

.clickable-row:focus-visible {
    outline: 2px solid var(--admin-primary);
    outline-offset: -3px;
}

.admin-recent-users-table td [dir="ltr"] {
    unicode-bidi: isolate;
}

.table-danger,
.table-danger > td,
.table-danger > th,
.table-danger-light {
    background: var(--admin-danger-soft) !important;
}

.table-warning,
.table-warning > td,
.table-warning > th {
    background: var(--admin-warning-soft) !important;
}

.badge {
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0;
    padding: 6px 10px;
    text-transform: none;
}

.user-badge {
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0;
    padding: 6px 10px;
    text-transform: none;
}

.bg-primary,
.bg-info,
.bg-purple {
    background: var(--admin-primary) !important;
}

.bg-success {
    background: var(--admin-success) !important;
}

.bg-warning {
    background: var(--admin-warning) !important;
}

.bg-danger {
    background: var(--admin-danger) !important;
}

.bg-primary-subtle,
.bg-info-subtle,
.bg-purple-subtle {
    background: var(--admin-primary-soft) !important;
    color: var(--admin-primary) !important;
    border-color: var(--admin-primary-border) !important;
}

.bg-success-subtle {
    background: var(--admin-success-soft) !important;
    color: var(--admin-success) !important;
    border-color: var(--admin-success-border) !important;
}

.bg-warning-subtle {
    background: var(--admin-warning-soft) !important;
    color: var(--admin-warning) !important;
    border-color: var(--admin-warning-border) !important;
}

.bg-danger-subtle {
    background: var(--admin-danger-soft) !important;
    color: var(--admin-danger) !important;
    border-color: var(--admin-danger-border) !important;
}

.plan-free {
    background: #f3f4f6;
    color: var(--admin-muted);
    border: 1px solid var(--admin-border);
}

.plan-basic {
    background: var(--admin-info-soft);
    color: var(--admin-info);
    border: 1px solid var(--admin-info-border);
}

.plan-premium {
    background: var(--admin-primary-soft);
    color: var(--admin-primary);
    border: 1px solid var(--admin-primary-border);
}

.plan-family {
    background: var(--admin-success-soft);
    color: var(--admin-success);
    border: 1px solid var(--admin-success-border);
}

.alert {
    border: 1px solid transparent !important;
    border-radius: var(--admin-radius);
    box-shadow: none !important;
}

.alert-success {
    background: var(--admin-success-soft);
    border-color: var(--admin-success-border) !important;
    color: #065f46;
}

.alert-danger {
    background: var(--admin-danger-soft);
    border-color: var(--admin-danger-border) !important;
    color: #991b1b;
}

.alert-warning {
    background: var(--admin-warning-soft);
    border-color: var(--admin-warning-border) !important;
    color: #92400e;
}

.alert-info {
    background: var(--admin-info-soft);
    border-color: var(--admin-info-border) !important;
    color: #1e3a8a;
}

.admin-ticket-alert {
    border-right: 4px solid var(--admin-warning) !important;
}

.admin-ticket-alert strong,
.admin-ticket-alert .bi {
    color: var(--admin-warning);
}

.admin-ticket-alert .bi-exclamation-triangle-fill {
    font-size: 1.45rem;
}

.page-link {
    border-radius: var(--admin-radius);
    border-color: var(--admin-border);
    color: var(--admin-muted);
}

.page-link:hover {
    background: var(--admin-primary-soft);
    border-color: var(--admin-primary-border);
    color: var(--admin-primary);
}

.page-item.active .page-link {
    background: var(--admin-primary);
    border-color: var(--admin-primary);
    color: #fff;
}

.modal-content {
    border: 1px solid var(--admin-border) !important;
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow-strong);
}

.modal-header,
.modal-footer {
    border-color: var(--admin-border) !important;
}

.audit-filter-card,
.session-bar {
    background: var(--admin-surface) !important;
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius) !important;
    box-shadow: var(--admin-shadow) !important;
}

.audit-filter-card {
    padding: 20px;
}

.audit-filter-card .form-label,
.audit-meta {
    color: var(--admin-muted) !important;
}

.audit-table thead th {
    background: #f8fafc !important;
    color: var(--admin-muted) !important;
    border-bottom: 1px solid var(--admin-border) !important;
}

.audit-action-code {
    background: #f8fafc !important;
    border: 1px solid var(--admin-border);
    border-radius: 6px !important;
}

.actor-badge {
    border-radius: 999px !important;
    font-weight: 700 !important;
}

.actor-admin,
.actor-system {
    background: var(--admin-primary-soft) !important;
    color: var(--admin-primary) !important;
}

.actor-agent {
    background: var(--admin-info-soft) !important;
    color: var(--admin-info) !important;
}

.actor-user {
    background: var(--admin-success-soft) !important;
    color: var(--admin-success) !important;
}

.actor-marketer {
    background: var(--admin-warning-soft) !important;
    color: var(--admin-warning) !important;
}

.actor-anonymous {
    background: #f3f4f6 !important;
    color: var(--admin-muted) !important;
}

.retention-banner {
    background: var(--admin-warning-soft) !important;
    border: 1px solid var(--admin-warning-border);
    border-right: 4px solid var(--admin-warning);
    border-radius: var(--admin-radius) !important;
    color: #92400e !important;
}

.session-code-display {
    color: var(--admin-primary) !important;
}

.terminal-container {
    border-radius: var(--admin-radius) !important;
    box-shadow: var(--admin-shadow-strong) !important;
}

.sidebar-backdrop {
    background: rgba(15, 23, 42, 0.48);
    transition: opacity 0.2s ease;
}

.admin-auth-page {
    min-height: 100vh;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);
}

.auth-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.auth-card,
.login-card {
    width: 100%;
    max-width: 440px;
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow-strong);
    padding: 40px;
    text-align: center;
}

.auth-brand,
.login-logo,
.login-card .logo {
    text-align: center;
    margin-bottom: 32px;
}

.auth-brand img,
.login-logo img,
.login-card .logo img {
    width: 72px;
    height: 72px;
    border-radius: var(--admin-radius);
    margin-bottom: 16px;
    box-shadow: var(--admin-shadow);
}

.auth-brand h1,
.login-logo h1,
.login-card .logo h1 {
    color: var(--admin-text);
    font-size: 1.65rem;
    font-weight: 700;
    margin: 0;
}

.auth-brand p,
.login-logo p,
.login-card .logo p {
    color: var(--admin-muted);
    font-size: 0.96rem;
    margin: 8px 0 0;
}

.auth-form .form-outline,
.login-card .form-outline {
    margin-bottom: 22px;
    text-align: right;
}

.btn-login {
    background: var(--admin-primary) !important;
    border-color: var(--admin-primary) !important;
    border-radius: 7px;
    box-shadow: none !important;
    color: #fff !important;
    font-weight: 700;
}

.btn-login:hover {
    background: var(--admin-primary-hover) !important;
    border-color: var(--admin-primary-hover) !important;
    transform: none;
}

@media (max-width: 991.98px) {
    .sidebar {
        transform: translateX(100%);
        box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
    }

    .sidebar.show {
        transform: translateX(0);
    }

    .main-content,
    [dir="rtl"] .main-content {
        margin-right: 0;
        padding: 20px;
    }
}

@media (min-width: 992px) {
    .sidebar-backdrop {
        display: none !important;
    }
}

@media (max-width: 575.98px) {
    .main-content {
        padding: 20px;
    }

    .admin-recent-users-table thead {
        display: none;
    }

    .admin-recent-users-table,
    .admin-recent-users-table tbody,
    .admin-recent-users-table tr,
    .admin-recent-users-table td {
        display: block;
        width: 100%;
    }

    .admin-recent-users-table tbody {
        padding: 10px;
    }

    .admin-recent-users-table tr {
        margin: 10px 0;
        border: 1px solid var(--admin-border);
        border-radius: var(--admin-radius);
        background: var(--admin-surface);
        overflow: hidden;
    }

    .admin-recent-users-table td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 12px 14px !important;
        border-bottom: 1px solid var(--admin-soft-border);
    }

    .admin-recent-users-table td:last-child {
        border-bottom: 0;
    }

    .admin-recent-users-table td::before {
        content: attr(data-label);
        color: var(--admin-muted);
        font-size: 0.76rem;
        font-weight: 700;
    }

    .admin-recent-users-table td[data-label="שם"] {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .auth-card,
    .login-card {
        padding: 28px 22px;
    }
}
