:root {
    --bs-body-font-family: 'Vazirmatn', Tahoma, sans-serif;
    --bs-font-sans-serif: 'Vazirmatn', Tahoma, sans-serif;
}

body,
.app-wrapper,
.login-page,
.sidebar-wrapper,
.main-header,
.card,
.form-control,
.form-select,
.btn {
    font-family: 'Vazirmatn', Tahoma, sans-serif !important;
    font-feature-settings: "ss01" 1;
    -webkit-font-feature-settings: "ss01" 1;
}

/* Icons must not inherit digit stylistic sets */
.bi,
[class^="bi-"],
[class*=" bi-"] {
    font-family: bootstrap-icons !important;
    font-feature-settings: normal;
    -webkit-font-feature-settings: normal;
}

/* Explicit Latin digits (rare); default admin UI uses ss01 above */
.admin-num-latin {
    font-feature-settings: normal !important;
    -webkit-font-feature-settings: normal !important;
}

.admin-content-card { border-radius: .5rem; }

/* Header: bot selector + profile alignment */
.app-header.navbar {
    align-items: center;
    min-height: 3.5rem;
    padding-top: 0;
    padding-bottom: 0;
}
.app-header .container-fluid {
    align-items: center;
}
.app-header .navbar-nav {
    align-items: center;
}
.app-header .navbar-nav.ms-auto { align-items: center; }
.app-header .navbar-nav .nav-item {
    display: flex;
    align-items: center;
}
.app-header .navbar-nav .form-select-sm {
    min-width: 10rem;
    max-width: 14rem;
    height: calc(1.5em + 0.5rem + 2px);
}
.app-header .nav-link.profile-nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.65rem;
    line-height: 1;
}
.app-header .nav-link.profile-nav-link .bi-person-circle {
    font-size: 1.5rem;
    line-height: 1;
}
.app-header .dropdown-menu .dropdown-item-text.admin-profile-label {
    direction: ltr;
    text-align: left;
    unicode-bidi: isolate;
    font-variant-numeric: tabular-nums;
}
.app-header .dropdown-menu .dropdown-item-text.admin-session-expiry {
    font-size: .8rem;
    color: var(--bs-secondary-color);
}

/* KPI cards: icon on far side (physical left in RTL), away from text */
.small-box {
    overflow: hidden;
}
.small-box > .inner {
    position: relative;
    z-index: 1;
    padding-inline-start: 1rem;
    padding-inline-end: 4.5rem;
    min-height: 5.5rem;
}
.small-box .small-box-icon {
    top: 50% !important;
    bottom: auto !important;
    left: 0.75rem !important;
    right: auto !important;
    transform: translateY(-50%) !important;
    height: auto !important;
    font-size: 2.75rem !important;
    line-height: 1 !important;
    transition: none !important;
    pointer-events: none;
    opacity: 1 !important;
    color: rgba(255, 255, 255, 0.45) !important;
}
.small-box:hover .small-box-icon {
    transform: translateY(-50%) !important;
}

/* Page intro alert: icon and Persian text on one baseline */
.admin-page-intro {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.admin-page-intro .admin-page-intro-inner {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}
.admin-page-intro .admin-page-intro-icon {
    flex-shrink: 0;
    font-size: 1rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    vertical-align: middle;
}
.admin-page-intro .admin-page-intro-text {
    flex: 1;
    line-height: 1.5;
    margin: 0;
    font-size: 0.875rem;
}

/* سایدبار: هدر سفید (لوگو) + منوی تیره — الگوی رایج در پنل‌های SaaS */
.app-sidebar.admin-sidebar-surface {
    --admin-sidebar-bg: #334155;
    --admin-sidebar-bg-deep: #2b384a;
    background: var(--admin-sidebar-bg-deep);
    color: #e2e8f0;
    border-inline-end: 1px solid rgba(15, 23, 42, 0.2);
}
.app-sidebar.admin-sidebar-surface .sidebar-brand {
    background: #fff;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.07);
    min-height: 3.75rem;
    z-index: 1;
}
.app-sidebar.admin-sidebar-surface .sidebar-wrapper {
    background: linear-gradient(180deg, var(--admin-sidebar-bg) 0%, var(--admin-sidebar-bg-deep) 100%);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}
.app-sidebar.admin-sidebar-surface .sidebar-wrapper::-webkit-scrollbar {
    width: 0.4rem;
}
.app-sidebar.admin-sidebar-surface .sidebar-wrapper::-webkit-scrollbar-track {
    background: transparent;
}
.app-sidebar.admin-sidebar-surface .sidebar-wrapper::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}
.app-sidebar.admin-sidebar-surface .sidebar-wrapper::-webkit-scrollbar-thumb:hover {
    background-color: rgba(255, 255, 255, 0.36);
}
.app-sidebar.admin-sidebar-surface .sidebar-wrapper::-webkit-scrollbar-corner {
    background: transparent;
}

/* Admin sidebar — یک ارتفاع برای تیتر و آیتم */
.admin-sidebar-nav {
    --as-row-h: 2rem;
    --as-pad-x: 0.65rem;
    padding: 0.35rem 0.5rem 0.65rem;
}
.app-sidebar.admin-sidebar-surface .admin-sidebar-nav {
    --as-cat-bg: rgba(0, 0, 0, 0.16);
    --as-hover-bg: rgba(255, 255, 255, 0.1);
    --as-active-bg: rgba(59, 130, 246, 0.45);
}
.app-sidebar.admin-sidebar-surface .sidebar-menu .nav-link {
    color: rgba(255, 255, 255, 0.86);
}
.admin-nav-cat {
    list-style: none;
    display: flex;
    align-items: center;
    min-height: var(--as-row-h);
    margin: 0.45rem 0 0.15rem;
    padding: 0 var(--as-pad-x);
    border-radius: 0.375rem;
    background: var(--as-cat-bg);
    user-select: none;
    pointer-events: none;
}
.admin-sidebar-nav > .admin-nav-cat:first-child {
    margin-top: 0;
}
.admin-nav-cat__label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
}
.app-sidebar.admin-sidebar-surface .admin-nav-cat__label {
    color: rgba(255, 255, 255, 0.48);
}
.admin-sidebar-nav > .nav-item > .nav-link {
    display: flex;
    align-items: center;
    min-height: var(--as-row-h);
    margin: 0.125rem 0;
    padding: 0 var(--as-pad-x) !important;
    border-radius: 0.375rem;
    font-size: 0.8125rem;
    line-height: 1.2;
    background-color: transparent !important;
    transition: background-color 0.12s ease, color 0.12s ease;
}
.admin-sidebar-nav > .nav-item > .nav-link .nav-icon {
    min-width: 1.35rem;
    max-width: 1.35rem;
    font-size: 0.95rem;
    opacity: 0.92;
}
.admin-sidebar-nav > .nav-item > .nav-link p {
    margin: 0;
    line-height: 1.2;
}
.app-sidebar.admin-sidebar-surface .admin-sidebar-nav > .nav-item > .nav-link:hover,
.app-sidebar.admin-sidebar-surface .admin-sidebar-nav > .nav-item > .nav-link:focus {
    background-color: var(--as-hover-bg) !important;
    color: #fff !important;
}
.app-sidebar.admin-sidebar-surface .admin-sidebar-nav > .nav-item > .nav-link.active {
    background-color: var(--as-active-bg) !important;
    color: #fff !important;
    font-weight: 600;
    border-inline-start: 3px solid #60a5fa;
}
.app-sidebar.admin-sidebar-surface .admin-sidebar-nav > .nav-item.admin-nav-tier-main > .nav-link {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.93);
}
.app-sidebar.admin-sidebar-surface .admin-sidebar-nav > .nav-item.admin-nav-tier-sub > .nav-link {
    padding-inline-start: 1.85rem !important;
    font-size: 0.8rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.68);
}
.admin-sidebar-nav > .nav-item.admin-nav-tier-sub > .nav-link .nav-icon {
    font-size: 0.88rem;
    opacity: 0.75;
}
.admin-sidebar-nav > .nav-item.admin-nav-tier-sub > .nav-link.active {
    font-weight: 600;
}

/* Customer profile — three columns */
.admin-customer-calls-list {
    max-height: min(60vh, 32rem);
    overflow-y: auto;
}
.admin-customer-call-item {
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}
.admin-customer-call-item:last-child {
    border-bottom: 0;
}
@media (min-width: 1200px) {
    .admin-customer-profile > [class*="col-"] > .card {
        position: sticky;
        top: 0.75rem;
    }
}

/* Settings page — packed two-column cards (no Bootstrap row gaps) */
.admin-settings-masonry {
    column-count: 1;
    column-gap: 1rem;
}
.admin-settings-masonry__item {
    break-inside: avoid;
    page-break-inside: avoid;
    -webkit-column-break-inside: avoid;
    display: inline-block;
    width: 100%;
    margin: 0 0 1rem;
    vertical-align: top;
}
@media (min-width: 992px) {
    .admin-settings-masonry {
        column-count: 2;
    }
}

/* Polls hub */
.admin-polls-hub .admin-polls-side-stack {
    position: sticky;
    top: 0.75rem;
}
.admin-polls-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.admin-polls-list {
    max-height: min(48vh, 26rem);
    overflow-y: auto;
}
.admin-polls-create-card > summary.admin-polls-create-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    user-select: none;
}
.admin-polls-create-card > summary.admin-polls-create-summary::-webkit-details-marker {
    display: none;
}
.admin-polls-create-card[open] > summary .text-muted {
    display: none;
}
.admin-polls-question {
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0;
}
.admin-polls-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}
.admin-polls-summary__stat {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.55rem;
    padding: 0.55rem 0.75rem;
    background: var(--bs-tertiary-bg);
}
.admin-polls-summary__stat--wide {
    grid-column: 1 / -1;
}
.admin-polls-summary__label {
    display: block;
    font-size: 0.72rem;
    color: var(--bs-secondary-color);
}
.admin-polls-summary__value {
    display: block;
    margin-top: 0.15rem;
    font-size: 1rem;
}
.admin-polls-result {
    margin-bottom: 0.85rem;
}
.admin-polls-result__bar {
    height: 0.65rem;
    background: var(--bs-secondary-bg);
}
.admin-polls-result.is-leading .progress-bar {
    background-color: var(--bs-success);
}
.admin-polls-voters {
    max-height: min(50vh, 28rem);
    overflow-y: auto;
}
@media (max-width: 1199.98px) {
    .admin-polls-hub .admin-polls-side-stack {
        position: static;
    }
}

/* Safir hub */
.admin-safir-hub .admin-safir-side-stack {
    position: sticky;
    top: 0.75rem;
}
.admin-safir-section {
    padding-top: 0.85rem;
    border-top: 1px solid var(--bs-border-color);
}
.admin-safir-estimate {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.65rem;
    padding: 0.85rem 1rem;
    background: var(--bs-tertiary-bg);
}
.admin-safir-estimate__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    font-size: 0.9rem;
}
.admin-safir-estimate__row + .admin-safir-estimate__row {
    margin-top: 0.35rem;
}
.admin-safir-actions {
    background: var(--bs-tertiary-bg);
    border-top: 1px solid var(--bs-border-color);
    position: sticky;
    bottom: 0;
    z-index: 2;
}
.admin-safir-finance-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}
.admin-safir-finance-stat {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.55rem;
    padding: 0.55rem 0.7rem;
    background: var(--bs-body-bg);
}
.admin-safir-finance-stat--wide {
    grid-column: 1 / -1;
}
.admin-safir-finance-stat__label {
    display: block;
    font-size: 0.72rem;
    color: var(--bs-secondary-color);
}
.admin-safir-finance-stat__value {
    display: block;
    font-size: 1rem;
    margin-top: 0.15rem;
}
.admin-safir-history-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.admin-safir-history-list {
    max-height: min(62vh, 34rem);
    overflow-y: auto;
}
.safir-campaign-item.is-filter-hidden {
    display: none !important;
}
@media (max-width: 1199.98px) {
    .admin-safir-hub .admin-safir-side-stack {
        position: static;
    }
    .admin-safir-actions {
        position: static;
    }
}

/* Broadcast hub — single-page compose */
.admin-broadcast-hub--flat .admin-broadcast-side-stack {
    position: sticky;
    top: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.admin-broadcast-mode-toggle {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.admin-broadcast-chat-frame {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    overflow: hidden;
    background: linear-gradient(165deg, #1a2332 0%, #243044 42%, #2c3a4f 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.admin-broadcast-chat-frame__bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.85rem;
    color: rgba(255, 255, 255, 0.88);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.admin-broadcast-chat-frame__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #5ad67d;
    box-shadow: 0 0 0 3px rgba(90, 214, 125, 0.2);
}
.admin-broadcast-chat-frame .bale-message-preview {
    margin: 0;
    border-radius: 0;
    min-height: 8rem;
}
.admin-broadcast-history-card > summary.admin-broadcast-history-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    user-select: none;
}
.admin-broadcast-history-card > summary.admin-broadcast-history-summary::-webkit-details-marker {
    display: none;
}
.admin-broadcast-history-card[open] > summary .text-muted {
    display: none;
}
.admin-broadcast-history-item .admin-broadcast-history-actions {
    opacity: 0.92;
}
.admin-broadcast-asset-picker {
    max-height: 14rem;
    overflow-y: auto;
}
.admin-broadcast-asset-card {
    width: 100%;
    text-align: right;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
    padding: 0.5rem 0.65rem;
    background: var(--bs-body-bg);
}
.admin-broadcast-asset-card.is-selected {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 1px var(--bs-primary);
}
.admin-broadcast-asset-card__title {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
}
.admin-broadcast-asset-card__meta {
    display: block;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
}
.admin-broadcast-asset-card__preview {
    display: block;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    margin-top: 0.25rem;
}
.admin-broadcast-kb-builder .safir-kb-row {
    background: var(--bs-body-bg);
    border: 1px dashed var(--bs-border-color);
}
.admin-broadcast-kb-preview {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 2rem;
}
.admin-broadcast-kb-preview-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.35rem;
}
.admin-broadcast-kb-preview-row .admin-broadcast-kb-chip {
    flex: 1 1 0;
    text-align: center;
    min-width: 0;
}
.admin-broadcast-kb-chip {
    display: inline-block;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--bs-primary);
    color: var(--bs-primary);
    background: color-mix(in srgb, var(--bs-primary) 8%, transparent);
    font-size: 0.8rem;
}
.admin-broadcast-kb-preview--in-chat {
    margin-top: 0.55rem;
    min-height: 0;
}
.admin-broadcast-kb-preview--in-chat .admin-broadcast-kb-chip {
    border-radius: 0.55rem;
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    font-size: 0.78rem;
    padding: 0.4rem 0.5rem;
}
.bale-message-preview-bubble {
    white-space: pre-wrap;
    word-break: break-word;
}

.admin-broadcast-history {
    max-height: 28rem;
    overflow-y: auto;
}
.admin-broadcast-history-card .card-body {
    padding: 0;
}
.admin-broadcast-summary .admin-broadcast-stat {
    height: 100%;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.45rem;
    background: var(--bs-body-bg);
}
.admin-broadcast-stat__label {
    display: block;
    font-size: 0.68rem;
    color: var(--bs-secondary-color);
    margin-bottom: 0.15rem;
}
.admin-broadcast-stat__value {
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.35;
}
.admin-login-brand {
    padding: 0 0.25rem;
}
.admin-brand-logo {
    display: block;
    max-width: 100%;
    height: auto;
}
.admin-brand-logo--login {
    max-width: min(100%, 22rem);
    margin-inline: auto;
}
.admin-brand-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0.85rem;
    min-height: 3.75rem;
    background: transparent;
}
.admin-brand-logo--sidebar {
    max-height: 2.5rem;
    width: auto;
    object-fit: contain;
    background: transparent;
}
.admin-broadcast-compose-card .card-header {
    background: transparent;
}
.admin-broadcast-tabs .nav-link {
    font-weight: 600;
    padding: 0.35rem 0.85rem;
}
.admin-broadcast-preview-card .card-body {
    padding-bottom: 1rem;
}
.admin-broadcast-preview-frame {
    max-width: 100%;
    margin: 0;
}
.admin-broadcast-preview-frame .bale-message-preview-bubble {
    min-height: 4.5rem;
}
.admin-broadcast-actions {
    background: var(--bs-tertiary-bg);
    border-top: 1px solid var(--bs-border-color);
    position: sticky;
    bottom: 0;
    z-index: 2;
}
.admin-broadcast-history-card {
    overflow: hidden;
}
.admin-broadcast-history-scroll {
    max-height: min(70vh, 36rem);
    overflow-y: auto;
}
.admin-broadcast-details__summary {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
    list-style: none;
}
.admin-broadcast-details__summary::-webkit-details-marker {
    display: none;
}
.admin-broadcast-details--expandable {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 0.65rem 0.85rem;
    background: var(--bs-body-bg);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-broadcast-details--expandable:hover {
    border-color: var(--bs-primary-border-subtle, rgba(var(--bs-primary-rgb), 0.35));
    box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.08);
}
.admin-broadcast-details__summary--interactive {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: var(--bs-body-color);
    user-select: none;
}
.admin-broadcast-details__chevron {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--bs-primary-bg-subtle, rgba(var(--bs-primary-rgb), 0.12));
    color: var(--bs-primary);
    transition: transform 0.2s ease;
}
.admin-broadcast-details--expandable[open] .admin-broadcast-details__chevron {
    transform: rotate(180deg);
}
.admin-broadcast-details__titles {
    flex: 1;
    min-width: 0;
}
.admin-broadcast-details__title {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
}
.admin-broadcast-details__hint {
    display: block;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--bs-secondary-color);
    margin-top: 0.1rem;
}
.admin-broadcast-details__action {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.35em 0.65em;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle, rgba(var(--bs-primary-rgb), 0.1));
    border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
}
.admin-broadcast-details--expandable[open] .admin-broadcast-details__action {
    display: none;
}
.admin-broadcast-details--expandable[open] .admin-broadcast-details__hint {
    display: none;
}
@media (max-width: 1199.98px) {
    .admin-broadcast-hub--flat .admin-broadcast-side-stack {
        position: static;
    }
    .admin-broadcast-actions {
        position: static;
    }
}
.admin-broadcast-hub--flat .admin-broadcast-filters {
    grid-template-columns: 1fr;
}
.admin-broadcast-filters {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    gap: 0.5rem;
}
.admin-broadcast-filter {
    display: block;
    margin: 0;
    cursor: pointer;
}
.admin-broadcast-filter input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.admin-broadcast-filter__body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.45rem;
    background: var(--bs-body-bg);
    min-height: 3.25rem;
    transition: border-color 0.12s, box-shadow 0.12s;
}
.admin-broadcast-filter input:checked + .admin-broadcast-filter__body {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 1px var(--bs-primary);
}
.admin-broadcast-filter__title {
    font-size: 0.78rem;
    line-height: 1.35;
    font-weight: 600;
}
.admin-broadcast-filter__count {
    font-size: 0.72rem;
    color: var(--bs-secondary-color);
}
.admin-broadcast-customer-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 14rem;
    overflow: auto;
}
.admin-broadcast-customer-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    text-align: right;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.4rem;
    padding: 0.45rem 0.6rem;
    background: var(--bs-body-bg);
}
.admin-broadcast-customer-item.is-selected {
    border-color: var(--bs-primary);
    background: rgba(13, 110, 253, 0.06);
}
.admin-broadcast-history-item {
    border: none;
    border-bottom: 1px solid var(--bs-border-color);
}

/* Dashboard quick start */
.admin-quick-start-link {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    text-decoration: none;
    color: inherit;
    height: 100%;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.admin-quick-start-link:hover {
    border-color: var(--bs-primary);
    box-shadow: 0 0.125rem 0.35rem rgba(0, 0, 0, 0.06);
    color: inherit;
}
.admin-quick-start-icon {
    font-size: 1.5rem;
    line-height: 1;
    color: var(--bs-primary);
    flex-shrink: 0;
}

/* Bot design workflow */
.admin-workflow-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    padding: 0.85rem 1rem;
    margin: 0;
    list-style: none;
    background: var(--bs-light);
    border-radius: 0.5rem;
    border: 1px solid var(--bs-border-color);
    font-size: 0.875rem;
}
.admin-workflow-steps li {
    margin: 0;
}
.admin-workflow-steps--compact {
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
    gap: 0.5rem 1rem;
}

/* Collapsible welcome panel */
.admin-fold-panel {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: #fff;
}
.admin-fold-panel__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
    padding: 0.75rem 1rem;
    cursor: pointer;
    list-style: none;
    font-weight: 600;
}
.admin-fold-panel__summary::-webkit-details-marker { display: none; }
.admin-fold-panel__summary::before {
    content: "▸";
    display: inline-block;
    margin-inline-end: 0.35rem;
    transition: transform 0.15s;
    color: var(--bs-primary);
}
.admin-fold-panel[open] > .admin-fold-panel__summary::before {
    transform: rotate(90deg);
}
.admin-fold-panel__title { font-size: 0.95rem; }
.admin-fold-panel__hint { font-size: 0.75rem; font-weight: 400; }

/* Menu level switcher (main vs submenus) */
.bale-menu-level-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.15rem 0;
}
.bale-menu-level-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.65rem;
    border-radius: 2rem;
    font-size: 0.78rem;
    text-decoration: none;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    color: inherit;
    max-width: 100%;
}
.bale-menu-level-pill span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 10rem;
}
.bale-menu-level-pill:hover {
    border-color: var(--bs-primary);
    color: inherit;
}
.bale-menu-level-pill.is-active {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}
.bale-menu-level-pill--sub:not(.is-active) {
    background: #f0f4f8;
    border-color: #c8d4e0;
}
.bale-menu-level-pill--sub.is-active {
    background: #5c6bc0;
    border-color: #5c6bc0;
}

/* Session idle countdown in header */
.admin-session-timer {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
    font-variant-numeric: tabular-nums;
    color: var(--bs-secondary-color);
    white-space: nowrap;
    cursor: default;
    user-select: none;
}
.admin-session-timer .bi-clock {
    font-size: 1rem;
    line-height: 1;
}
.admin-session-timer.is-warning {
    color: var(--bs-warning);
}
.admin-session-timer.is-danger {
    color: var(--bs-danger);
    font-weight: 600;
}

/* Dashboard charts: equal card body height */
.admin-chart-card .card-body { min-height: 300px; }
.admin-chart-container {
    position: relative;
    height: 260px;
    width: 100%;
}
.pdp-default { z-index: 1060 !important; }

/* Persian datepicker: use admin panel font (override vendor tahoma) */
.datepicker-container,
.datepicker-plot-area,
.datepicker-plot-area table,
.datepicker-plot-area th,
.datepicker-plot-area td,
.datepicker-plot-area span,
.datepicker-plot-area input,
.datepicker-plot-area button,
.pwt-datepicker-input-element,
input.jalali-date,
input.jalali-date-future-only,
input.jalali-date.pwt-datepicker-input-element {
    font-family: 'Vazirmatn', Tahoma, sans-serif !important;
    font-feature-settings: "ss01" 1;
    -webkit-font-feature-settings: "ss01" 1;
}
.datepicker-plot-area {
    font-size: 0.8125rem;
    direction: rtl;
}
.datepicker-container {
    direction: rtl;
}
.admin-schedule-datetime .admin-schedule-time {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    direction: ltr;
}
.admin-schedule-datetime .admin-schedule-date-wrap {
    min-width: 10.5rem;
    flex: 1 1 10.5rem;
    max-width: 14rem;
}
.admin-schedule-datetime .admin-schedule-hour,
.admin-schedule-datetime .admin-schedule-minute {
    width: 4.25rem;
    min-width: 4.25rem;
}
button.admin-copy-trigger {
    display: inline;
    border: 0;
    padding: 0 0.15rem;
    margin: 0;
    background: transparent;
    color: var(--bs-link-color, #0d6efd);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: inherit;
    line-height: inherit;
    text-decoration: underline dotted;
    cursor: pointer;
    vertical-align: baseline;
}
button.admin-copy-trigger:hover,
button.admin-copy-trigger:focus-visible {
    color: var(--bs-link-hover-color, #0a58ca);
    text-decoration: underline;
}
button.admin-copy-trigger.is-copied {
    color: var(--bs-success, #198754);
    text-decoration: none;
}
button.admin-copy-trigger.admin-copy-icon {
    font-family: inherit;
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    padding: 0.1rem 0.2rem;
    vertical-align: middle;
}
button.admin-copy-trigger.admin-copy-icon:hover,
button.admin-copy-trigger.admin-copy-icon:focus-visible {
    text-decoration: none;
}
/* Navigator: prev (›) on right, next (‹) on left — Persian RTL convention */
.datepicker-plot-area .datepicker-navigator {
    display: flex;
    flex-direction: row;
    direction: rtl;
    width: 100%;
    float: none;
}
.datepicker-plot-area .datepicker-navigator .pwt-btn-next,
.datepicker-plot-area .datepicker-navigator .pwt-btn-switch,
.datepicker-plot-area .datepicker-navigator .pwt-btn-prev {
    float: none;
    flex-shrink: 0;
}
.datepicker-plot-area .datepicker-navigator .pwt-btn-prev {
    order: 1;
    flex: 0 0 15%;
}
.datepicker-plot-area .datepicker-navigator .pwt-btn-switch {
    order: 2;
    flex: 1 1 auto;
    margin: 0 2%;
}
.datepicker-plot-area .datepicker-navigator .pwt-btn-next {
    order: 3;
    flex: 0 0 15%;
}
.login-box { width: 360px; max-width: 92vw; margin: 7vh auto; }
.menu-builder-grid { display: grid; gap: .75rem; }
.menu-row-card { border: 1px dashed #ced4da; border-radius: .5rem; padding: 1rem; }

.bale-keyboard-preview {
    max-width: 100%;
    margin: 0;
    border-radius: 12px;
    padding: 10px 8px 8px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5);
}
.bale-keyboard-preview--main {
    background: linear-gradient(165deg, #d4e4f7 0%, #b8cfe8 45%, #a8c4e2 100%);
    border: 2px solid #6b9fd4;
}
.bale-keyboard-preview--sub {
    background: linear-gradient(165deg, #f3ebe3 0%, #e8ddd2 50%, #dfd3c8 100%);
    border: 2px solid #c4a882;
    box-shadow: inset 4px 0 0 #c4a882;
}
.bale-keyboard-level-label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 600;
    margin-bottom: 8px;
    padding: 4px 8px;
    border-radius: 8px;
    line-height: 1.4;
}
.bale-keyboard-preview--main .bale-keyboard-level-label {
    background: rgba(255, 255, 255, .55);
    color: #1a4d7a;
}
.bale-keyboard-preview--sub .bale-keyboard-level-label {
    background: rgba(255, 255, 255, .5);
    color: #6b4f2e;
}
.bale-keyboard-level-name { font-weight: 700; }
.bale-keyboard-level-up {
    font-size: 0.68rem;
    font-weight: 500;
    margin-inline-start: auto;
    text-decoration: none;
}
.bale-keyboard-preview--sub .bale-keyboard-level-up { color: #8b5a2b; }
.bale-keyboard-preview--main .bale-keyboard-level-up { color: var(--bs-primary); }
.bale-keyboard-row {
    display: flex;
    gap: 6px;
    margin-bottom: 6px;
}
.bale-keyboard-row:last-child { margin-bottom: 0; }
.bale-keyboard-row.drag-over {
    outline: 2px dashed var(--bs-primary);
    outline-offset: 2px;
    border-radius: 8px;
}
.bale-keyboard-btn {
    flex: 1 1 0;
    min-width: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    min-height: 40px;
    padding: 6px 5px 28px;
    background: #fff;
    border: 1px solid #c5d0db;
    border-radius: 8px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
    cursor: grab;
    user-select: none;
    text-align: center;
}
.bale-keyboard-preview--main .bale-keyboard-btn {
    background: #fafcff;
    border-color: #9bb8d4;
}
.bale-keyboard-preview--sub .bale-keyboard-btn {
    background: #fffcf9;
    border-color: #d4c4b0;
}
.bale-keyboard-btn--submenu-entry {
    border-width: 2px;
    border-color: #4a7ab8 !important;
    background: linear-gradient(180deg, #fff 0%, #e8f2fc 100%) !important;
}
.bale-keyboard-btn-badge {
    position: absolute;
    top: 3px;
    inset-inline-start: 5px;
    font-size: 0.75rem;
    color: #4a7ab8;
    line-height: 1;
}
.bale-keyboard-btn.is-dragging { opacity: .55; cursor: grabbing; }
.bale-keyboard-btn.is-inactive { opacity: .45; }
.bale-keyboard-btn.is-static { cursor: default; opacity: .85; }
.bale-keyboard-row-back .bale-keyboard-btn { flex: 1 1 100%; }
.bale-keyboard-btn-label {
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.3;
    word-break: break-word;
}
.bale-keyboard-btn-meta {
    font-size: .62rem;
    color: var(--bs-secondary-color);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (min-width: 768px) {
    .bale-keyboard-btn-meta {
        opacity: 0;
        max-height: 0;
        margin: 0;
    }
    .bale-keyboard-btn:hover .bale-keyboard-btn-meta,
    .bale-keyboard-btn:focus-within .bale-keyboard-btn-meta {
        opacity: 1;
        max-height: 2em;
        margin-top: 1px;
    }
}
.bale-keyboard-btn-actions {
    position: absolute;
    left: 3px;
    right: 3px;
    bottom: 3px;
    display: flex;
    justify-content: center;
    gap: 2px;
    opacity: 0.35;
    transition: opacity 0.12s;
}
.bale-keyboard-btn:hover .bale-keyboard-btn-actions,
.bale-keyboard-btn:focus-within .bale-keyboard-btn-actions {
    opacity: 1;
}
.bale-keyboard-btn-actions .btn {
    padding: .08rem .3rem;
    font-size: .7rem;
    line-height: 1;
    border: none;
    background: rgba(248, 249, 250, .95);
}
.bale-keyboard-row-back .bale-keyboard-btn-back {
    background: rgba(255, 255, 255, .75) !important;
    border-style: dashed;
    min-height: 36px;
    padding-bottom: 6px;
}
.bale-keyboard-row-back .bale-keyboard-btn-meta { display: none; }
#welcomeItemsList > .border {
    padding: 0.5rem 0.65rem !important;
    margin-bottom: 0.5rem !important;
}
#welcomeItemsList textarea.form-control {
    min-height: 2.5rem;
}

.admin-field-label { margin-bottom: .35rem; }
.admin-help-btn { line-height: 1; vertical-align: middle; text-decoration: none !important; }
.admin-help-btn .bi { font-size: 1.05rem; }
.admin-help-btn:hover .bi { opacity: 1 !important; }
.popover { max-width: min(380px, 92vw); }
.popover-header { font-size: .85rem; text-align: right; }
.popover-body { font-size: .875rem; line-height: 1.65; text-align: right; }
.admin-page-intro { border-right: 3px solid var(--bs-info); }
.admin-time-input,
.admin-ltr-input { direction: ltr; text-align: left; font-variant-numeric: tabular-nums; }
.admin-ltr {
    direction: ltr;
    unicode-bidi: isolate;
    display: inline-block;
    font-variant-numeric: tabular-nums;
    text-align: left;
}
.admin-pagination .page-link { min-width: 2.25rem; text-align: center; }
.admin-customer-row-form { min-width: 11rem; }
.admin-customer-row-form .admin-customer-status-field { min-width: 7.5rem; }
.admin-customer-row-form .btn { white-space: nowrap; }
.admin-log-payload {
    direction: ltr;
    text-align: left;
    font-size: .75rem;
    max-height: 16rem;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.app-footer {
    margin-top: auto;
    flex-shrink: 0;
}

.app-main {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 3.5rem);
}

.app-content {
    flex: 1 0 auto;
}

.admin-logs-table {
    table-layout: fixed;
    width: 100%;
}
.admin-logs-table td { vertical-align: top; }
.admin-logs-table .col-time { width: 10.5rem; }
.admin-logs-table .col-dir { width: 5.5rem; }
.admin-logs-table .col-type { width: 7.5rem; }
.admin-logs-table .col-user { width: 16rem; }
.admin-logs-table .col-action { width: 4.75rem; }
.admin-logs-table .col-summary { width: auto; }
.admin-logs-table .col-user-cell {
    word-break: break-word;
    line-height: 1.45;
}
.admin-logs-table .admin-log-summary {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.45;
    word-break: break-word;
}
.admin-broadcast-editor {
    direction: rtl;
    font-family: inherit;
    line-height: 1.65;
    min-height: 10rem;
}
.admin-broadcast-toolbar .btn { min-width: 2.25rem; }

.broadcast-wysiwyg {
    min-height: 140px;
    max-height: 280px;
    overflow-y: auto;
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
}
.broadcast-wysiwyg:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .2);
}
.broadcast-emoji-panel {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    padding: .5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .375rem;
    background: var(--bs-body-bg);
}
.broadcast-emoji-btn { font-size: 1.1rem; line-height: 1; padding: .2rem .35rem; }

.bale-message-preview {
    background: linear-gradient(180deg, #e8edf2 0%, #dfe6ee 100%);
    border-radius: 12px;
    padding: 12px;
    max-width: 100%;
    margin: 0;
}
.bale-message-preview-bubble {
    background: #fff;
    border-radius: 12px 12px 4px 12px;
    padding: 10px 14px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
}
.bale-message-preview-bubble a { color: #0d6efd; }
.bale-message-preview-bubble code {
    background: #f1f3f5;
    padding: .1rem .3rem;
    border-radius: 4px;
    font-size: .9em;
}

.bot-flow-card {
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.bot-flow-card.border-primary {
    border-width: 2px !important;
}

.admin-inbox-thread .inbox-msg-bubble-deleted {
    opacity: .92;
    border: 2px dashed var(--bs-danger) !important;
    background: var(--bs-danger-bg-subtle) !important;
    color: var(--bs-body-color) !important;
}
.admin-inbox-thread .inbox-msg-bubble-edited {
    box-shadow: inset 0 0 0 2px rgba(var(--bs-warning-rgb), .45);
}
.admin-inbox-thread .inbox-msg-body-deleted {
    text-decoration: line-through;
    opacity: .85;
}
.admin-inbox-thread .inbox-msg-original {
    opacity: .9;
}
.admin-inbox-thread .inbox-msg-deleted-note {
    opacity: .85;
}
.admin-inbox-thread {
    max-height: min(55vh, 560px);
    overflow-y: auto;
    overflow-x: hidden;
    scroll-behavior: smooth;
}
.admin-inbox-thread-list {
    max-height: 60vh;
    overflow-y: auto;
}
.admin-inbox-thread-row {
    padding: 0.45rem 0.75rem;
}
.admin-inbox-thread-row .fw-semibold {
    line-height: 1.25;
    margin-bottom: 0.1rem;
}
.admin-inbox-chat-header .card-title {
    font-size: 1rem;
}
.admin-inbox-chat-body .admin-inbox-thread .d-flex {
    margin-bottom: 0.35rem !important;
}
.admin-inbox-chat-body .inbox-msg-bubble,
.admin-inbox-thread [class*="rounded"] {
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
}
#customersTable .customer-row-actions .btn {
    white-space: nowrap;
}
