:root {
    --crm-brand: #4f46e5;
    --crm-brand-hover: #4338ca;
    --crm-brand-soft: #eef2ff;
    --crm-brand-ring: rgba(79, 70, 229, 0.15);
    --crm-surface: #f8fafc;
    --crm-card: #ffffff;
    --crm-elevated: #ffffff;
    --crm-border: #e2e8f0;
    --crm-border-strong: #cbd5e1;
    --crm-border-subtle: #f1f5f9;
    --crm-border-light: #e8edf3;
    --crm-border-faint: #eef2f7;
    --crm-brand-border: #c7d2fe;
    --crm-brand-muted: #e0e7ff;
    --crm-accent: #4338ca;
    --crm-accent-light: #6366f1;
    --crm-violet-soft: #f5f3ff;
    --crm-blue-soft: #eff6ff;
    --crm-teal-soft: #f0fdfa;
    --crm-amber-soft: #fffbeb;
    --crm-text: #0f172a;
    --crm-text-secondary: #334155;
    --crm-muted: #64748b;
    --crm-muted-light: #94a3b8;
    --crm-input-bg: #ffffff;
    --crm-hover: #fafbfc;
    --crm-hover-strong: #f1f5f9;
    --crm-hover-soft: #f8fafc;
    --crm-nav-active-bg: #eef2ff;
    --crm-nav-active-text: #4f46e5;
    --crm-overlay: rgba(15, 23, 42, 0.45);
    --crm-radius: 12px;
    --crm-shadow: 0 1px 3px rgba(15, 23, 42, 0.06), 0 8px 24px rgba(15, 23, 42, 0.04);
    --sidebar-width: 220px;
    --sidebar-collapsed-width: 72px;
}

/* Tailwind CDN fallbacks */
html.h-full, html.h-full body { height: 100%; }
.h-full { height: 100%; }
.min-h-full { min-height: 100%; }
.flex-1 { flex: 1 1 0%; }
.flex { display: flex; }
.overflow-hidden { overflow: hidden; }
.overflow-y-auto { overflow-y: auto; }
.bg-slate-50 { background-color: var(--crm-surface); }
.text-slate-800 { color: var(--crm-text); }
.p-6 { padding: 1.5rem; }
@media (min-width: 1024px) {
    .lg\:p-8 { padding: 2rem; }
}

/* layout/sidebar.css (inlined) */
body.sidebar-collapsed {
    --sidebar-width: var(--sidebar-collapsed-width);
}

.app-shell {
    display: grid;
    grid-template-columns: var(--sidebar-width) 1fr;
    height: 100%;
    min-height: 0;
    transition: grid-template-columns 0.2s ease;
}

.app-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.crm-sidebar {
    display: flex;
    flex-direction: column;
    width: var(--sidebar-width);
    min-width: 0;
    height: 100%;
    background: var(--crm-card);
    border-right: 1px solid var(--crm-border);
    overflow: hidden;
    transition: width 0.2s ease;
}

.crm-sidebar__head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    padding: 14px 12px;
    border-bottom: 1px solid var(--crm-border-subtle);
}
.crm-sidebar__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 10px;
    background: linear-gradient(135deg, #4f46e5 0%, var(--crm-accent-light) 100%);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
}
.crm-sidebar__brand {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    transition: opacity 0.15s;
}
.crm-sidebar__brand-name {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.crm-sidebar__brand-sub {
    margin: 2px 0 0;
    font-size: 0.6875rem;
    color: var(--crm-muted);
    white-space: nowrap;
}
.crm-sidebar__collapse {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}
.crm-sidebar__collapse:hover { background: var(--crm-surface); color: var(--crm-text-secondary); }
.crm-sidebar__collapse svg.lucide { width: 18px; height: 18px; }

.sidebar-collapse-icon { display: inline-flex; align-items: center; justify-content: center; }
.sidebar-collapse-icon--open { display: none; }
body.sidebar-collapsed .sidebar-collapse-icon--close { display: none; }
body.sidebar-collapsed .sidebar-collapse-icon--open { display: inline-flex; }

.crm-sidebar__nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 8px;
}
.crm-sidebar__nav::-webkit-scrollbar { width: 4px; }
.crm-sidebar__nav::-webkit-scrollbar-thumb { background: var(--crm-border); border-radius: 4px; }

.crm-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 2px;
    border-radius: 12px;
    color: var(--crm-muted);
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
    transition: background 0.12s, color 0.12s;
    position: relative;
}
.crm-nav-item:hover {
    background: var(--crm-surface);
    color: var(--crm-text);
}
.crm-nav-item.is-active {
    background: var(--crm-brand-soft);
    color: var(--crm-nav-active-text);
}
.crm-nav-item.is-active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 0 4px 4px 0;
    background: var(--crm-brand);
}
.crm-nav-item__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.crm-nav-item__icon svg.lucide {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}
.crm-nav-item.is-active .crm-nav-item__icon { color: var(--crm-nav-active-text); }
.crm-nav-item__label {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: opacity 0.15s, width 0.15s;
}

.crm-sidebar__foot {
    flex-shrink: 0;
    padding: 10px 12px 14px;
    border-top: 1px solid var(--crm-border-subtle);
}
.crm-sidebar__version {
    display: inline-flex;
    padding: 4px 8px;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--crm-muted-light);
    background: var(--crm-surface);
    border: 1px solid var(--crm-border);
    border-radius: 9999px;
}

/* Collapsed */
body.sidebar-collapsed .crm-sidebar__brand,
body.sidebar-collapsed .crm-nav-item__label,
body.sidebar-collapsed .crm-sidebar__version span { display: none; }
body.sidebar-collapsed .crm-sidebar__head { justify-content: center; padding: 14px 8px; }
body.sidebar-collapsed .crm-sidebar__logo,
.crm-sidebar.is-collapsed .crm-sidebar__logo {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
}
body.sidebar-collapsed .crm-sidebar__collapse { margin: 0 auto; }
body.sidebar-collapsed .crm-nav-item {
    justify-content: center;
    padding: 10px;
}
body.sidebar-collapsed .crm-nav-item.is-active::before { display: none; }
body.sidebar-collapsed .crm-sidebar__foot { text-align: center; }

/* Mobile drawer */
.crm-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 8990;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
}

@media (max-width: 1023px) {
    .app-shell {
        grid-template-columns: 1fr;
    }
    .crm-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 9000;
        width: min(280px, 85vw);
        transform: translateX(-100%);
        transition: transform 0.22s ease;
        box-shadow: 8px 0 32px rgba(15, 23, 42, 0.12);
    }
    body.sidebar-mobile-open .crm-sidebar {
        transform: translateX(0);
    }
    body.sidebar-mobile-open .crm-sidebar-overlay {
        display: block;
    }
    .crm-sidebar__collapse { display: none; }
}

/* ═══ App Header ═══ */

.crm-topbar {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 16px;
    height: 72px;
    padding: 16px 24px;
    background: var(--crm-card);
    border-bottom: 1px solid var(--crm-border);
    position: sticky;
    top: 0;
    z-index: 100;
}

.crm-topbar__left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 0 1 auto;
}
.crm-topbar__menu-btn {
    display: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    transition: background 0.12s;
}
.crm-topbar__menu-btn:hover { background: var(--crm-surface); color: var(--crm-text-secondary); }
.crm-topbar__menu-btn svg.lucide { width: 20px; height: 20px; }

.crm-topbar__titles { min-width: 0; }
.crm-topbar__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.crm-topbar__subtitle {
    margin: 2px 0 0;
    font-size: 0.8125rem;
    color: var(--crm-muted);
    line-height: 1.3;
}

.crm-topbar__search {
    flex: 1 1 auto;
    display: none;
    max-width: 420px;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .crm-topbar__search { display: flex; }
}
.crm-topbar__search-form {
    display: flex;
    align-items: center;
    gap: 0;
    width: 100%;
    position: relative;
}
.crm-topbar__search-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--crm-muted-light);
    pointer-events: none;
    z-index: 2;
}
.crm-topbar__search-icon svg.lucide { width: 18px; height: 18px; }
.crm-topbar__search-input {
    width: 100%;
    min-height: 42px;
    padding: 10px 44px 10px 58px;
    font-size: 0.875rem;
    color: var(--crm-text);
    background: var(--crm-surface);
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.crm-topbar__search-input::placeholder { color: var(--crm-muted-light); }
.crm-topbar__search-input:focus {
    outline: none;
    background: var(--crm-card);
    border-color: #5b4df5;
    box-shadow: 0 0 0 3px rgba(91, 77, 245, 0.1);
}
.crm-topbar__search-submit {
    position: absolute;
    right: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--crm-muted);
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}
.crm-topbar__search-submit:hover { background: var(--crm-brand-soft); color: var(--crm-nav-active-text); }
.crm-topbar__search-submit svg.lucide { width: 16px; height: 16px; }

.crm-topbar__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-left: auto;
}

.crm-header-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.crm-header-icon-btn:hover {
    background: var(--crm-surface);
    border-color: var(--crm-border);
    color: var(--crm-text-secondary);
}
.crm-header-icon-btn svg.lucide { width: 18px; height: 18px; stroke-width: 2; }

.crm-notifications {
    position: relative;
}
.crm-notifications__toggle {
    position: relative;
}
.crm-notifications__badge.is-pulse {
    animation: crm-notify-pulse 0.6s ease-out;
}
@keyframes crm-notify-pulse {
    0% { transform: scale(1); }
    40% { transform: scale(1.15); }
    100% { transform: scale(1); }
}
.crm-notifications__icon--user,
.crm-notifications__icon--user-plus,
.crm-notifications__icon--checklist,
.crm-notifications__icon--message-circle {
    color: var(--crm-primary, #2563eb);
    background: color-mix(in srgb, var(--crm-primary, #2563eb) 12%, transparent);
}
.crm-notifications__badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
    box-shadow: 0 0 0 2px #fff;
}
.crm-notifications__panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: min(360px, calc(100vw - 24px));
    max-height: min(420px, calc(100vh - 96px));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    background: var(--crm-card);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .16);
    z-index: 60;
}
.crm-notifications__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--crm-border-faint);
    background: var(--crm-card);
}
.crm-notifications__head-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.crm-notifications__head-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--crm-text);
}
.crm-notifications__head-sub {
    font-size: 12px;
    color: var(--crm-muted);
}
.crm-notifications__head-actions {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 6px;
}
.crm-notifications__sound-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--crm-border-light);
    border-radius: 8px;
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
}
.crm-notifications__sound-toggle:hover {
    background: var(--crm-surface);
    border-color: var(--crm-border);
    color: var(--crm-text-secondary);
}
.crm-notifications__sound-toggle.is-muted {
    color: var(--crm-muted-light);
    background: var(--crm-hover);
}
.crm-notifications__sound-icon svg {
    width: 16px;
    height: 16px;
}
.crm-notifications__mark-all {
    flex-shrink: 0;
    border: 0;
    background: transparent;
    color: #2563eb;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 4px;
    white-space: nowrap;
}
.crm-notifications__mark-all:hover {
    color: #1d4ed8;
    text-decoration: underline;
}
.crm-notifications__loading {
    padding: 28px 16px;
    text-align: center;
    font-size: 13px;
    color: var(--crm-muted);
}
.crm-notifications__empty {
    margin: 0;
    padding: 36px 20px;
    text-align: center;
    color: var(--crm-muted);
    font-size: 13px;
    line-height: 1.5;
}
.crm-notifications__empty::before {
    content: '';
    display: block;
    width: 40px;
    height: 40px;
    margin: 0 auto 12px;
    border-radius: 999px;
    background: var(--crm-hover-strong) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9'/%3E%3Cpath d='M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.crm-notifications__list {
    list-style: none;
    margin: 0;
    padding: 6px;
    overflow: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(100, 116, 139, .35) transparent;
}
.crm-notifications__list::-webkit-scrollbar {
    width: 6px;
}
.crm-notifications__list::-webkit-scrollbar-thumb {
    background: rgba(100, 116, 139, .28);
    border-radius: 999px;
}
.crm-notifications__item {
    border: 1px solid var(--crm-border-light);
    border-radius: 8px;
    background: var(--crm-surface, var(--crm-card));
    overflow: hidden;
    transition: border-color .15s, background .15s;
}
.crm-notifications__item.is-unread {
    border-color: color-mix(in srgb, var(--crm-accent, #2563eb) 24%, var(--crm-border-light));
    background: color-mix(in srgb, var(--crm-accent, #2563eb) 6%, var(--crm-card));
}
.crm-notifications__link {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 7px 8px;
    color: inherit;
    text-decoration: none;
    transition: background .12s ease;
}
.crm-notifications__link:hover {
    background: var(--crm-hover);
}
.crm-notifications__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-top: 1px;
    border-radius: 6px;
    background: var(--crm-blue-soft);
    color: #2563eb;
}
.crm-notifications__icon svg {
    width: 14px;
    height: 14px;
}
.crm-notifications__icon--ticket {
    background: rgba(245, 158, 11, .15);
    color: #d97706;
}
.crm-notifications__icon--file-badge {
    background: rgba(16, 185, 129, .12);
    color: #059669;
}
.crm-notifications__icon--bell,
.crm-notifications__icon--wallet {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}
.crm-notifications__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.crm-notifications__top-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}
.crm-notifications__meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-width: 0;
}
.crm-notifications__type-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: var(--crm-brand-soft);
    color: #1d4ed8;
}
.crm-notifications__type-icon svg {
    width: 11px;
    height: 11px;
}
.crm-notifications__type-icon--ticket {
    background: rgba(245, 158, 11, .15);
    color: #d97706;
}
.crm-notifications__type-icon--file-badge {
    background: rgba(16, 185, 129, .12);
    color: #059669;
}
.crm-notifications__type-icon--bell,
.crm-notifications__type-icon--wallet {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}
.crm-notifications__type-icon--user,
.crm-notifications__type-icon--user-plus,
.crm-notifications__type-icon--checklist,
.crm-notifications__type-icon--message-circle {
    background: color-mix(in srgb, var(--crm-primary, #2563eb) 12%, transparent);
    color: var(--crm-primary, #2563eb);
}
.crm-notifications__time {
    flex-shrink: 0;
    font-size: 10px;
    color: var(--crm-muted-light);
    white-space: nowrap;
}
.crm-notifications__name {
    font-size: 12px;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
.crm-notifications__detail {
    font-size: 11px;
    color: var(--crm-muted);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
.crm-notifications__foot {
    flex-shrink: 0;
    padding: 7px 12px 9px;
    border-top: 1px solid var(--crm-border-faint);
    background: var(--crm-hover);
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--crm-muted);
    text-transform: uppercase;
}

/* Всплывающие toast-уведомления (правый нижний угол) */
.crm-notify-toasts {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 10px;
    width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}
.crm-notify-toast {
    position: relative;
    width: 100%;
    pointer-events: auto;
    border-radius: 14px;
    overflow: hidden;
    opacity: 0;
    transform: translateX(24px) scale(0.96);
    transition: opacity .35s cubic-bezier(.22, 1, .36, 1), transform .4s cubic-bezier(.22, 1, .36, 1);
    box-shadow:
        0 4px 6px rgba(15, 23, 42, .04),
        0 12px 28px rgba(15, 23, 42, .12),
        0 0 0 1px rgba(15, 23, 42, .06);
}
.crm-notify-toast.is-visible {
    opacity: 1;
    transform: translateX(0) scale(1);
}
.crm-notify-toast.is-leaving {
    opacity: 0;
    transform: translateX(16px) scale(0.98);
    transition-duration: .28s;
    transition-timing-function: ease-in;
}
.crm-notify-toast__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px 12px 12px;
    background: var(--crm-card);
    border: 1px solid var(--crm-border-light);
    border-left: 3px solid var(--crm-accent, #2563eb);
}
.crm-notify-toast__inner.is-clickable {
    cursor: pointer;
}
.crm-notify-toast__inner.is-clickable:hover {
    background: var(--crm-hover);
}
.crm-notify-toast--client_message .crm-notify-toast__inner {
    border-left-color: #2563eb;
}
.crm-notify-toast--bank_p2p_request .crm-notify-toast__inner {
    border-left-color: #d97706;
}
.crm-notify-toast--bank_passport_review .crm-notify-toast__inner {
    border-left-color: #059669;
}
.crm-notify-toast--client_assigned .crm-notify-toast__inner,
.crm-notify-toast--lead_assigned .crm-notify-toast__inner {
    border-left-color: #7c3aed;
}
.crm-notify-toast--task_assigned .crm-notify-toast__inner {
    border-left-color: #0891b2;
}
.crm-notify-toast__icon {
    width: 36px;
    height: 36px;
    margin-top: 0;
    border-radius: 10px;
    flex-shrink: 0;
}
.crm-notify-toast__icon svg {
    width: 18px;
    height: 18px;
}
.crm-notify-toast__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.crm-notify-toast__badge {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--crm-muted);
}
.crm-notify-toast__name {
    font-size: 14px;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.crm-notify-toast__close {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--crm-muted);
    cursor: pointer;
    transition: background .12s, color .12s;
}
.crm-notify-toast__close:hover {
    background: var(--crm-surface);
    color: var(--crm-text);
}
.crm-notify-toast__close svg {
    width: 14px;
    height: 14px;
}
.crm-notify-toast__progress {
    display: block;
    height: 3px;
    transform-origin: left center;
    background: linear-gradient(90deg, var(--crm-accent, #2563eb), color-mix(in srgb, var(--crm-accent, #2563eb) 55%, #60a5fa));
    animation: crm-notify-toast-progress linear forwards;
}
.crm-notify-toast--client_message .crm-notify-toast__progress {
    background: linear-gradient(90deg, #2563eb, #60a5fa);
}
.crm-notify-toast--bank_p2p_request .crm-notify-toast__progress {
    background: linear-gradient(90deg, #d97706, #fbbf24);
}
.crm-notify-toast--bank_passport_review .crm-notify-toast__progress {
    background: linear-gradient(90deg, #059669, #34d399);
}
@keyframes crm-notify-toast-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}
@media (max-width: 640px) {
    .crm-notify-toasts {
        right: 12px;
        bottom: 12px;
        width: calc(100vw - 24px);
    }
}

.crm-user-menu {
    position: relative;
}
.crm-user-menu__trigger {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 220px;
    padding: 4px 8px 4px 4px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}
.crm-user-menu__trigger:hover,
.crm-user-menu.is-open .crm-user-menu__trigger {
    background: var(--crm-surface);
    border-color: var(--crm-border);
}
.crm-user-menu__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--crm-accent-light) 0%, #4f46e5 100%);
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.crm-user-menu__meta {
    min-width: 0;
    text-align: left;
}
.crm-user-menu__name {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.crm-user-menu__role {
    display: inline-flex;
    margin-top: 2px;
    padding: 1px 6px;
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: capitalize;
    color: var(--crm-accent);
    background: var(--crm-brand-soft);
    border-radius: 9999px;
}
.crm-user-menu__chevron {
    flex-shrink: 0;
    color: var(--crm-muted-light);
    transition: transform 0.15s;
}
.crm-user-menu.is-open .crm-user-menu__chevron { transform: rotate(180deg); }
.crm-user-menu__chevron svg.lucide { width: 16px; height: 16px; }

.crm-user-menu__dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 200;
    min-width: 200px;
    padding: 6px;
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
}
.crm-user-menu.is-open .crm-user-menu__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.crm-user-menu__item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text-secondary);
    text-decoration: none;
    background: transparent;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    transition: background 0.12s, color 0.12s;
}
.crm-user-menu__item:hover { background: var(--crm-surface); color: var(--crm-text); }
.crm-user-menu__item svg.lucide { width: 16px; height: 16px; color: var(--crm-muted); }
.crm-user-menu__item--danger { color: #b91c1c; }
.crm-user-menu__item--danger:hover { background: rgba(239,68,68,.12); color: #991b1b; }
.crm-user-menu__item--danger svg.lucide { color: #b91c1c; }
.crm-user-menu__divider {
    margin: 4px 0;
    border: none;
    border-top: 1px solid var(--crm-border-subtle);
}

@media (max-width: 640px) {
    .crm-topbar { padding: 12px 16px; gap: 10px; }
    .crm-topbar__menu-btn { display: inline-flex; }
    .crm-user-menu__meta { display: none; }
    .crm-user-menu__chevron { display: none; }
    .crm-topbar__subtitle { display: none; }
}

* { box-sizing: border-box; }

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--crm-text);
    background: var(--crm-surface);
}

.crm-card, .crm-panel {
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    box-shadow: var(--crm-shadow);
}

.crm-card { padding: 1.5rem; }
.crm-panel { padding: 1.25rem 1.5rem; }
.crm-panel-title { font-size: 0.9375rem; font-weight: 600; color: var(--crm-text); }

.crm-stat-card {
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--crm-shadow);
    transition: transform 0.15s, box-shadow 0.15s;
}
.crm-stat-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08); }

.crm-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--crm-muted);
    margin-bottom: 0.375rem;
}

.crm-input, .crm-select, select.crm-input {
    width: 100%;
    border: 1px solid var(--crm-border);
    border-radius: 0.625rem;
    padding: 0.625rem 0.875rem;
    font-size: 0.9375rem;
    background: var(--crm-input-bg);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.crm-input:focus, .crm-select:focus {
    outline: none;
    border-color: var(--crm-brand);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15);
}

.crm-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--crm-brand);
    color: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    padding: 0.625rem 1.25rem;
    border-radius: 0.625rem;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s;
}
.crm-btn-primary:hover { background: var(--crm-brand-hover); }
.crm-btn-sm {
    font-size: .75rem;
    padding: .375rem .75rem;
    border-radius: 8px;
}

.crm-btn-ghost {
    display: inline-flex;
    align-items: center;
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    color: var(--crm-muted);
    padding: 0.5rem 0.875rem;
    border-radius: 0.5rem;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}
.crm-btn-ghost:hover { background: var(--crm-surface); color: var(--crm-text); }

.crm-icon-btn {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    cursor: pointer;
}

.crm-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.crm-table th {
    text-align: left;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-muted);
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--crm-border);
}
.crm-table td {
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--crm-border-subtle);
    vertical-align: middle;
}
.crm-table tr:hover td { background: var(--crm-hover); }

.crm-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: capitalize;
}
.crm-badge-blue { background: var(--crm-brand-soft); color: #1d4ed8; }
.crm-badge-sky { background: rgba(14,165,233,.15); color: #0369a1; }
.crm-badge-amber { background: rgba(245,158,11,.18); color: #b45309; }
.crm-badge-green { background: rgba(34,197,94,.15); color: #15803d; }
.crm-badge-red { background: rgba(239,68,68,.15); color: #b91c1c; }
.crm-badge-slate { background: var(--crm-hover-strong); color: var(--crm-muted); }

.crm-alert-error {
    background: rgba(239,68,68,.12);
    border: 1px solid rgba(239,68,68,.35);
    color: #b91c1c;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
}
.crm-alert-success {
    background: #f0fdf4;
    border: 1px solid rgba(16,185,129,.35);
    color: #15803d;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
}

/* Flash toasts (session messages) */
.crm-flash-stack {
    position: fixed;
    top: 5rem;
    right: 1.25rem;
    z-index: 220;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    width: min(22rem, calc(100vw - 2rem));
    pointer-events: none;
}
@media (max-width: 640px) {
    .crm-flash-stack {
        top: auto;
        bottom: 1.25rem;
        right: 1rem;
        left: 1rem;
        width: auto;
    }
}

.crm-flash {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 0.75rem;
    padding: 0.875rem 0.875rem 1rem;
    border-radius: 14px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    box-shadow:
        0 4px 6px -1px rgba(15, 23, 42, 0.06),
        0 16px 32px -8px rgba(15, 23, 42, 0.14);
    overflow: hidden;
    pointer-events: auto;
    animation: crm-flash-in 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.crm-flash.is-leaving {
    animation: crm-flash-out 0.28s ease-in forwards;
}

@keyframes crm-flash-in {
    from {
        opacity: 0;
        transform: translateX(1.25rem) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}
@keyframes crm-flash-out {
    to {
        opacity: 0;
        transform: translateX(0.75rem) scale(0.97);
    }
}

.crm-flash--success {
    border-color: rgba(16, 185, 129, 0.35);
    background: linear-gradient(135deg, var(--crm-card) 0%, rgba(240, 253, 244, 0.92) 100%);
}
.crm-flash--error {
    border-color: rgba(239, 68, 68, 0.35);
    background: linear-gradient(135deg, var(--crm-card) 0%, rgba(254, 242, 242, 0.92) 100%);
}

.crm-flash__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    flex-shrink: 0;
}
.crm-flash__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}
.crm-flash--success .crm-flash__icon {
    background: rgba(16, 185, 129, 0.14);
    color: #059669;
}
.crm-flash--error .crm-flash__icon {
    background: rgba(239, 68, 68, 0.12);
    color: #dc2626;
}

.crm-flash__body {
    min-width: 0;
    padding-top: 0.125rem;
}
.crm-flash__label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: 0.2rem;
}
.crm-flash--success .crm-flash__label { color: #047857; }
.crm-flash--error .crm-flash__label { color: #b91c1c; }

.crm-flash__message {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--crm-text);
}

.crm-flash__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    margin: -0.125rem -0.125rem 0 0;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--crm-muted);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.crm-flash__close:hover {
    background: var(--crm-hover-strong);
    color: var(--crm-text-secondary);
}
.crm-flash__close svg {
    width: 1rem;
    height: 1rem;
}

.crm-flash__progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    transform-origin: left center;
    transform: scaleX(1);
    animation: crm-flash-progress var(--crm-flash-duration, 5200ms) linear forwards;
}
.crm-flash--success .crm-flash__progress {
    background: linear-gradient(90deg, #10b981, #34d399);
}
.crm-flash--error .crm-flash__progress {
    background: linear-gradient(90deg, #ef4444, #f87171);
}
@keyframes crm-flash-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

.crm-page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.crm-bar-chart { display: flex; flex-direction: column; gap: 0.75rem; }
.crm-bar-row { display: grid; grid-template-columns: 100px 1fr 40px; gap: 0.75rem; align-items: center; font-size: 0.8125rem; }
.crm-bar-track { height: 8px; background: var(--crm-hover-strong); border-radius: 9999px; overflow: hidden; }
.crm-bar-fill { height: 100%; background: linear-gradient(90deg, var(--crm-brand), var(--crm-brand)); border-radius: 9999px; }

.crm-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 50;
    padding: 1rem;
}
.crm-modal-backdrop.is-open { display: flex; }
.crm-modal { background: var(--crm-card); border-radius: var(--crm-radius); max-width: 480px; width: 100%; padding: 1.5rem; box-shadow: 0 25px 50px rgba(0,0,0,0.15); }

.crm-req-ok { color: #15803d; }
.crm-req-fail { color: #b91c1c; }

/* Client Modular Workspace */
main:has(.client-modular-workspace) {
    --cws-gap: 16px;
    --cws-inset: 1.5rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: var(--cws-gap) var(--cws-inset) var(--cws-inset);
}
@media (min-width: 1024px) {
    main:has(.client-modular-workspace) { --cws-inset: 2rem; }
}

.client-modular-workspace {
    --cws-gap: 16px;
    --cws-inset: 1.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
@media (min-width: 1024px) {
    .client-modular-workspace { --cws-inset: 2rem; }
}

.client-workspace-grid {
    display: grid;
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) minmax(280px, 320px);
    gap: var(--cws-gap);
    align-items: start;
    width: 100%;
}
@media (max-width: 1199px) {
    .client-workspace-grid { grid-template-columns: 1fr; }
}
.client-workspace-col {
    display: flex;
    flex-direction: column;
    gap: var(--cws-gap);
    min-width: 0;
}
.client-workspace-stack {
    display: flex;
    flex-direction: column;
    gap: var(--cws-gap);
    min-width: 0;
    width: 100%;
}
.client-workspace-top {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: var(--cws-gap);
    min-width: 0;
    width: 100%;
}
.client-workspace-top__p2p {
    flex: 6 1 0;
    min-width: 0;
}
.client-workspace-top__finance {
    flex: 4 1 0;
    min-width: 0;
}
.client-workspace-stack__calendar {
    min-width: 0;
    width: 100%;
}
.client-workspace-top__p2p .module-card,
.client-workspace-top__finance .module-card {
    height: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.client-workspace-top__p2p .module-card .module-card-body,
.client-workspace-top__finance .module-card .module-card-body {
    flex: 1;
}
.client-workspace-top__finance .module-card--finance {
    min-height: 0;
}
.client-workspace-top__p2p:empty {
    display: none;
}
.client-workspace-top__p2p:empty + .client-workspace-top__finance {
    flex: 1 1 100%;
}
@media (max-width: 720px) {
    .client-workspace-top {
        flex-direction: column;
    }
    .client-workspace-top__p2p,
    .client-workspace-top__finance {
        flex: 1 1 auto;
        width: 100%;
        max-width: none;
    }
}
.client-workspace-top__finance .cws-finance-tile {
    min-height: 4.5rem;
    padding: .45rem .35rem .4rem;
}
.client-workspace-top__finance .cws-finance-tile__value {
    font-size: .58rem;
}

/* Client profile — P2P tiles (up to 8, fill row width) */
.module-card--p2p-recent .module-card-body {
    padding: 10px 12px 12px;
}
.module-card--p2p-recent .module-card-header {
    padding-bottom: 6px;
}
.cws-p2p-recent__all-link {
    font-size: .6875rem;
    font-weight: 600;
    color: var(--crm-accent, #7c3aed);
    text-decoration: none;
    opacity: .9;
}
.cws-p2p-recent__all-link:hover {
    opacity: 1;
    text-decoration: none;
}
.cws-p2p-recent {
    min-width: 0;
}
.cws-p2p-recent__empty {
    margin: 0;
    padding: .65rem .55rem;
    border-radius: 10px;
    border: 1px dashed color-mix(in srgb, var(--crm-accent, #7c3aed) 22%, var(--crm-border));
    background: color-mix(in srgb, var(--crm-surface, #fff) 92%, var(--crm-accent, #7c3aed) 8%);
    font-size: .75rem;
    color: var(--crm-muted-light);
    text-align: center;
}
.cws-p2p-recent__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(var(--p2p-cols, 8), minmax(0, 1fr));
    gap: .5rem;
    min-width: 0;
    width: 100%;
}

.cws-p2p-card {
    min-width: 0;
}
.cws-p2p-card__surface {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: .22rem;
    width: 100%;
    min-height: 5.35rem;
    padding: .55rem .4rem .45rem;
    border-radius: 11px;
    border: 1px solid var(--crm-border-subtle, var(--crm-border));
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--crm-card, #fff) 96%, var(--crm-accent, #7c3aed) 4%) 0%,
        var(--crm-card, #fff) 100%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    text-decoration: none;
    color: inherit;
    text-align: center;
    overflow: hidden;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}
.cws-p2p-card__stripe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--crm-muted-light, #94a3b8);
    opacity: .55;
}
.cws-p2p-card--pending .cws-p2p-card__stripe { background: #f59e0b; opacity: 1; }
.cws-p2p-card--awaiting_receipt .cws-p2p-card__stripe { background: #3b82f6; opacity: 1; }
.cws-p2p-card--receipt_submitted .cws-p2p-card__stripe { background: #14b8a6; opacity: 1; }
.cws-p2p-card--paid .cws-p2p-card__stripe,
.cws-p2p-card--completed .cws-p2p-card__stripe { background: #10b981; opacity: 1; }
.cws-p2p-card--cancelled .cws-p2p-card__stripe,
.cws-p2p-card--rejected .cws-p2p-card__stripe { background: #ef4444; opacity: 1; }

.cws-p2p-card:hover .cws-p2p-card__surface {
    border-color: rgba(124, 58, 237, 0.38);
    box-shadow: 0 6px 16px rgba(124, 58, 237, 0.14);
    transform: translateY(-2px);
}
.cws-p2p-card--pending .cws-p2p-card__surface {
    border-color: rgba(245, 158, 11, 0.35);
}
.cws-p2p-card--cancelled .cws-p2p-card__surface,
.cws-p2p-card--rejected .cws-p2p-card__surface {
    border-color: rgba(239, 68, 68, 0.3);
}
.cws-p2p-card--paid .cws-p2p-card__surface,
.cws-p2p-card--completed .cws-p2p-card__surface {
    border-color: rgba(16, 185, 129, 0.32);
}
.cws-p2p-card--awaiting_receipt .cws-p2p-card__surface {
    border-color: rgba(59, 130, 246, 0.32);
}
.cws-p2p-card--receipt_submitted .cws-p2p-card__surface {
    border-color: rgba(20, 184, 166, 0.32);
}

.cws-p2p-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    margin-top: .15rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: var(--crm-hover-strong, rgba(100, 116, 139, 0.12));
    color: var(--crm-muted);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
    flex-shrink: 0;
}
.cws-p2p-status__icon,
.cws-p2p-status__icon svg {
    width: .9rem;
    height: .9rem;
}
.cws-p2p-status--pending {
    color: #b45309;
    background: linear-gradient(145deg, #fef3c7, #fde68a);
    border-color: rgba(245, 158, 11, 0.4);
}
.cws-p2p-status--awaiting_receipt {
    color: #1d4ed8;
    background: linear-gradient(145deg, #dbeafe, #bfdbfe);
    border-color: rgba(59, 130, 246, 0.4);
}
.cws-p2p-status--receipt_submitted {
    color: #0f766e;
    background: linear-gradient(145deg, #ccfbf1, #99f6e4);
    border-color: rgba(20, 184, 166, 0.4);
}
.cws-p2p-status--paid,
.cws-p2p-status--completed {
    color: #047857;
    background: linear-gradient(145deg, #d1fae5, #a7f3d0);
    border-color: rgba(16, 185, 129, 0.4);
}
.cws-p2p-status--cancelled,
.cws-p2p-status--rejected {
    color: #b91c1c;
    background: linear-gradient(145deg, #fee2e2, #fecaca);
    border-color: rgba(239, 68, 68, 0.4);
}
.cws-p2p-status--pending .cws-p2p-status__icon svg {
    animation: cws-p2p-status-pulse 2.4s ease-in-out infinite;
}
@keyframes cws-p2p-status-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .55; }
}

.cws-p2p-card__id {
    font-size: .6875rem;
    font-weight: 800;
    letter-spacing: .04em;
    color: var(--crm-text-muted, var(--crm-muted));
    line-height: 1.1;
}
.cws-p2p-card__amounts {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .08rem;
    width: 100%;
    min-width: 0;
}
.cws-p2p-card__amount {
    margin: 0;
    max-width: 100%;
    font-size: .6875rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--crm-text);
    letter-spacing: -0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cws-p2p-card__amount--secondary {
    font-size: .5625rem;
    font-weight: 700;
    color: var(--crm-muted-light);
    opacity: .92;
}
.cws-p2p-card__geo {
    margin-top: auto;
    padding: .1rem .35rem;
    border-radius: 999px;
    font-size: .5rem;
    font-weight: 800;
    letter-spacing: .06em;
    color: var(--crm-muted);
    background: color-mix(in srgb, var(--crm-hover-strong, rgba(100, 116, 139, 0.12)) 80%, transparent);
}

html.theme-dark .cws-p2p-card__surface {
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--crm-card, #1e293b) 88%, #7c3aed 12%) 0%,
        var(--crm-card, #1e293b) 100%);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
html.theme-dark .cws-p2p-card:hover .cws-p2p-card__surface {
    box-shadow: 0 8px 20px rgba(124, 58, 237, 0.22);
}
html.theme-dark .cws-p2p-card__geo {
    background: rgba(148, 163, 184, 0.14);
    color: var(--crm-muted-light);
}

@media (max-width: 640px) {
    .cws-p2p-recent__list {
        grid-template-columns: repeat(var(--p2p-cols, 3), minmax(0, 1fr));
        gap: .4rem;
    }
    .cws-p2p-card__surface {
        min-height: 4.85rem;
        padding: .48rem .32rem .4rem;
    }
}

.client-workspace-stack__calendar .cws-calendar__view-switch {
    margin-left: 0;
}
.client-workspace-full {
    display: flex;
    flex-direction: column;
    gap: var(--cws-gap);
    margin-top: var(--cws-gap);
    min-width: 0;
    width: 100%;
}

/* Client header — fixed in layout, does NOT scroll or overlap modules */
.cws-topbar {
    display: flex;
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    position: relative;
    z-index: 2;
    margin: 0 0 var(--cws-gap);
    padding: 10px 14px;
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}

/* Only modules scroll — header stays put */
.client-modular-workspace__body {
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.cws-topbar__left {
    display: flex;
    align-items: center;
    gap: .625rem;
    min-width: 0;
    flex: 1;
}
.cws-topbar__back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    color: var(--crm-muted);
    text-decoration: none;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
}
.cws-topbar__back:hover { background: var(--crm-surface); color: var(--crm-text-secondary); }
.cws-topbar__back svg { width: 16px; height: 16px; }
.cws-topbar__flag {
    width: 28px;
    height: 28px;
    border-radius: 9999px;
    object-fit: cover;
    border: 1px solid var(--crm-border);
    flex-shrink: 0;
}
.cws-topbar__identity { min-width: 0; }
.cws-topbar__id {
    display: block;
    font-size: .6875rem;
    font-weight: 600;
    color: var(--crm-muted-light);
    letter-spacing: .03em;
}
.cws-topbar__name {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--crm-text);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cws-topbar__nav {
    display: flex;
    align-items: center;
    gap: .375rem;
}
.cws-topbar__nav-count {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--crm-muted);
    min-width: 3.5rem;
    text-align: center;
}
.cws-topbar__nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-text-secondary);
    text-decoration: none;
}
.cws-topbar__nav-btn:hover { background: var(--crm-hover-strong); }
.cws-topbar__nav-btn.is-disabled { opacity: .4; pointer-events: none; }
.cws-topbar__action--locked { opacity: .65; }
.cws-topbar__action--passport-ready {
    color: #047857;
    border-color: rgba(16, 185, 129, 0.35);
    background: rgba(16, 185, 129, 0.08);
}
.cws-topbar__nav-btn svg { width: 16px; height: 16px; }
.cws-topbar__actions {
    display: flex;
    align-items: center;
    gap: .375rem;
    flex-shrink: 0;
}
.cws-topbar__action {
    padding: .375rem .5rem;
    min-width: 32px;
    justify-content: center;
}
.cws-topbar__action svg { width: 16px; height: 16px; }
@media (max-width: 1199px) {
    .cws-topbar__action--desktop { display: none !important; }
    .cws-topbar__action--mobile { display: block; }
}
@media (min-width: 1200px) {
    .cws-topbar__action--mobile { display: none !important; }
}

/* Module cards */
.module-card {
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
}
.module-card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px 8px;
    border-bottom: 1px solid var(--crm-border-subtle);
}
.module-card-header__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: #7c3aed;
    flex-shrink: 0;
}
.module-card-header__icon svg { width: 18px; height: 18px; stroke-width: 2; }
.module-card-header__title {
    margin: 0;
    flex: 1;
    font-size: 1rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.25;
}
.module-card-header__actions { margin-left: auto; flex-shrink: 0; }
.module-card-header__link {
    font-size: .75rem;
    font-weight: 600;
    color: #7c3aed;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
    padding: .125rem .25rem;
}
.module-card-header__link:hover { text-decoration: underline; }
.module-card-body { padding: 14px; }

/* Module min-heights */
.module-card--lead { min-height: 180px; }
.module-card--finance { min-height: 0; }
.module-card--calendar { min-height: 420px; display: flex; flex-direction: column; }
.module-card--calendar .module-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 12px 14px 14px;
    min-width: 0;
}
.module-card--local-time { min-height: auto; }
.module-card--local-time .module-card-body { padding: 14px 16px 16px; }

/* Local time */
.cws-local-time {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 56px;
}
.cws-local-time__clock {
    margin: 0;
    font-size: 2rem;
    font-weight: 700;
    color: var(--crm-text);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}
.cws-local-time__meta {
    display: flex;
    align-items: center;
    gap: .625rem;
    min-width: 0;
}
.cws-local-time__flag {
    width: 40px;
    height: 40px;
    border-radius: 9999px;
    object-fit: cover;
    border: 1px solid #e8edf4;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
    flex-shrink: 0;
}
.cws-local-time__info {
    display: flex;
    flex-direction: column;
    gap: .1875rem;
    min-width: 0;
}
.cws-local-time__geo {
    font-size: .8125rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--crm-muted);
    line-height: 1.2;
}
.cws-local-time__tz {
    font-size: .6875rem;
    font-weight: 500;
    color: var(--crm-muted-light);
    line-height: 1.2;
}
@media (max-width: 640px) {
    .cws-local-time__clock { font-size: 1.75rem; }
    .cws-local-time__flag { width: 36px; height: 36px; }
}

/* Vacancy / Link Vacancy */
.module-card--vacancy .module-card-header__actions {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-left: auto;
}

.cws-vacancy__header-btn {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 1.65rem;
    padding: 0 .5rem;
    border-radius: 8px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-text-secondary);
    font-size: .6875rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.cws-vacancy__header-btn:hover,
.cws-vacancy__header-btn.is-copied {
    border-color: rgba(124, 58, 237, 0.35);
    color: var(--crm-accent, #7c3aed);
    background: color-mix(in srgb, var(--crm-accent, #7c3aed) 6%, var(--crm-card));
}

.cws-vacancy__header-btn--copy {
    padding: 0 .45rem;
}

.cws-vacancy__header-btn-icon,
.cws-vacancy__header-btn-icon svg {
    width: .85rem;
    height: .85rem;
}

.cws-vacancy {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    min-width: 0;
}

.cws-vacancy__list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    min-width: 0;
}

.cws-vacancy__empty {
    margin: 0;
    padding: .35rem 0;
    font-size: .75rem;
    color: var(--crm-muted-light);
    text-align: center;
}

.cws-vacancy-card {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .55rem;
    align-items: center;
    padding: .55rem .6rem;
    border-radius: 10px;
    border: 1px solid var(--crm-border-faint, #eef2f7);
    background: var(--crm-hover-soft, #f8fafc);
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.cws-vacancy-card:hover {
    border-color: rgba(124, 58, 237, 0.28);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.cws-vacancy-card__flag {
    width: 1.75rem;
    height: 1.25rem;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--crm-hover);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cws-vacancy-card__flag img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cws-vacancy-card__flag-fallback svg {
    width: .9rem;
    height: .9rem;
    color: var(--crm-muted-light);
}

.cws-vacancy-card__main {
    min-width: 0;
}

.cws-vacancy-card__job {
    font-size: .78rem;
    font-weight: 700;
    color: var(--crm-text);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cws-vacancy-card__meta {
    margin-top: .12rem;
    font-size: .68rem;
    color: var(--crm-muted);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cws-vacancy-card__dot {
    display: inline-block;
    width: .22rem;
    height: .22rem;
    margin: 0 .28rem;
    border-radius: 999px;
    background: var(--crm-border-strong);
    vertical-align: middle;
}

.cws-vacancy-card__salary {
    text-align: right;
    font-size: .72rem;
    font-weight: 800;
    color: var(--crm-text);
    line-height: 1.2;
    padding-right: 1.1rem;
}

.cws-vacancy-card__salary small {
    display: block;
    margin-top: .1rem;
    font-size: .6rem;
    font-weight: 600;
    color: var(--crm-muted-light);
}

.cws-vacancy-card__delete {
    position: absolute;
    top: .35rem;
    right: .35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    padding: 0;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--crm-muted-light);
    cursor: pointer;
}

.cws-vacancy-card__delete:hover {
    background: rgba(239, 68, 68, 0.12);
    color: #dc2626;
}

.cws-vacancy-card__delete svg {
    width: .75rem;
    height: .75rem;
}

/* Link Vacancy modal */
.cws-vacancy-modal.crm-modal {
    display: flex;
    flex-direction: column;
    width: min(1080px, calc(100vw - 2rem));
    max-width: min(1080px, calc(100vw - 2rem));
    max-height: none;
    overflow: visible;
}

.cws-vacancy-modal__body {
    padding: 0;
    overflow: visible;
    flex: 0 1 auto;
    min-height: 0;
}

.cws-vacancy-modal__grid {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr);
    align-items: stretch;
    min-height: 0;
    height: auto;
}

.cws-vacancy-modal__form-pane {
    padding: 1.25rem 1.5rem 1.15rem;
    overflow: visible;
    border-right: 1px solid var(--crm-border-faint, #eef2f7);
}

.cws-vacancy-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cws-vacancy-form__pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.cws-vacancy-form__hint {
    margin: -.15rem 0 0;
    font-size: .7rem;
    line-height: 1.45;
    color: var(--crm-muted-light);
}

.cws-vacancy-modal__form-pane .crm-input,
.cws-vacancy-modal__form-pane .crm-select-wrapper {
    width: 100%;
    min-width: 0;
}

.cws-vacancy-modal__form-pane .crm-select-trigger__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cws-vacancy-field {
    display: flex;
    flex-direction: column;
    gap: .38rem;
    min-width: 0;
}

.cws-vacancy-field .crm-label {
    margin: 0;
    font-size: .74rem;
    font-weight: 700;
    color: var(--crm-text);
}

.cws-vacancy-field__catalog {
    margin-top: .35rem;
    font-size: .76rem;
}

.cws-vacancy-field .crm-select-wrapper:has(.cws-vacancy-field__catalog) {
    margin-top: .35rem;
}

.cws-vacancy-field .crm-select-wrapper:has(.cws-vacancy-field__catalog) .crm-select-trigger {
    min-height: 2rem;
    font-size: .76rem;
    color: var(--crm-muted);
    background: var(--crm-hover-soft, #f8fafc);
    border-color: var(--crm-border-faint, #eef2f7);
}

.cws-vacancy-field .crm-select-wrapper.crm-select-disabled:has(.cws-vacancy-field__catalog) {
    opacity: .55;
}

.cws-vacancy-field .crm-select-wrapper.is-hidden,
.cws-vacancy-field__catalog.is-hidden {
    display: none;
}

.cws-vacancy-company-search {
    display: inline-flex;
    width: 100%;
    min-height: 2.45rem;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin-top: .35rem;
    padding: .55rem .75rem;
    border: 1px solid rgba(79, 70, 229, .22);
    border-radius: .75rem;
    color: #4338ca;
    background:
        radial-gradient(circle at 94% 0%, rgba(14, 165, 233, .15), transparent 42%),
        linear-gradient(180deg, #ffffff 0%, #eef2ff 100%);
    font-size: .78rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(79, 70, 229, .08);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.cws-vacancy-company-search:hover {
    border-color: rgba(79, 70, 229, .4);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(79, 70, 229, .12);
}

.cws-vacancy-company-search:disabled {
    cursor: wait;
    opacity: .72;
    transform: none;
}

.cws-vacancy-company-search__icon,
.cws-vacancy-company-search__icon svg {
    width: .92rem;
    height: .92rem;
}

.cws-vacancy-form__salary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.cws-vacancy-form__salary .cws-vacancy-field {
    gap: .3rem;
}

.cws-vacancy-form__salary .crm-label {
    font-size: .7rem;
    color: var(--crm-muted);
}

.cws-vacancy-amount {
    display: flex;
    align-items: stretch;
    min-width: 0;
    height: 2.25rem;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: var(--crm-card);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.cws-vacancy-amount__prefix {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.1rem;
    border: none;
    border-right: 1px solid var(--crm-border-faint, #eef2f7);
    border-radius: 0;
    background: var(--crm-hover-soft, #f8fafc);
    font-size: .7rem;
    font-weight: 700;
    color: var(--crm-muted);
}

.cws-vacancy-modal .cws-vacancy-amount__input.crm-input {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    min-height: 0;
    height: 100%;
    padding: 0 .6rem;
    border: none;
    border-radius: 0;
    box-shadow: none;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text);
    background: transparent;
}

.cws-vacancy-modal .cws-vacancy-amount__input.crm-input::placeholder {
    color: var(--crm-muted);
    font-weight: 500;
    opacity: 1;
}

.cws-vacancy-modal .cws-vacancy-amount__input.crm-input:focus {
    outline: none;
    border: none;
    box-shadow: none;
}

.cws-vacancy-amount--auto {
    background: var(--crm-hover-soft, #f8fafc);
}

.cws-vacancy-amount--auto .cws-vacancy-amount__input.crm-input {
    color: var(--crm-text-secondary);
}

.cws-vacancy-amount:focus-within {
    border-color: rgba(124, 58, 237, 0.45);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}

.cws-vacancy-amount:focus-within .cws-vacancy-amount__prefix {
    border-right-color: rgba(124, 58, 237, 0.2);
}

.cws-vacancy-form__error {
    margin: 0;
    padding: .55rem .65rem;
    border-radius: 8px;
    font-size: .78rem;
    color: #b91c1c;
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.cws-vacancy-modal__archive-pane {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 15rem;
    background: linear-gradient(180deg, var(--crm-hover-soft, #f8fafc) 0%, var(--crm-card) 100%);
    overflow: hidden;
}

.cws-vacancy-archive__head {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-shrink: 0;
    padding: .9rem .95rem .65rem;
    border-bottom: 1px solid var(--crm-border-faint, #eef2f7);
}

.cws-vacancy-archive__head-icon,
.cws-vacancy-archive__head-icon svg {
    width: .95rem;
    height: .95rem;
    color: var(--crm-accent, #7c3aed);
}

.cws-vacancy-archive__title {
    font-size: .78rem;
    font-weight: 700;
    color: var(--crm-text);
}

.cws-vacancy-archive__count {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 .35rem;
    border-radius: 999px;
    font-size: .625rem;
    font-weight: 800;
    color: var(--crm-accent, #7c3aed);
    background: color-mix(in srgb, var(--crm-accent, #7c3aed) 12%, transparent);
}

.cws-vacancy-archive__search {
    position: relative;
    display: block;
    flex-shrink: 0;
    margin: .75rem .75rem .7rem;
}

.cws-vacancy-archive__search-icon {
    position: absolute;
    left: 1.05rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    width: 1.45rem;
    height: 1.45rem;
    align-items: center;
    justify-content: center;
    color: #6366f1;
    border: 1px solid rgba(99, 102, 241, .18);
    border-radius: 999px;
    background: #eef2ff;
    box-shadow: 0 3px 10px rgba(99, 102, 241, .13);
    pointer-events: none;
    z-index: 2;
}

.cws-vacancy-archive__search-icon.lucide {
    padding: .18rem;
}

.cws-vacancy-archive__search-icon svg {
    width: .82rem;
    height: .82rem;
    stroke-width: 2.4;
}

.cws-vacancy-archive__search .cws-vacancy-archive__search-input.crm-input,
.cws-vacancy-archive__search-input {
    width: 100%;
    min-height: 3rem;
    box-sizing: border-box;
    padding: .78rem 1rem .78rem 3.35rem !important;
    border: 1px solid var(--crm-border, #e2e8f0);
    border-radius: 1.05rem;
    color: var(--crm-text, #0f172a);
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    font-size: .88rem;
    font-weight: 650;
    line-height: 1.2;
    box-shadow:
        0 8px 22px rgba(15, 23, 42, .045),
        inset 0 1px 0 rgba(255, 255, 255, .95);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.cws-vacancy-archive__search-input::placeholder {
    color: #94a3b8;
    font-weight: 700;
    opacity: 1;
}

.cws-vacancy-archive__search-input:focus {
    border-color: rgba(99, 102, 241, .42);
    background: #ffffff;
    box-shadow:
        0 0 0 4px rgba(99, 102, 241, .1),
        0 12px 28px rgba(79, 70, 229, .09);
}

.cws-vacancy-archive__search:focus-within .cws-vacancy-archive__search-icon {
    color: #4f46e5;
    border-color: rgba(99, 102, 241, .24);
    background: #eef2ff;
}

.cws-vacancy-archive__list {
    flex: 1 1 auto;
    min-height: 9rem;
    max-height: 14rem;
    overflow-y: auto;
    padding: 0 .65rem .75rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.cws-vacancy-modal .crm-select-wrapper.is-open {
    z-index: 20;
    position: relative;
}

.cws-vacancy-archive__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 10rem;
    padding: 1.5rem .85rem;
    margin: .25rem 0 0;
    text-align: center;
    border-radius: 12px;
    border: 1px dashed var(--crm-border);
    background: color-mix(in srgb, var(--crm-card) 88%, var(--crm-accent, #7c3aed) 12%);
}

.cws-vacancy-archive__empty-icon,
.cws-vacancy-archive__empty-icon svg {
    width: 1.35rem;
    height: 1.35rem;
    color: var(--crm-muted-light);
}

.cws-vacancy-archive__empty-title {
    font-size: .76rem;
    font-weight: 700;
    color: var(--crm-text-secondary);
}

.cws-vacancy-archive__empty-text {
    font-size: .68rem;
    line-height: 1.45;
    color: var(--crm-muted-light);
    max-width: 12rem;
}

.cws-vacancy-archive__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .55rem .6rem;
    border-radius: 10px;
    border: 1px solid var(--crm-border-faint, #eef2f7);
    background: var(--crm-card);
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.cws-vacancy-archive__item:hover {
    border-color: rgba(124, 58, 237, 0.28);
    background: color-mix(in srgb, var(--crm-accent, #7c3aed) 4%, var(--crm-card));
    box-shadow: 0 3px 10px rgba(124, 58, 237, 0.07);
}

.cws-vacancy-archive__flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(99, 102, 241, 0.08);
    border: 1px solid rgba(99, 102, 241, 0.1);
}

.cws-vacancy-archive__flag img {
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 999px;
    object-fit: cover;
}

.cws-vacancy-archive__info {
    flex: 1 1 auto;
    min-width: 0;
    padding-right: .2rem;
}

.cws-vacancy-archive__job {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cws-vacancy-archive__meta {
    display: block;
    margin-top: .1rem;
    font-size: .64rem;
    color: var(--crm-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cws-vacancy-archive__salary {
    flex-shrink: 0;
    font-size: .68rem;
    font-weight: 800;
    color: var(--crm-text);
    text-align: right;
    line-height: 1.2;
    white-space: nowrap;
}

.cws-vacancy-archive__salary small {
    display: block;
    margin-top: .06rem;
    font-size: .58rem;
    font-weight: 600;
    color: #059669;
}

.cws-vacancy-archive__delete {
    position: absolute;
    top: .28rem;
    right: .28rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 6px;
    border: none;
    background: rgba(239, 68, 68, 0.08);
    color: #ef4444;
    opacity: 0;
    transition: opacity .15s ease, background .15s ease, color .15s ease;
}

.cws-vacancy-archive__item:hover .cws-vacancy-archive__delete {
    opacity: 1;
}

.cws-vacancy-archive__delete:hover {
    background: #ef4444;
    color: #fff;
}

.cws-vacancy-modal__footer .crm-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.cws-vacancy-modal__save-icon,
.cws-vacancy-modal__save-icon svg {
    width: .9rem;
    height: .9rem;
}

@media (max-width: 780px) {
    .cws-vacancy-modal__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .cws-vacancy-modal__form-pane {
        border-right: none;
        border-bottom: 1px solid var(--crm-border-faint, #eef2f7);
    }

    .cws-vacancy-modal__archive-pane {
        max-height: 14rem;
    }
}

@media (max-width: 900px) {
    .cws-vacancy-form__pair {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 520px) {
    .cws-vacancy-form__salary {
        grid-template-columns: minmax(0, 1fr);
    }
}

.module-card--referral .cws-empty { min-height: 72px; }

/* Fields — shared */
.cws-field-list { display: flex; flex-direction: column; margin: 0; padding: 0; }
.cws-field { display: flex; margin: 0; }
.cws-field__label {
    font-size: .8125rem;
    font-weight: 500;
    color: var(--crm-muted-light);
    margin: 0;
}
.cws-field__value {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--crm-text);
    margin: 0;
    min-width: 0;
}
.cws-muted { font-size: .8125rem; color: var(--crm-muted-light); margin: 0; }
.cws-field-empty { font-size: .8125rem; color: var(--crm-border-strong); font-weight: 500; }
.cws-field-action {
    font-size: .8125rem;
    font-weight: 500;
    color: var(--crm-muted-light);
    text-decoration: none;
}
.cws-field-action:hover { color: #7c3aed; }

/* Lead / Client */
.cws-field-list--lead { gap: .875rem; }
.cws-field-list--lead .cws-field {
    flex-direction: column;
    gap: .3125rem;
}
.cws-field-list--lead .cws-field__value { width: 100%; }
.cws-field-list--lead .ct-contact-item--boxed {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .5rem .625rem;
    background: var(--crm-surface);
    border: 1px solid var(--crm-border-faint);
    border-radius: 8px;
    box-sizing: border-box;
}
.cws-field-list--lead .ct-contact-item--boxed .ct-contact-trigger {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 6px;
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
}
.cws-field-list--lead .ct-contact-item--boxed .ct-contact-item__text {
    flex: 1;
    min-width: 0;
    font-size: .8125rem;
    font-weight: 500;
    color: var(--crm-text);
}
.cws-field-list--lead .ct-contact-item--empty .ct-contact-item__icon--add {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 6px;
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    color: #7c3aed;
    flex-shrink: 0;
    text-decoration: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    transition: background .12s, border-color .12s, color .12s;
}
.cws-field-list--lead .ct-contact-item--empty a.ct-contact-item__icon--add:hover,
.cws-field-list--lead .ct-contact-item--empty button.ct-contact-item__icon--add:hover {
    background: var(--crm-violet-soft);
    border-color: var(--crm-brand-border);
    color: #6d28d9;
}
.cws-field-list--lead .ct-contact-item--empty .ct-contact-item__icon--add svg {
    width: 14px;
    height: 14px;
    stroke-width: 2.5;
}
.cws-field-list--lead .ct-contact-item__text--placeholder {
    color: var(--crm-muted-light);
    font-weight: 500;
}
.cws-field-list--lead .cws-field--status .cws-field__value {
    display: flex;
    align-items: stretch;
    width: 100%;
}
.cws-field-list--lead .cws-field--status .status-pill-select,
.cws-field-list--lead .cws-field--status .status-pill {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: flex;
}
.cws-field-list--lead .cws-field--status .status-pill-select__trigger,
.cws-field-list--lead .cws-field--status .status-pill {
    width: 100%;
    min-width: 0;
    min-height: 2.375rem;
    height: auto;
    padding: .5rem .625rem;
    padding-right: 2rem;
    border-radius: 8px;
    box-sizing: border-box;
    font-size: .8125rem;
}
.cws-field-list--lead .cws-field--status .status-pill-select__label,
.cws-field-list--lead .cws-field--status .status-pill__label {
    flex: 1;
    text-align: left;
}

/* Information — label left, value right */
.cws-field-list--info { gap: 0; }
.cws-field-list--info .cws-field--row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .4375rem 0;
    border-bottom: 1px solid var(--crm-border-subtle);
}
.cws-field-list--info .cws-field--row:last-child { border-bottom: none; }
.cws-field-list--info .cws-field__label {
    flex-shrink: 0;
    font-weight: 400;
    color: var(--crm-muted-light);
}
.cws-field-list--info .cws-field__value {
    flex: 1;
    text-align: right;
    font-weight: 600;
    color: var(--crm-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cws-field-list--info .cws-field__value--badge {
    display: flex;
    justify-content: flex-end;
}
.cws-field-list--info .cws-field__value--badge .crm-badge {
    font-size: .6875rem;
    font-weight: 600;
}

/* Empty states */
.cws-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: .75rem;
    gap: .375rem;
}
.cws-empty--sm { padding: .5rem; }
.cws-empty__icon { color: var(--crm-border-strong); display: inline-flex; }
.cws-empty__icon svg { width: 24px; height: 24px; }
.cws-empty__text { font-size: .8125rem; color: var(--crm-muted-light); margin: 0; }

/* Finance */
.module-card--finance .module-card-body {
    padding: 10px 11px 11px;
}

.cws-finance {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    min-width: 0;
}

.cws-finance-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .4rem;
    min-width: 0;
}

.cws-finance-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .28rem;
    min-width: 0;
    min-height: 4.75rem;
    padding: .5rem .4rem .42rem;
    border-radius: 11px;
    border: 1px solid var(--crm-border-faint, #eef2f7);
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--crm-card, #fff) 96%, var(--crm-accent, #7c3aed) 4%) 0%,
        var(--crm-card, #fff) 100%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    text-align: center;
    overflow: hidden;
}

.cws-finance-tile__stripe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}

.cws-finance-tile--deposit .cws-finance-tile__stripe {
    background: #10b981;
}

.cws-finance-tile--withdraw .cws-finance-tile__stripe {
    background: #f59e0b;
}

.cws-finance-tile--deposit {
    border-color: rgba(16, 185, 129, 0.22);
}

.cws-finance-tile--withdraw {
    border-color: rgba(245, 158, 11, 0.22);
}

.cws-finance-tile__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 8px;
    flex-shrink: 0;
}

.cws-finance-tile__icon svg {
    width: .78rem;
    height: .78rem;
}

.cws-finance-tile--deposit .cws-finance-tile__icon {
    color: #047857;
    background: rgba(16, 185, 129, 0.16);
}

.cws-finance-tile--withdraw .cws-finance-tile__icon {
    color: #c2410c;
    background: rgba(249, 115, 22, 0.16);
}

.cws-finance-tile__value {
    width: 100%;
    min-width: 0;
    font-size: clamp(.56rem, 1.5vw, .66rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cws-finance-tile--deposit .cws-finance-tile__value {
    color: #059669;
}

.cws-finance-tile--withdraw .cws-finance-tile__value {
    color: #d97706;
}

.cws-finance-link {
    display: flex;
    align-items: center;
    gap: .4rem;
    width: 100%;
    min-height: 2rem;
    padding: .42rem .55rem;
    border-radius: 9px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-text);
    font-family: inherit;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.cws-finance-link__label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
}

.cws-finance-link__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .3rem;
    border-radius: 999px;
    font-size: .6rem;
    font-weight: 800;
    color: var(--crm-accent, #7c3aed);
    background: color-mix(in srgb, var(--crm-accent, #7c3aed) 14%, transparent);
}

.cws-finance-link__chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--crm-muted-light);
}

.cws-finance-link__chevron svg {
    width: .85rem;
    height: .85rem;
}

.cws-finance-link:hover:not(:disabled) {
    border-color: rgba(124, 58, 237, 0.35);
    background: color-mix(in srgb, var(--crm-accent, #7c3aed) 5%, var(--crm-card));
}

.cws-finance-link:hover:not(:disabled) .cws-finance-link__label,
.cws-finance-link:hover:not(:disabled) .cws-finance-link__chevron {
    color: var(--crm-accent, #7c3aed);
}

.cws-finance-link:disabled {
    opacity: .45;
    cursor: not-allowed;
}

html.theme-dark .cws-finance-metric {
    background: var(--crm-hover);
    border-color: var(--crm-border-subtle);
}

html.theme-dark .cws-finance-metric--income .cws-finance-metric__icon {
    color: #34d399;
    background: rgba(52, 211, 153, 0.14);
}

html.theme-dark .cws-finance-metric--outcome .cws-finance-metric__icon {
    color: #fb923c;
    background: rgba(251, 146, 60, 0.14);
}

html.theme-dark .cws-finance-metric--income .cws-finance-metric__value {
    color: #34d399;
}

html.theme-dark .cws-finance-metric--outcome .cws-finance-metric__value {
    color: #fb923c;
}

html.theme-dark .cws-finance-link {
    background: var(--crm-elevated);
    border-color: var(--crm-border-subtle);
}
.cws-finance-tx-modal__body {
    max-height: min(60vh, 28rem);
    overflow-y: auto;
}
.cws-finance-tx-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.cws-finance-tx-list__link {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: .55rem;
    padding: .55rem .6rem;
    border-radius: 10px;
    border: 1px solid var(--crm-border-subtle, var(--crm-border));
    text-decoration: none;
    color: inherit;
    background: var(--crm-surface);
    transition: border-color .15s ease, background .15s ease;
}
.cws-finance-tx-list__link:hover {
    border-color: rgba(124, 58, 237, 0.28);
    background: color-mix(in srgb, var(--crm-accent, #7c3aed) 4%, var(--crm-surface));
}
.cws-finance-tx-list__type {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    flex-shrink: 0;
}
.cws-finance-tx-list__type svg {
    width: .9rem;
    height: .9rem;
}
.cws-finance-tx-list__type--deposit {
    color: #047857;
    background: #d1fae5;
}
.cws-finance-tx-list__type--withdrawal {
    color: #b45309;
    background: #ffedd5;
}
.cws-finance-tx-list__main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.cws-finance-tx-list__id {
    font-size: .8125rem;
    font-weight: 800;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.cws-finance-tx-list__meta {
    font-size: .6875rem;
    color: var(--crm-muted-light);
}
.cws-finance-tx-list__amount {
    font-size: .8125rem;
    font-weight: 800;
    white-space: nowrap;
}
.cws-finance-tx-list .fin-status-badge {
    display: inline-flex;
    align-items: center;
    font-size: .625rem;
    font-weight: 700;
    padding: .15rem .42rem;
    border-radius: 999px;
    line-height: 1.2;
    white-space: nowrap;
}
.cws-finance-tx-list .fin-status-badge.fin-status-pending { background: var(--crm-amber-soft); color: #b45309; border: 1px solid rgba(245,158,11,.35); }
.cws-finance-tx-list .fin-status-badge.fin-status-processing { background: var(--crm-blue-soft); color: #1d4ed8; border: 1px solid var(--crm-brand-border); }
.cws-finance-tx-list .fin-status-badge.fin-status-approved { background: var(--crm-brand-soft); color: var(--crm-accent); border: 1px solid var(--crm-brand-border); }
.cws-finance-tx-list .fin-status-badge.fin-status-completed { background: rgba(16,185,129,.12); color: #047857; border: 1px solid rgba(16,185,129,.35); }
.cws-finance-tx-list .fin-status-badge.fin-status-rejected { background: rgba(239,68,68,.12); color: #b91c1c; border: 1px solid rgba(239,68,68,.35); }
.cws-finance-tx-list .fin-status-badge.fin-status-cancelled { background: var(--crm-hover-strong); color: var(--crm-muted); border: 1px solid var(--crm-border); }

/* Calendar workspace */
.cws-calendar { width: 100%; min-width: 0; }
.cws-calendar__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-bottom: .375rem;
}
.cws-calendar__hint {
    margin: 0 0 .625rem;
    font-size: .6875rem;
    font-weight: 500;
    color: var(--crm-muted-light);
}
.cws-calendar__btn {
    display: inline-flex;
    align-items: center;
    gap: .3125rem;
    height: 30px;
    padding: 0 .625rem;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: var(--crm-card);
    font-size: .75rem;
    font-weight: 600;
    color: var(--crm-muted);
    cursor: pointer;
    font-family: inherit;
}
.cws-calendar__btn svg { width: 14px; height: 14px; }
.cws-calendar__btn:hover { background: var(--crm-surface); border-color: var(--crm-brand-border); color: #6d28d9; }
.cws-calendar__btn--primary {
    background: #7c3aed;
    border-color: #7c3aed;
    color: #fff;
}
.cws-calendar__btn--primary:hover { background: #6d28d9; border-color: #6d28d9; color: #fff; }
.cws-calendar__view-switch {
    display: inline-flex;
    padding: 2px;
    border-radius: 8px;
    background: var(--crm-hover-strong);
    border: 1px solid var(--crm-border);
    margin-left: auto;
}
.cws-calendar__view-btn {
    height: 26px;
    padding: 0 .5rem;
    border: none;
    border-radius: 6px;
    background: transparent;
    font-size: .6875rem;
    font-weight: 700;
    color: var(--crm-muted);
    cursor: pointer;
    font-family: inherit;
}
.cws-calendar__view-btn.is-active {
    background: var(--crm-card);
    color: #6d28d9;
    box-shadow: 0 1px 3px rgba(15,23,42,.08);
}
.cws-calendar__nav {
    display: flex;
    align-items: center;
    gap: .375rem;
    width: 100%;
    order: 3;
    flex-basis: 100%;
}
@media (min-width: 900px) {
    .cws-calendar__nav { width: auto; order: 0; flex-basis: auto; margin-left: auto; }
}
.cws-calendar__nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    padding: 0;
}
.cws-calendar__nav-btn svg { width: 14px; height: 14px; }
.cws-calendar__title {
    flex: 1;
    text-align: center;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--crm-text);
}
.cws-calendar__weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2px;
    margin-bottom: 4px;
}
.cws-calendar__weekdays span {
    font-size: .625rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--crm-muted-light);
    text-align: center;
}
.cws-calendar__grid--month {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2px;
}
.cws-cal-day {
    position: relative;
    min-height: 72px;
    padding: .25rem;
    border: 1px solid var(--crm-border-faint);
    border-radius: 8px;
    background: var(--crm-card);
    display: flex;
    flex-direction: column;
    gap: .1875rem;
    overflow: hidden;
}
.cws-cal-day.is-other-month { background: var(--crm-hover); opacity: .75; }
.cws-cal-day.is-today { border-color: var(--crm-brand-border); background: var(--crm-violet-soft); }
.cws-cal-day.is-selected {
    border-color: #7c3aed;
    background: var(--crm-violet-soft);
    box-shadow: inset 0 0 0 1px rgba(124, 58, 237, .15);
}
.cws-cal-day.is-clickable {
    cursor: pointer;
    transition: border-color .12s, background .12s, box-shadow .12s;
}
.cws-cal-day.is-clickable:hover {
    border-color: var(--crm-brand-border);
    background: var(--crm-violet-soft);
}
.cws-cal-day.is-empty .cws-cal-day__num { color: var(--crm-muted-light); }
.cws-cal-day__num {
    position: relative;
    z-index: 2;
    align-self: flex-start;
    font-size: .6875rem;
    font-weight: 700;
    color: var(--crm-text-secondary);
    padding: 0 .125rem;
    line-height: 1.2;
}
.cws-cal-day__events {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}
.cws-cal-event {
    display: flex;
    align-items: center;
    gap: .25rem;
    width: 100%;
    min-width: 0;
    padding: .125rem .3125rem;
    border: none;
    border-radius: 4px;
    background: var(--ev-bg, var(--crm-border-subtle));
    color: var(--ev-text, var(--crm-muted));
    font-size: .625rem;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    line-height: 1.2;
}
.cws-cal-event__time { flex-shrink: 0; opacity: .85; }
.cws-cal-event__title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cws-cal-event__more {
    border: none;
    background: transparent;
    color: #7c3aed;
    font-size: .625rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0 .125rem;
    text-align: left;
    font-family: inherit;
}
.cws-cal-day__add-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease;
    z-index: 1;
}
.cws-cal-week-col__body .cws-cal-day__add-overlay {
    inset: 0;
}
.cws-cal-day__add-overlay svg {
    width: 32px;
    height: 32px;
    color: #7c3aed;
    opacity: .85;
}
.cws-cal-day.is-clickable:hover .cws-cal-day__add-overlay,
.cws-cal-week-col.is-clickable:hover .cws-cal-day__add-overlay {
    opacity: 1;
}
.cws-cal-day__placeholder { font-size: .75rem; color: var(--crm-border-strong); margin: 0; }
.cws-cal-day-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: .375rem;
    padding: .5rem .625rem;
    border: 1px dashed var(--crm-brand-border);
    border-radius: 8px;
    background: var(--crm-violet-soft);
    color: #7c3aed;
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}
.cws-cal-day-add:hover { background: var(--crm-violet-soft); border-color: var(--crm-brand-border); }
.cws-calendar__grid--week {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .375rem;
}
.cws-cal-week-col {
    border: 1px solid var(--crm-border-faint);
    border-radius: 8px;
    background: var(--crm-card);
    min-height: 100px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.cws-cal-week-col.is-clickable { cursor: pointer; transition: border-color .12s, background .12s; }
.cws-cal-week-col.is-clickable:hover { border-color: var(--crm-brand-border); background: var(--crm-violet-soft); }
.cws-cal-week-col.is-today { border-color: var(--crm-brand-border); background: var(--crm-violet-soft); }
.cws-cal-week-col.is-selected {
    border-color: #7c3aed;
    background: var(--crm-violet-soft);
    box-shadow: inset 0 0 0 1px rgba(124, 58, 237, .15);
}
.cws-cal-week-col__head {
    font-size: .6875rem;
    font-weight: 700;
    padding: .3125rem .375rem;
    background: var(--crm-surface);
    border-bottom: 1px solid var(--crm-border-faint);
}
.cws-cal-week-col__body {
    position: relative;
    padding: .25rem;
    display: flex;
    flex-direction: column;
    gap: .1875rem;
    flex: 1;
    min-height: 64px;
}
.cws-cal-week-col__body.is-empty {
    align-items: stretch;
    justify-content: stretch;
}
.cws-calendar__grid--day .cws-cal-day-view {
    display: flex;
    flex-direction: column;
    gap: .375rem;
    padding: .375rem;
    border: 1px solid var(--crm-border-faint);
    border-radius: 10px;
    background: var(--crm-card);
    min-height: 80px;
}
.cws-calendar__list { display: flex; flex-direction: column; gap: .375rem; }
.cws-cal-list-item {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .5rem .625rem;
    border: 1px solid var(--crm-border-faint);
    border-radius: 10px;
    background: var(--crm-card);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
}
.cws-cal-list-item__type {
    flex-shrink: 0;
    font-size: .625rem;
    font-weight: 700;
    padding: .1875rem .375rem;
    border-radius: 999px;
}
.cws-cal-list-item__body {
    display: flex;
    flex-direction: column;
    gap: .125rem;
    min-width: 0;
}
.cws-cal-list-item__body strong {
    font-size: .8125rem;
    color: var(--crm-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cws-cal-list-item__body span { font-size: .6875rem; color: var(--crm-muted-light); }
.cws-calendar__agenda {
    margin-top: .75rem;
    padding-top: .625rem;
    border-top: 1px solid var(--crm-border-faint);
}
.cws-calendar__agenda-tabs {
    display: flex;
    gap: .25rem;
    margin-bottom: .4375rem;
}
.cws-calendar__agenda-tab {
    height: 26px;
    padding: 0 .625rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    font-size: .6875rem;
    font-weight: 700;
    color: var(--crm-muted);
    cursor: pointer;
    font-family: inherit;
}
.cws-calendar__agenda-tab.is-active {
    background: var(--crm-violet-soft);
    border-color: var(--crm-brand-border);
    color: #6d28d9;
}
.cws-calendar__agenda-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .3125rem;
}
.cws-cal-agenda-item {
    display: flex;
    align-items: flex-start;
    gap: .4375rem;
    width: 100%;
    padding: .375rem .5rem;
    border: 1px solid var(--crm-border-faint);
    border-radius: 8px;
    background: var(--crm-hover);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
}
.cws-cal-agenda-item__dot {
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    margin-top: .3125rem;
    flex-shrink: 0;
}
.cws-cal-agenda-item__body {
    display: flex;
    flex-direction: column;
    gap: .0625rem;
    min-width: 0;
}
.cws-cal-agenda-item__body strong {
    font-size: .8125rem;
    color: var(--crm-text-secondary);
}
.cws-cal-agenda-item__body span { font-size: .6875rem; color: var(--crm-muted-light); }
.cws-cal-agenda-empty { font-size: .75rem; color: var(--crm-border-strong); padding: .25rem 0; }
.cws-cal-client-link { color: #7c3aed; font-weight: 600; text-decoration: none; }
.cws-cal-client-link:hover { text-decoration: underline; }
.cal-type-picker {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-top: .375rem;
}
.cal-type-picker__btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .1875rem;
    padding: .375rem .4375rem;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: var(--crm-card);
    cursor: pointer;
    font-family: inherit;
    min-width: 56px;
}
.cal-type-picker__btn.is-selected {
    border-color: #7c3aed;
    box-shadow: 0 0 0 2px rgba(124,58,237,.15);
}
.cal-type-picker__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
}
.cal-type-picker__icon svg { width: 14px; height: 14px; }
.cal-type-picker__label { font-size: .625rem; font-weight: 600; color: var(--crm-muted); }
.cal-event-detail__title { font-size: 1rem; font-weight: 700; color: var(--crm-text); margin: .375rem 0 .75rem; }
.cal-event-detail__meta { display: grid; gap: .5rem; margin: 0; }
.cal-event-detail__meta div { display: grid; grid-template-columns: 88px 1fr; gap: .5rem; }
.cal-event-detail__meta dt { font-size: .75rem; font-weight: 600; color: var(--crm-muted-light); margin: 0; }
.cal-event-detail__meta dd { font-size: .8125rem; color: var(--crm-text-secondary); margin: 0; }
.cws-cal-type-badge {
    display: inline-block;
    font-size: .6875rem;
    font-weight: 700;
    padding: .25rem .5rem;
    border-radius: 999px;
}
.cw-create-field--grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
}
@media (max-width: 640px) {
    .cws-cal-day { min-height: 56px; }
    .cws-cal-event__time { display: none; }
    .cw-create-field--grid { grid-template-columns: 1fr; }
    .cws-calendar__view-switch { margin-left: 0; width: 100%; justify-content: space-between; }
    .cws-calendar__view-btn { flex: 1; padding: 0 .25rem; }
}

/* Documents / Files module */
.cws-docs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.cws-docs__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .625rem .75rem;
    border-radius: 12px;
    border: 1px solid var(--crm-border-subtle);
    background: var(--crm-card);
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.cws-docs__row.is-uploadable {
    cursor: pointer;
}

.cws-docs__row.is-uploadable:hover {
    border-color: var(--crm-brand-border, #c7d2fe);
    background: var(--crm-brand-soft, #eef2ff);
    box-shadow: 0 2px 8px rgba(79, 70, 229, 0.08);
}

.cws-docs__row.is-filled {
    border-color: rgba(16, 185, 129, 0.28);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.06) 0%, var(--crm-card) 100%);
}

.cws-docs__row-main {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
}

.cws-docs__row-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 2.125rem;
    border-radius: 10px;
    background: var(--crm-brand-soft, #eef2ff);
    color: var(--crm-accent, #4f46e5);
    flex-shrink: 0;
}

.cws-docs__row.is-filled .cws-docs__row-icon {
    background: rgba(16, 185, 129, 0.12);
    color: #059669;
}

.cws-docs__row-icon svg {
    width: 1.05rem;
    height: 1.05rem;
}

.cws-docs__row-text {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}

.cws-docs__row-label {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.25;
}

.cws-docs__row-status {
    font-size: .6875rem;
    font-weight: 600;
    color: #059669;
    letter-spacing: .02em;
}

.cws-docs__row-status--empty {
    color: var(--crm-text-muted, #94a3b8);
    font-weight: 500;
}

.cws-docs__row-action {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    max-width: 48%;
}

.cws-docs__upload-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem .65rem;
    border-radius: 999px;
    border: 1px solid var(--crm-brand-border, #c7d2fe);
    background: var(--crm-card);
    color: var(--crm-accent, #4f46e5);
    font-size: .75rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}

.cws-docs__upload-btn:hover {
    background: var(--crm-accent, #4f46e5);
    border-color: var(--crm-accent, #4f46e5);
    color: #fff;
}

.cws-docs__upload-btn-icon {
    width: .875rem;
    height: .875rem;
}

.cws-docs__chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    padding: .35rem .55rem;
    border-radius: 999px;
    background: var(--crm-surface, #f8fafc);
    border: 1px solid var(--crm-border-subtle);
    color: var(--crm-text-secondary);
    font-size: .75rem;
    font-weight: 600;
}

.cws-docs__chip-icon {
    width: .8rem;
    height: .8rem;
    flex-shrink: 0;
    color: var(--crm-accent, #4f46e5);
}

.cws-docs__chip-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 9rem;
}

.cws-docs__passport-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    justify-content: flex-end;
}

.cws-docs__action-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .65rem;
    border-radius: 8px;
    border: 1px solid var(--crm-border, #e2e8f0);
    background: var(--crm-card, #fff);
    font-size: .78rem;
    font-weight: 600;
    color: var(--crm-text-secondary, #334155);
    cursor: pointer;
}

.cws-docs__action-btn:hover {
    border-color: var(--crm-border-strong, #cbd5e1);
    background: var(--crm-hover, #f8fafc);
}

.cws-docs__action-btn--primary {
    border-color: var(--crm-brand-border, #c4b5fd);
    background: var(--crm-brand-soft, #f5f3ff);
    color: var(--crm-brand-hover, #5b21b6);
}

.cws-docs__action-btn--primary:hover {
    background: var(--crm-violet-soft, #ede9fe);
}

.cws-docs__action-btn-icon {
    width: .95rem;
    height: .95rem;
}

.cws-docs__row.is-catalog {
    border-color: rgba(79, 70, 229, 0.22);
    background: linear-gradient(135deg, rgba(79, 70, 229, 0.05) 0%, var(--crm-card) 100%);
}

.cws-docs__row.is-catalog .cws-docs__row-icon {
    background: rgba(79, 70, 229, 0.12);
    color: var(--crm-accent, #4f46e5);
}

.cws-docs__row-status--catalog {
    color: var(--crm-accent, #4f46e5) !important;
}

.cws-docs__catalog-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem .75rem;
    border-radius: 999px;
    border: 1px solid var(--crm-accent, #4f46e5);
    background: var(--crm-accent, #4f46e5);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    cursor: pointer;
    transition: opacity .15s ease, transform .15s ease;
}

.cws-docs__catalog-btn:hover {
    opacity: .92;
    transform: translateY(-1px);
}

.cws-docs-catalog-modal__body {
    padding-top: .25rem;
}

#documents-catalog-modal .cw-modal__dialog {
    max-width: min(820px, calc(100vw - 24px)) !important;
    width: 100%;
}

.cws-docs-catalog {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

@media (max-width: 640px) {
    .cws-docs-catalog {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.cws-docs-card {
    display: flex;
    flex-direction: column;
    width: auto;
    gap: .6rem;
    min-height: 8.5rem;
    padding: .85rem .75rem;
    border-radius: 12px;
    border: 1px solid var(--crm-border-subtle);
    background: var(--crm-card);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.cws-docs-card.is-filled {
    border-color: rgba(16, 185, 129, 0.28);
    background: linear-gradient(160deg, rgba(16, 185, 129, 0.06) 0%, var(--crm-card) 100%);
}

.cws-docs-card.is-uploadable {
    cursor: default;
}

.cws-docs-card__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .45rem;
    flex: 1;
}

.cws-docs-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 2.125rem;
    border-radius: 10px;
    background: var(--crm-brand-soft, #eef2ff);
    color: var(--crm-accent, #4f46e5);
    flex-shrink: 0;
}

.cws-docs-card.is-filled .cws-docs-card__icon {
    background: rgba(16, 185, 129, 0.12);
    color: #059669;
}

.cws-docs-card__icon svg {
    width: 1.1rem;
    height: 1.1rem;
}

.cws-docs-card__text {
    width: 100%;
}

.cws-docs-card__title {
    margin: 0;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--crm-text);
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: auto;
}

.cws-docs-card__status {
    margin: .15rem 0 0;
    font-size: .625rem;
    font-weight: 600;
    color: #059669;
}

.cws-docs-card__status--empty {
    color: var(--crm-text-muted, #94a3b8);
    font-weight: 500;
}

.cws-docs-card__action {
    margin-top: auto;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .25rem;
}

.cws-docs-card__action .cws-docs__passport-actions {
    justify-content: center;
    flex-direction: column;
    width: 100%;
}

.cws-docs-card__action .cws-docs__action-btn {
    width: 100%;
    justify-content: center;
    padding: .3rem .45rem;
    font-size: .68rem;
}

.cws-docs-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    width: 100%;
    padding: .32rem .45rem;
    border-radius: 999px;
    border: 1px solid var(--crm-brand-border, #c7d2fe);
    background: var(--crm-card);
    color: var(--crm-accent, #4f46e5);
    font-size: .68rem;
    font-weight: 700;
    cursor: pointer;
}

.cws-docs-card__btn:hover {
    background: var(--crm-accent, #4f46e5);
    border-color: var(--crm-accent, #4f46e5);
    color: #fff;
}

.cws-docs-card__chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    width: 100%;
    max-width: 100%;
    padding: .3rem .4rem;
    border-radius: 999px;
    background: var(--crm-surface, #f8fafc);
    border: 1px solid var(--crm-border-subtle);
    color: var(--crm-text-secondary);
    font-size: .65rem;
    font-weight: 600;
    text-decoration: none;
}

.cws-docs-card__chip:hover {
    border-color: var(--crm-border-strong, #cbd5e1);
    background: var(--crm-hover, #f8fafc);
}

.cws-docs__slot-actions {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.cws-docs__slot-actions--card {
    width: 100%;
    justify-content: center;
}

.cws-docs__view-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(16, 185, 129, 0.35);
    background: rgba(16, 185, 129, 0.08);
    color: #059669;
    cursor: pointer;
}

.cws-docs__view-btn:hover {
    background: #059669;
    border-color: #059669;
    color: #fff;
}

.cws-docs__add-btn,
.cws-docs-card__btn--add,
.cws-docs__translate-btn,
.cws-docs-card__btn--translate {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border-radius: 999px;
    border: 1px solid var(--crm-brand-border, #c7d2fe);
    background: var(--crm-card);
    color: var(--crm-accent, #4f46e5);
    cursor: pointer;
}

.cws-docs__translate-btn,
.cws-docs-card__btn--translate {
    border-color: rgba(14, 165, 233, 0.35);
    background: rgba(14, 165, 233, 0.08);
    color: #0284c7;
}

.cws-docs__add-btn:hover,
.cws-docs-card__btn--add:hover {
    background: var(--crm-accent, #4f46e5);
    border-color: var(--crm-accent, #4f46e5);
    color: #fff;
}

.cws-docs__translate-btn:hover,
.cws-docs-card__btn--translate:hover {
    background: #0284c7;
    border-color: #0284c7;
    color: #fff;
}

.cws-docs__translate-btn.is-busy,
.cws-docs-card__btn--translate.is-busy {
    opacity: .85;
    cursor: wait;
}

.cws-docs__translate-btn .cws-docs__translate-icon,
.cws-docs-card__btn--translate .cws-docs__translate-icon {
    display: none;
    width: .95rem;
    height: .95rem;
    pointer-events: none;
}

.cws-docs__translate-btn .cws-docs__translate-icon--action,
.cws-docs-card__btn--translate .cws-docs__translate-icon--action {
    display: block;
}

.cws-docs__translate-btn.is-busy .cws-docs__translate-icon--action,
.cws-docs-card__btn--translate.is-busy .cws-docs__translate-icon--action,
.cws-docs__translate-btn.is-busy .cws-docs__translate-icon--done,
.cws-docs-card__btn--translate.is-busy .cws-docs__translate-icon--done {
    display: none;
}

.cws-docs__translate-btn.is-busy .cws-docs__translate-icon--busy,
.cws-docs-card__btn--translate.is-busy .cws-docs__translate-icon--busy {
    display: block;
    animation: cws-docs-spin 0.9s linear infinite;
}

.cws-docs__translate-btn.is-translated,
.cws-docs-card__btn--translate.is-translated {
    border-color: rgba(22, 163, 74, 0.35);
    background: rgba(22, 163, 74, 0.1);
    color: #16a34a;
}

.cws-docs__translate-btn.is-translated .cws-docs__translate-icon--action,
.cws-docs-card__btn--translate.is-translated .cws-docs__translate-icon--action {
    display: none;
}

.cws-docs__translate-btn.is-translated .cws-docs__translate-icon--done,
.cws-docs-card__btn--translate.is-translated .cws-docs__translate-icon--done {
    display: block;
}

.cws-docs__translate-btn.is-translated:hover,
.cws-docs-card__btn--translate.is-translated:hover {
    border-color: rgba(14, 165, 233, 0.35);
    background: rgba(14, 165, 233, 0.08);
    color: #0284c7;
}

.cws-docs__translate-btn.is-translated:hover .cws-docs__translate-icon--done,
.cws-docs-card__btn--translate.is-translated:hover .cws-docs__translate-icon--done {
    display: none;
}

.cws-docs__translate-btn.is-translated:hover .cws-docs__translate-icon--action,
.cws-docs-card__btn--translate.is-translated:hover .cws-docs__translate-icon--action {
    display: block;
}

.cws-docs__translate-btn.is-success-flash,
.cws-docs-card__btn--translate.is-success-flash {
    animation: cws-docs-translate-success 0.65s ease;
}

@keyframes cws-docs-translate-success {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.45); }
    45% { transform: scale(1.08); box-shadow: 0 0 0 8px rgba(22, 163, 74, 0); }
    100% { transform: scale(1); box-shadow: none; }
}

.cws-docs__translate-all-btn,
.cws-docs-card__btn--translate-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .4rem .75rem;
    border-radius: 999px;
    border: 1px solid rgba(14, 165, 233, 0.35);
    background: rgba(14, 165, 233, 0.08);
    color: #0284c7;
    font-size: .75rem;
    font-weight: 700;
    cursor: pointer;
}

.cws-docs-card__btn--translate-all {
    width: 100%;
}

.cws-docs__translate-all-btn:hover,
.cws-docs-card__btn--translate-all:hover {
    background: #0284c7;
    border-color: #0284c7;
    color: #fff;
}

.cws-docs__row.is-bundle.is-filled {
    border-color: rgba(22, 163, 74, 0.25);
}

.cws-docs__row-status--bundle,
.cws-docs-card__status--bundle {
    color: #0284c7;
    font-weight: 600;
}

.cws-docs-card__btn--view {
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    flex: 0 0 auto;
    border-color: rgba(16, 185, 129, 0.35);
    background: rgba(16, 185, 129, 0.08);
    color: #059669;
}

.cws-docs-card__btn--view:hover {
    background: #059669;
    border-color: #059669;
    color: #fff;
}

/* Documents viewer modal */
.cws-docs-viewer__dialog {
    max-width: min(820px, calc(100vw - 24px));
}

.cws-docs-viewer__sep {
    opacity: .45;
    margin: 0 .15rem;
}

.cws-docs-viewer__body {
    padding-top: .15rem;
}

.cws-docs-viewer__stage {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .5rem;
}

.cws-docs-viewer__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-subtle);
    background: var(--crm-card);
    color: var(--crm-text-secondary);
    cursor: pointer;
}

.cws-docs-viewer__nav:hover:not(:disabled) {
    border-color: var(--crm-accent, #4f46e5);
    color: var(--crm-accent, #4f46e5);
}

.cws-docs-viewer__nav:disabled {
    opacity: .35;
    cursor: default;
}

.cws-docs-viewer__nav svg {
    width: 1.1rem;
    height: 1.1rem;
}

.cws-docs-viewer__figure {
    margin: 0;
    min-height: 280px;
    max-height: 52vh;
    border-radius: 12px;
    border: 1px solid var(--crm-border-subtle);
    background: var(--crm-surface, #f8fafc);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cws-docs-viewer__img {
    display: block;
    max-width: 100%;
    max-height: 52vh;
    object-fit: contain;
}

.cws-docs-viewer__iframe {
    width: 100%;
    height: min(52vh, 420px);
    border: 0;
    background: #fff;
}

.cws-docs-viewer__embed {
    width: 100%;
    height: min(52vh, 420px);
    border: 0;
    background: #fff;
}

.cws-docs-viewer__figure:has(.cws-docs-viewer__embed:not([hidden])) .cws-docs-viewer__iframe[hidden],
.cws-docs-viewer__figure:has(.cws-docs-viewer__iframe:not([hidden])) .cws-docs-viewer__embed[hidden] {
    display: none;
}

.cws-docs-viewer__empty {
    padding: 1rem;
    font-size: .8125rem;
    color: var(--crm-text-muted);
    text-align: center;
}

.cws-docs-viewer__thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .75rem;
    max-height: 5.5rem;
    overflow-y: auto;
}

.cws-docs-viewer__thumb {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    padding: .35rem .55rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-subtle);
    background: var(--crm-card);
    color: var(--crm-text-secondary);
    font-size: .6875rem;
    font-weight: 600;
    cursor: pointer;
}

.cws-docs-viewer__thumb.is-active {
    border-color: var(--crm-accent, #4f46e5);
    background: var(--crm-brand-soft, #eef2ff);
    color: var(--crm-accent, #4f46e5);
}

.cws-docs-viewer__thumb-index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    height: 1.1rem;
    border-radius: 999px;
    background: rgba(79, 70, 229, 0.12);
    font-size: .625rem;
    font-weight: 800;
}

.cws-docs-viewer__thumb-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 8rem;
}

.cws-docs-viewer__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.cws-docs-viewer__footer .crm-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.cws-docs-viewer__footer .crm-btn svg {
    width: .95rem;
    height: .95rem;
}

.cws-passport-data-modal__body {
    padding-top: .25rem;
}

.cws-passport-data-modal__status {
    margin: 0 0 .85rem;
    padding: .65rem .85rem;
    border-radius: 10px;
    font-size: .84rem;
    line-height: 1.4;
}

.cws-passport-data-modal__status.is-success {
    background: #ecfdf5;
    color: #047857;
    border: 1px solid #a7f3d0;
}

.cws-passport-data-modal__status.is-error {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.cws-passport-data-modal__hero {
    margin: 0 0 1rem;
    padding: .9rem 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, var(--crm-hover-soft, #f8fafc) 72%);
    border: 1px solid rgba(99, 102, 241, 0.14);
}

.cws-passport-data-modal__fullname {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--crm-text, #0f172a);
    letter-spacing: .01em;
}

.cws-passport-data-modal__hero-doc {
    margin: .35rem 0 0;
    font-size: .84rem;
    font-weight: 600;
    color: var(--crm-muted, #64748b);
    letter-spacing: .02em;
}

.cws-passport-data-modal__section + .cws-passport-data-modal__section {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border-faint, #eef2f7);
}

.cws-passport-data-modal__section-title {
    margin: 0 0 .65rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--crm-muted, #64748b);
}

.cws-passport-data-modal__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem .75rem;
    margin: 0;
}

.cws-passport-data-modal__grid--dates {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cws-passport-data-modal__field {
    margin: 0;
    padding: .6rem .7rem;
    border-radius: 10px;
    background: var(--crm-hover-soft, #f8fafc);
    border: 1px solid var(--crm-border-faint, #eef2f7);
}

.cws-passport-data-modal__field.is-empty {
    display: none;
}

.cws-passport-data-modal__field--wide {
    grid-column: 1 / -1;
}

.cws-passport-data-modal__field dt {
    margin: 0 0 .2rem;
    font-size: .64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--crm-muted, #64748b);
}

.cws-passport-data-modal__field dd {
    margin: 0;
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--crm-text, #0f172a);
    word-break: break-word;
}

@media (max-width: 720px) {
    .cws-passport-data-modal__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .cws-passport-data-modal__grid,
    .cws-passport-data-modal__grid--dates {
        grid-template-columns: minmax(0, 1fr);
    }
}

.cws-docs__form {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cws-docs__queue {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: .75rem;
    padding: .75rem .85rem;
    border-radius: 12px;
    border: 1px dashed var(--crm-brand-border, #c7d2fe);
    background: linear-gradient(135deg, var(--crm-brand-soft, #eef2ff) 0%, var(--crm-card) 100%);
}

.cws-docs__queue.hidden {
    display: none;
}

.cws-docs__queue-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    background: var(--crm-card);
    color: var(--crm-accent, #4f46e5);
    flex-shrink: 0;
}

.cws-docs__queue-icon svg {
    width: 1.1rem;
    height: 1.1rem;
}

.cws-docs__queue-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.cws-docs__queue-eyebrow {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--crm-accent, #4f46e5);
}

.cws-docs__queue-name {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--crm-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cws-docs__queue-actions {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}

.cws-docs__queue-status {
    font-size: .75rem;
    font-weight: 700;
    color: var(--crm-accent, #4f46e5);
    white-space: nowrap;
}

.cws-docs__ai-bar {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin-top: .85rem;
    margin-bottom: .65rem;
    padding: .75rem .85rem;
    border-radius: 12px;
    border: 1px dashed rgba(79, 70, 229, 0.35);
    background: linear-gradient(135deg, rgba(79, 70, 229, 0.06) 0%, var(--crm-card) 100%);
    text-align: center;
}

.cws-docs__ai-hint {
    margin: 0;
    max-width: 28rem;
    font-size: .72rem;
    color: var(--crm-text-muted, #64748b);
    line-height: 1.45;
}

.cws-docs__ai-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .85rem;
    border-radius: 999px;
    border: none;
    background: linear-gradient(145deg, #6366f1, #4f46e5);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(79, 70, 229, 0.25);
}

.cws-docs__ai-btn:hover:not(:disabled) {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.cws-docs__ai-btn:disabled,
.cws-docs__ai-btn.is-busy {
    opacity: .7;
    cursor: wait;
    transform: none;
}

.cws-docs__ai-btn--modal {
    margin-right: auto;
}

.cws-docs__ai-btn-icon,
.cws-docs__ai-btn svg {
    width: .95rem;
    height: .95rem;
}

.cws-docs-ai-progress {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .65rem;
    padding: .55rem .75rem;
    border-radius: 10px;
    background: var(--crm-brand-soft, #eef2ff);
    color: var(--crm-accent, #4f46e5);
    font-size: .78rem;
    font-weight: 600;
}

.cws-docs-ai-progress.hidden {
    display: none;
}

.cws-docs-ai-progress__icon {
    width: 1rem;
    height: 1rem;
    animation: cws-docs-spin 1s linear infinite;
}

/* Translate confirm modal */
.cws-docs-translate-confirm__dialog {
    max-width: min(440px, calc(100vw - 24px));
}

.cws-docs-translate-confirm .cw-modal__header-icon {
    background: rgba(14, 165, 233, 0.12);
    border-color: rgba(14, 165, 233, 0.28);
    color: #0284c7;
}

.cws-docs-translate-confirm__body {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.cws-docs-translate-confirm__lead {
    margin: 0;
    font-size: .88rem;
    color: var(--crm-text-secondary, #475569);
    line-height: 1.55;
}

.cws-docs-translate-confirm__features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.cws-docs-translate-confirm__features li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .55rem .65rem;
    border-radius: 10px;
    border: 1px solid var(--crm-border-subtle, #e2e8f0);
    background: var(--crm-surface, #f8fafc);
    font-size: .78rem;
    color: var(--crm-text, #0f172a);
    line-height: 1.45;
}

.cws-docs-translate-confirm__feature-icon,
.cws-docs-translate-confirm__features svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    margin-top: .1rem;
    color: #0284c7;
}

.cws-docs-translate-confirm__note {
    margin: 0;
    font-size: .72rem;
    color: var(--crm-text-muted, #64748b);
}

.cws-docs-translate-confirm__footer {
    gap: .5rem;
}

.cws-docs-translate-confirm__submit {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: linear-gradient(145deg, #0ea5e9, #0284c7);
    border: none;
    box-shadow: 0 4px 14px rgba(2, 132, 199, 0.28);
}

.cws-docs-translate-confirm__submit:hover:not(:disabled) {
    filter: brightness(1.05);
}

.cws-docs-translate-confirm__submit.is-busy,
.cws-docs-translate-confirm__submit:disabled {
    opacity: .7;
    cursor: wait;
}

.cws-docs-translate-confirm__submit svg {
    width: .95rem;
    height: .95rem;
}

.cws-docs-catalog-modal__footer {
    justify-content: flex-end;
    gap: .5rem;
}

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

.cws-docs__queue-cancel {
    padding: .45rem .7rem;
    border-radius: 8px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-text-secondary);
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
}

.cws-docs__queue-cancel:hover {
    background: var(--crm-hover);
    color: var(--crm-text);
}

.cws-docs__queue-submit {
    padding: .45rem .85rem;
    border-radius: 8px;
    border: none;
    background: linear-gradient(145deg, #6366f1, #4f46e5);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.28);
    transition: opacity .15s ease, transform .15s ease;
}

.cws-docs__queue-submit:disabled {
    opacity: .45;
    cursor: not-allowed;
    box-shadow: none;
}

.cws-docs__queue-submit:not(:disabled):hover {
    transform: translateY(-1px);
}

/* Document service modals */
.cws-docsvc-modal__dialog {
    max-width: min(980px, calc(100vw - 24px)) !important;
}

.cws-docsvc-modal__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, .45fr);
    gap: 1rem;
}

.cws-docsvc-modal__form-pane,
.cws-docsvc-modal__history-pane {
    min-width: 0;
}

.cws-docsvc-modal__intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
    padding: .85rem;
    border: 1px solid var(--crm-border, #e2e8f0);
    border-radius: 1rem;
    background: linear-gradient(145deg, #ffffff, #f8fbff);
}

.cws-docsvc-modal--translate .cws-docsvc-modal__intro {
    display: none;
}

.cws-docsvc-modal__intro p {
    margin: 0;
    color: var(--crm-muted, #64748b);
    font-size: .82rem;
}

.cws-docsvc-modal__badge {
    flex: 0 0 auto;
    display: inline-flex;
    padding: .28rem .55rem;
    border-radius: 999px;
    color: var(--crm-nav-active-text, #4f46e5);
    background: var(--crm-brand-soft, #eef2ff);
    font-size: .72rem;
    font-weight: 800;
}

.cws-docsvc-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.cws-docsvc-modal--migration .cws-docsvc-modal__dialog {
    max-width: min(1040px, calc(100vw - 24px)) !important;
}

.cws-docsvc-modal--migration .cws-docsvc-modal__body {
    grid-template-columns: minmax(0, 1fr) minmax(250px, .36fr);
    background:
        linear-gradient(180deg, rgba(15, 23, 42, .035), transparent 180px),
        #fff;
}

.cws-docsvc-modal--migration .cws-docsvc-modal__intro {
    border-color: rgba(15, 23, 42, .14);
    background: #111827;
    color: #fff;
    box-shadow: inset 4px 0 0 #b08d3a;
}

.cws-docsvc-modal--migration .cws-docsvc-modal__intro p {
    color: rgba(255, 255, 255, .72);
}

.cws-docsvc-modal--migration .cws-docsvc-modal__badge {
    color: #fbbf24;
    background: rgba(251, 191, 36, .12);
    border: 1px solid rgba(251, 191, 36, .34);
}

.cws-docsvc-migration-hero,
.cws-docsvc-migration-tabs,
.cws-docsvc-translate-tabs,
.cws-docsvc-invoice-services,
.cws-docsvc-migration-section {
    grid-column: 1 / -1;
}

.cws-docsvc-translate-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    padding: 0;
    border: 1px solid #e2e8f0;
    border-radius: .85rem;
    background: #fff;
}

.cws-docsvc-translate-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 46px;
    padding: .68rem 1rem;
    border: 0;
    color: #667085;
    background: transparent;
    cursor: pointer;
    transition: color .15s ease, background .15s ease, box-shadow .15s ease;
}

.cws-docsvc-translate-tab:hover {
    color: #111827;
    background: #f8fafc;
}

.cws-docsvc-translate-tab strong {
    color: currentColor;
    font-size: .86rem;
    font-weight: 900;
}

.cws-docsvc-translate-tab span {
    display: none;
}

.cws-docsvc-translate-tab.is-active {
    color: #fff;
    background: linear-gradient(135deg, #e6242f, #f43f46);
    box-shadow: 0 8px 18px rgba(230, 36, 47, .22);
}

.cws-docsvc-invoice-services {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 1rem;
    background: #fff;
}

.cws-docsvc-invoice-services__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    padding: .78rem .9rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
}

.cws-docsvc-invoice-services__head strong {
    color: #111827;
    font-size: .82rem;
    font-weight: 900;
}

.cws-docsvc-invoice-services__list {
    display: grid;
    gap: .65rem;
    padding: .9rem;
}

.cws-docsvc-invoice-row {
    display: grid;
    grid-template-columns: minmax(210px, 1fr) 108px 120px 40px;
    gap: .65rem;
    align-items: end;
}

.cws-docsvc-invoice-language {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.cws-docsvc-invoice-language > span {
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
}

.cws-docsvc-invoice-language strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 44px;
    padding: .45rem .6rem;
    border: 1px solid #dbe4ef;
    border-radius: .78rem;
    background: #fff;
    color: #475569;
    font-size: 1.1rem;
    line-height: 1;
}

.cws-docsvc-invoice-flag-picker {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
    cursor: pointer;
    overflow: hidden;
}

.cws-docsvc-invoice-flag-picker img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cws-docsvc-invoice-flag-picker select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.cws-docsvc-invoice-language i {
    color: #94a3b8;
    font-size: .85rem;
    font-style: normal;
    font-weight: 900;
}

.cws-docsvc-invoice-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid #fecaca;
    border-radius: .7rem;
    color: #b91c1c;
    background: #fef2f2;
    font-size: 1.25rem;
    font-weight: 900;
    cursor: pointer;
}

.cws-docsvc-invoice-total {
    padding: 0 .9rem .9rem;
    color: #475569;
    font-size: .86rem;
    font-weight: 800;
    text-align: right;
}

.cws-docsvc-invoice-total strong {
    color: #111827;
    font-size: 1rem;
}

.cws-docsvc-apostille-services {
    grid-column: 1 / -1;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 1rem;
    background: #fff;
}

.cws-docsvc-apostille-services__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem .95rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
}

.cws-docsvc-apostille-services__head strong {
    color: #111827;
    font-size: .82rem;
    font-weight: 900;
}

.cws-docsvc-apostille-services__head span {
    color: #64748b;
    font-size: .76rem;
    font-weight: 700;
}

.cws-docsvc-apostille-services__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    padding: .9rem;
}

.cws-docsvc-apostille-service {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    padding: .72rem .78rem;
    border: 1px solid #dbe4ef;
    border-radius: .9rem;
    background: #fff;
    cursor: pointer;
}

.cws-docsvc-apostille-service:has(input:checked) {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.cws-docsvc-apostille-service input {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: #16a34a;
}

.cws-docsvc-apostille-service__body {
    min-width: 0;
}

.cws-docsvc-apostille-service__body strong,
.cws-docsvc-apostille-service__body small {
    display: block;
}

.cws-docsvc-apostille-service__body strong {
    color: #111827;
    font-size: .82rem;
    font-weight: 850;
}

.cws-docsvc-apostille-service__body small {
    margin-top: .12rem;
    color: #64748b;
    font-size: .7rem;
    font-weight: 800;
}

.cws-docsvc-migration-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.cws-docsvc-migration-tab {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    min-height: 72px;
    padding: .85rem 1rem;
    border: 1px solid rgba(15, 23, 42, .14);
    border-radius: 1rem;
    color: #475569;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease, background .15s ease;
}

.cws-docsvc-migration-tab:hover {
    transform: translateY(-1px);
    border-color: rgba(15, 23, 42, .26);
    box-shadow: 0 10px 20px rgba(15, 23, 42, .08);
}

.cws-docsvc-migration-tab strong {
    color: #111827;
    font-size: .98rem;
    font-weight: 900;
}

.cws-docsvc-migration-tab span {
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}

.cws-docsvc-migration-tab.is-active {
    border-color: rgba(180, 83, 9, .42);
    background: #fffbeb;
    box-shadow: inset 4px 0 0 #b08d3a;
}

.cws-docsvc-migration-tab[data-migration-outcome="success"].is-active {
    border-color: rgba(22, 163, 74, .34);
    background: #f0fdf4;
    box-shadow: inset 4px 0 0 #16a34a;
}

.cws-docsvc-migration-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr);
    gap: .75rem;
    padding: .9rem;
    border-radius: 1rem;
    background: #1f2937;
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.cws-docsvc-migration-hero--success {
    background: #064e3b;
}

.cws-docsvc-migration-hero > div {
    min-width: 0;
    padding: .8rem .9rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: .85rem;
    background: rgba(255, 255, 255, .045);
}

.cws-docsvc-migration-hero span,
.cws-docsvc-migration-section__head span {
    display: block;
    color: rgba(255, 255, 255, .62);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.cws-docsvc-migration-hero strong {
    display: block;
    margin-top: .28rem;
    color: #fff;
    font-size: 1.05rem;
    line-height: 1.25;
}

.cws-docsvc-migration-hero p {
    margin: .28rem 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: .78rem;
}

.cws-docsvc-migration-section {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .045);
}

.cws-docsvc-migration-section__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    padding: .78rem .9rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
}

.cws-docsvc-migration-section__head strong {
    color: #111827;
    font-size: .82rem;
    font-weight: 900;
}

.cws-docsvc-migration-section__head span {
    max-width: 52%;
    color: #64748b;
    letter-spacing: .02em;
    text-transform: none;
    line-height: 1.35;
    text-align: right;
}

.cws-docsvc-migration-section__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    padding: .9rem;
}

.cws-docsvc-migration-section--guarantee {
    border-color: rgba(180, 83, 9, .25);
}

.cws-docsvc-migration-section--success {
    border-color: rgba(22, 163, 74, .24);
}

.cws-docsvc-migration-section--success .cws-docsvc-migration-section__head {
    background: #f0fdf4;
    box-shadow: inset 4px 0 0 #16a34a;
}

.cws-docsvc-migration-section--guarantee .cws-docsvc-migration-section__head {
    background: #fffbeb;
    box-shadow: inset 4px 0 0 #b08d3a;
}

.cws-docsvc-migration-section--checks .cws-docsvc-migration-section__grid {
    grid-template-columns: 1fr;
    gap: .7rem;
}

.cws-mig-questions {
    display: grid;
    gap: .65rem;
}

.cws-mig-question {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: .75rem;
    align-items: end;
}

.cws-mig-question__field {
    display: grid;
    gap: .35rem;
    min-width: 0;
}

.cws-mig-question__field span,
.cws-mig-question__answers > span {
    color: #5f6673;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cws-mig-question__field input {
    min-height: 48px;
    border-color: #e5e7eb;
    border-radius: .75rem;
    color: #1f2937;
    background: #fff;
    font-size: .94rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
}

.cws-mig-question__answers {
    display: grid;
    grid-template-columns: repeat(3, 42px);
    gap: .35rem;
    justify-content: end;
    align-items: center;
}

.cws-mig-question__answers > span {
    grid-column: 1 / -1;
    justify-self: start;
}

.cws-mig-question__answer {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid #d9dee7;
    border-radius: .65rem;
    color: #9aa3b2;
    background: #fff;
    font-size: 1.2rem;
    font-weight: 900;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease;
}

.cws-mig-question__answer:hover {
    border-color: #b8c0cc;
    color: #64748b;
}

.cws-mig-question__answer--correct.is-active {
    border-color: #16a34a;
    color: #16a34a;
    background: #f0fdf4;
    box-shadow: 0 0 0 2px rgba(22, 163, 74, .1);
}

.cws-mig-question__answer--incomplete.is-active {
    border-color: #d97706;
    color: #b45309;
    background: #fffbeb;
    box-shadow: 0 0 0 2px rgba(217, 119, 6, .1);
}

.cws-mig-question__answer--incorrect.is-active {
    border-color: #dc2626;
    color: #dc2626;
    background: #fef2f2;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, .1);
}

.cws-mig-question-add {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 .95rem;
    border: 1px solid #d8dee8;
    border-radius: .65rem;
    color: #475569;
    background: #f8fafc;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
}

.cws-mig-question-add:hover {
    border-color: #cbd5e1;
    background: #fff;
}

.cws-docsvc-modal--migration .cws-docsvc-field span {
    color: #475569;
    font-size: .68rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.cws-docsvc-modal--migration .cws-docsvc-field input[readonly] {
    color: #64748b;
    background: #f8fafc;
    border-style: dashed;
}

.cws-docsvc-modal--migration .cws-docsvc-history__head {
    color: #111827;
}

.cws-docsvc-modal--migration .cws-docsvc-history__icon {
    color: #b08d3a;
}

.cws-docsvc-modal--migration .cws-docsvc-history__empty,
.cws-docsvc-modal--migration .cws-docsvc-history__item {
    border-color: rgba(15, 23, 42, .12);
    background: #f8fafc;
}

.cws-docsvc-field {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    min-width: 0;
}

.cws-docsvc-field span {
    color: var(--crm-muted, #64748b);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.cws-docsvc-form__error {
    margin: .85rem 0 0;
    padding: .7rem .85rem;
    border-radius: .85rem;
    color: #b91c1c;
    background: #fee2e2;
    font-size: .82rem;
    font-weight: 700;
}

.cws-docsvc-link {
    margin-top: 1rem;
    padding: .85rem;
    border: 1px solid rgba(16, 185, 129, .25);
    border-radius: 1rem;
    background: rgba(16, 185, 129, .08);
}

.cws-docsvc-link__label {
    display: block;
    margin-bottom: .45rem;
    color: #047857;
    font-size: .72rem;
    font-weight: 800;
}

.cws-docsvc-link__row {
    display: flex;
    gap: .5rem;
}

.cws-docsvc-history__head {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .65rem;
    color: var(--crm-text-secondary, #334155);
    font-weight: 800;
    font-size: .82rem;
}

.cws-docsvc-history__icon {
    width: 1rem;
    height: 1rem;
    color: var(--crm-accent, #4338ca);
}

.cws-docsvc-history__list {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    max-height: 29rem;
    overflow-y: auto;
}

.cws-docsvc-history__empty,
.cws-docsvc-history__item {
    padding: .75rem;
    border: 1px solid var(--crm-border, #e2e8f0);
    border-radius: .9rem;
    background: #fff;
}

.cws-docsvc-history__empty {
    color: var(--crm-muted, #64748b);
    font-size: .82rem;
}

.cws-docsvc-history__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    overflow: hidden;
}

.cws-docsvc-history__item--paid {
    border-color: #bbf7d0;
    background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%);
}

.cws-docsvc-history__item > div:first-child {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.cws-docsvc-history__item strong,
.cws-docsvc-history__item span {
    display: block;
}

.cws-docsvc-history__item strong {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
    font-size: .8rem;
    color: var(--crm-text, #0f172a);
}

.cws-docsvc-history__item span {
    margin-top: .15rem;
    color: var(--crm-muted, #64748b);
    font-size: .72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cws-docsvc-history__status {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin-top: 0 !important;
    padding: .14rem .44rem;
    border-radius: 999px;
    font-size: .58rem !important;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.cws-docsvc-history__status--paid {
    border: 1px solid #bbf7d0;
    color: #166534 !important;
    background: #dcfce7;
}

.cws-docsvc-history__status--pending {
    border: 1px solid #fed7aa;
    color: #c2410c !important;
    background: #fff7ed;
}

.cws-docsvc-history__actions {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .28rem;
    margin-left: auto;
}

.cws-docsvc-history__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.82rem;
    height: 1.82rem;
    border: 1px solid rgba(79, 70, 229, .16);
    border-radius: .68rem;
    color: var(--crm-nav-active-text, #4f46e5);
    background: #f8faff;
    text-decoration: none;
    line-height: 1;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.cws-docsvc-history__btn:hover {
    border-color: rgba(79, 70, 229, .35);
    background: #eef2ff;
    transform: translateY(-1px);
}

.cws-docsvc-history__btn svg,
.cws-docsvc-history__state svg {
    display: block;
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cws-docsvc-history__state {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin-top: 0 !important;
    width: 1.82rem;
    height: 1.82rem;
    border-radius: .68rem;
    border: 1px solid var(--crm-border, #e2e8f0);
    background: #fff;
    line-height: 1;
}

.cws-docsvc-history__state--paid {
    border-color: #bbf7d0;
    color: #166534;
    background: #dcfce7;
}

.cws-docsvc-history__state--pending {
    border-color: #fed7aa;
    color: #c2410c;
    background: #fff7ed;
}

@media (max-width: 820px) {
    .cws-docsvc-modal__body,
    .cws-docsvc-form__grid,
    .cws-docsvc-migration-hero,
    .cws-docsvc-translate-tabs,
    .cws-docsvc-invoice-row,
    .cws-mig-question,
    .cws-docsvc-migration-section__grid,
    .cws-docsvc-migration-section--checks .cws-docsvc-migration-section__grid {
        grid-template-columns: 1fr;
    }

    .cws-docsvc-invoice-remove {
        width: 100%;
    }

    .cws-mig-question__answers {
        justify-content: start;
    }

    .cws-docsvc-migration-section__head {
        display: block;
    }

    .cws-docsvc-migration-section__head span {
        max-width: none;
        margin-top: .25rem;
        text-align: left;
    }
}

@media (max-width: 520px) {
    .cws-docs__row {
        flex-wrap: wrap;
    }

    .cws-docs__row-action {
        width: 100%;
        max-width: none;
        justify-content: flex-start;
        padding-left: 2.75rem;
    }

    .cws-docs__queue {
        flex-wrap: wrap;
    }

    .cws-docs__queue-actions {
        width: 100%;
        justify-content: flex-end;
    }
}

/* Services grid */
.cws-services-type {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .2rem;
    border-radius: 10px;
    background: var(--crm-surface);
    border: 1px solid var(--crm-border);
}
.cws-services-type__btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .65rem;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    font-size: .72rem;
    font-weight: 600;
    color: var(--crm-muted);
    cursor: pointer;
    transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.cws-services-type__btn:hover {
    color: var(--crm-text-secondary);
    background: var(--crm-card);
}
.cws-services-type__btn.is-active {
    color: var(--crm-nav-active-text);
    background: var(--crm-brand-soft);
    border-color: var(--crm-brand-border);
}
.cws-services-type__icon {
    display: inline-flex;
}
.cws-services-type__icon svg {
    width: 14px;
    height: 14px;
}
.module-card--services .module-card-header {
    flex-wrap: wrap;
    gap: .5rem;
}
.module-card--services .module-card-header__actions {
    width: 100%;
    margin-left: 0;
    order: 3;
}
@media (min-width: 640px) {
    .module-card--services .module-card-header__actions {
        width: auto;
        margin-left: auto;
        order: 0;
    }
}
.cws-services-panel {
    margin-top: .15rem;
}
.cws-services-empty {
    margin: 0;
    font-size: .8125rem;
    color: var(--crm-muted);
}
.cws-service-cell.is-hidden-by-type {
    display: none !important;
}
.cws-services-stage {
    position: relative;
}
.cws-services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    align-items: stretch;
}
.cws-service-cell {
    min-width: 0;
    transition: opacity .22s ease, transform .28s cubic-bezier(.2, .8, .2, 1);
}
.cws-service-cell.is-layout-hidden {
    display: none !important;
}
.cws-services-stage.is-expanded .cws-services-grid {
    display: contents;
}
.cws-services-stage.is-expanded .cws-service-cell {
    grid-row: 1;
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-left {
    grid-column: 1;
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center {
    grid-column: 2;
    z-index: 2;
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-right {
    grid-column: 3;
}
.cws-services-stage.is-expanded {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto;
    gap: .5rem;
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn {
    min-height: 84px;
    border-color: var(--crm-brand-border);
    background: linear-gradient(165deg, var(--crm-brand-soft) 0%, var(--crm-card) 72%);
    box-shadow: 0 8px 22px rgba(124, 58, 237, .18), inset 0 0 0 1px var(--crm-brand-border);
    transform: scale(1.02);
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn__icon {
    color: var(--crm-nav-active-text);
    transform: scale(1.08);
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn__label {
    color: var(--crm-text);
    font-size: .75rem;
}
.cws-services-detail {
    grid-column: 1 / -1;
    grid-row: 2;
    padding: .35rem .15rem 0;
    animation: cws-detail-in .28s ease;
}
.cws-services-detail[hidden] {
    display: none !important;
}
.cws-services-detail__hint {
    margin: 0 0 .4rem;
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--crm-muted);
    text-align: center;
}
.cws-services-detail__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
}
@keyframes cws-detail-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}
.cws-subservice-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-height: 76px;
    padding: .55rem .4rem;
    border: 1px dashed var(--crm-brand-border);
    border-radius: 10px;
    background: var(--crm-card);
    cursor: pointer;
    font-family: inherit;
    color: inherit;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.cws-subservice-card:hover:not(:disabled) {
    border-style: solid;
    border-color: var(--crm-nav-active-text);
    background: var(--crm-brand-soft);
    box-shadow: 0 4px 14px rgba(124, 58, 237, .12);
    transform: translateY(-2px);
}
.cws-subservice-card.is-selected {
    border-style: solid;
    border-color: var(--crm-nav-active-text);
    background: var(--crm-brand-soft);
    box-shadow: inset 0 0 0 1px var(--crm-brand-border);
}
.cws-subservice-card:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.cws-subservice-card.is-stub {
    border-style: dashed;
    border-color: #e5e7eb;
    background: #f9fafb;
    cursor: default;
}
.cws-subservice-card.is-stub:hover:not(:disabled) {
    border-color: #e5e7eb;
    background: #f9fafb;
    box-shadow: none;
    transform: none;
}
.cws-subservice-card.is-stub .cws-subservice-card__icon { color: #9ca3af; }
.cws-subservice-card.is-stub .cws-subservice-card__label { color: #9ca3af; }
.cws-subservice-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 20px;
    color: var(--crm-nav-active-text);
}
.cws-subservice-card__icon svg,
.cws-subservice-card__icon [data-lucide] {
    width: 20px;
    height: 20px;
}
.cws-subservice-card__label {
    font-size: .6875rem;
    font-weight: 600;
    color: var(--crm-text-secondary);
    text-align: center;
    line-height: 1.2;
}
@media (max-width: 520px) {
    .cws-services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .cws-services-stage.is-expanded {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .cws-services-stage.is-expanded .cws-service-cell.is-slot-center {
        grid-column: 1 / -1;
        grid-row: 1;
    }
    .cws-services-stage.is-expanded .cws-service-cell.is-slot-left {
        grid-column: 1;
        grid-row: 2;
    }
    .cws-services-stage.is-expanded .cws-service-cell.is-slot-right {
        grid-column: 2;
        grid-row: 2;
    }
    .cws-services-detail {
        grid-row: 3;
    }
    .cws-services-detail__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.cws-service-btn {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .375rem;
    width: 100%;
    min-height: 72px;
    padding: .625rem .5rem;
    border-radius: 10px;
    border: 1px solid var(--crm-brand-soft);
    background: var(--crm-card);
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, transform .28s cubic-bezier(.2, .8, .2, 1), background .2s ease;
    text-decoration: none;
    color: inherit;
    font-family: inherit;
    box-sizing: border-box;
}
.cws-service-btn:hover:not(:disabled) { border-color: var(--crm-brand-border); box-shadow: 0 2px 8px rgba(124, 58, 237, .12); }
.cws-service-btn.is-locked { opacity: .55; cursor: not-allowed; }
.cws-service-btn.is-stub {
    border-color: var(--crm-border);
    background: var(--crm-surface);
    cursor: default;
    box-shadow: none;
}
.cws-service-btn.is-stub:hover:not(:disabled) {
    border-color: var(--crm-border);
    box-shadow: none;
    transform: none;
}
.cws-service-btn.is-stub .cws-service-btn__icon { color: #9ca3af; }
.cws-service-btn.is-stub .cws-service-btn__label { color: #9ca3af; }
.cws-service-btn.is-stub .cws-service-btn__chevron { color: #cbd5e1; }
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn.is-stub {
    min-height: 84px;
    border-color: var(--crm-border);
    background: var(--crm-surface);
    box-shadow: none;
    transform: none;
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn.is-stub .cws-service-btn__icon,
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn.is-stub .cws-service-btn__label {
    color: #9ca3af;
    transform: none;
}
.cws-service-btn.is-active {
    border-color: #86efac;
    background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
    box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.08);
}
.cws-service-btn.is-active:hover:not(:disabled) {
    border-color: #4ade80;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.14);
}
.cws-service-btn.is-active.is-pending {
    border-color: rgba(245,158,11,.45);
    background: linear-gradient(180deg, rgba(245,158,11,.12) 0%, var(--crm-card) 100%);
    box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.08);
}
.cws-service-btn.is-active.is-pending:hover:not(:disabled) {
    border-color: #fbbf24;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.14);
}
.cws-service-btn.is-active.is-blocked {
    border-color: #fca5a5;
    background: linear-gradient(180deg, rgba(239,68,68,.12) 0%, #fff 100%);
    box-shadow: inset 0 0 0 1px rgba(239, 68, 68, 0.08);
}
.cws-service-btn.is-active.is-blocked:hover:not(:disabled) {
    border-color: #f87171;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.12);
}
.cws-service-btn__icon {
    color: #7c3aed;
    display: inline-flex;
    transition: transform .28s ease, color .2s ease;
}
.cws-service-btn.is-active .cws-service-btn__icon { color: #059669; }
.cws-service-btn.is-active.is-pending .cws-service-btn__icon { color: #d97706; }
.cws-service-btn.is-active.is-blocked .cws-service-btn__icon { color: #dc2626; }
.cws-service-btn__icon svg { width: 18px; height: 18px; }
.cws-service-btn__label { font-size: .6875rem; font-weight: 600; color: var(--crm-text-secondary); text-align: center; line-height: 1.2; }
.cws-service-btn__chevron {
    display: inline-flex;
    margin-top: -.1rem;
    color: var(--crm-muted);
    transition: transform .25s ease, color .2s ease;
}
.cws-service-btn__chevron svg { width: 14px; height: 14px; }
.cws-service-btn[aria-expanded="true"] .cws-service-btn__chevron {
    transform: rotate(180deg);
    color: var(--crm-nav-active-text);
}
.cws-services-stage.is-expanded .cws-service-cell.is-slot-center .cws-service-btn__chevron {
    opacity: .35;
}
.cws-service-btn__status-dot {
    position: absolute;
    top: .4375rem;
    right: .4375rem;
    width: .5rem;
    height: .5rem;
    border-radius: 999px;
    background: #22c55e;
    box-shadow: 0 0 0 2px #fff;
}
.cws-service-btn.is-pending .cws-service-btn__status-dot { background: #f59e0b; }
.cws-service-btn.is-blocked .cws-service-btn__status-dot { background: #ef4444; }
.cws-service-btn__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.125rem;
    padding: 0 .375rem;
    border-radius: 999px;
    font-size: .5625rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #047857;
    background: rgba(34,197,94,.15);
}
.cws-service-btn.is-pending .cws-service-btn__badge {
    color: #b45309;
    background: rgba(245,158,11,.18);
}
.cws-service-btn.is-blocked .cws-service-btn__badge {
    color: #b91c1c;
    background: rgba(239,68,68,.15);
}
.cws-service-btn__lock {
    position: absolute;
    top: .375rem;
    right: .375rem;
    color: var(--crm-muted-light);
    display: inline-flex;
}
.cws-service-btn__lock svg { width: 12px; height: 12px; }

/* Client service pages (shared back link; bank layout lives in bank.css) */
.client-service-page__body {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 0 1.5rem;
}
.client-service-page__back {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin-bottom: .875rem;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--crm-muted);
    text-decoration: none;
}
.client-service-page__back:hover { color: #7c3aed; }
.client-service-page__back svg { width: 16px; height: 16px; }

/* Progress stepper */
.cws-progress-stepper {
    list-style: none;
    margin: 0;
    padding: .25rem 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    overflow-x: auto;
}
.cws-progress-step {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 64px;
    text-align: center;
}
.cws-progress-step__dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 9999px;
    border: 2px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-muted-light);
    font-size: .6875rem;
    font-weight: 700;
    z-index: 1;
}
.cws-progress-step__dot svg { width: 14px; height: 14px; }
.cws-progress-step.is-done .cws-progress-step__dot {
    border-color: #10b981;
    background: rgba(16,185,129,.12);
    color: #059669;
}
.cws-progress-step.is-current .cws-progress-step__dot {
    border-color: #7c3aed;
    background: #7c3aed;
    color: #fff;
    box-shadow: 0 0 0 3px rgba(124, 58, 237, .2);
}
.cws-progress-step__label {
    margin-top: .375rem;
    font-size: .6875rem;
    font-weight: 600;
    color: var(--crm-muted);
    line-height: 1.2;
}
.cws-progress-step.is-current .cws-progress-step__label { color: #7c3aed; }
.cws-progress-step.is-done .cws-progress-step__label { color: var(--crm-text-secondary); }
.cws-progress-step__line {
    position: absolute;
    top: 14px;
    left: calc(50% + 14px);
    width: calc(100% - 28px);
    height: 2px;
    background: var(--crm-border);
    z-index: 0;
}
.cws-progress-step.is-done .cws-progress-step__line { background: #10b981; }

/* Comments */
.cws-comments-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.375rem;
    height: 1.375rem;
    padding: 0 .375rem;
    border-radius: 9999px;
    background: var(--crm-violet-soft);
    color: #6d28d9;
    font-size: .6875rem;
    font-weight: 700;
}
.cws-comment-compose { margin-bottom: 1rem; }
.cws-comment-compose__field { margin-bottom: .625rem; }
.cws-comment-compose__input {
    width: 100%;
    font-size: .875rem;
    resize: vertical;
    height: 110px;
    min-height: 110px;
    border-radius: 10px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    line-height: 1.5;
    padding: .75rem .875rem;
    box-sizing: border-box;
}
.cws-comment-compose__input:focus {
    outline: none;
    border-color: #a78bfa;
    box-shadow: 0 0 0 3px rgba(124, 58, 237, .14);
}
.cws-comment-templates { margin-bottom: .625rem; }
.cws-comment-templates__label {
    display: block;
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--crm-muted-light);
    margin-bottom: .4375rem;
}
.cws-comment-templates__row {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    align-items: center;
}
.comment-template-btn {
    height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--crm-muted);
    cursor: pointer;
    font-family: inherit;
    line-height: 1;
    transition: background .12s, border-color .12s, color .12s, box-shadow .12s;
    position: relative;
    max-width: 100%;
}
.comment-template-btn:hover {
    background: var(--crm-surface);
    border-color: var(--crm-brand-border);
    color: #6d28d9;
}
.comment-template-btn.is-active {
    background: #7c3aed;
    border-color: #7c3aed;
    color: #fff;
    box-shadow: 0 2px 8px rgba(124, 58, 237, .22);
}
.comment-template-btn.is-active:hover {
    background: #6d28d9;
    border-color: #6d28d9;
    color: #fff;
}
.comment-template-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.comment-template-btn__icon svg { width: 14px; height: 14px; stroke-width: 2.25; }
.comment-template-btn__text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 9rem;
}
.comment-template-btn--custom { padding-right: 8px; }
.comment-template-btn__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 9999px;
    color: var(--crm-muted-light);
    flex-shrink: 0;
    margin-left: -2px;
    transition: background .12s, color .12s;
}
.comment-template-btn__remove svg { width: 10px; height: 10px; stroke-width: 2.5; }
.comment-template-btn--custom:hover .comment-template-btn__remove { color: var(--crm-muted); }
.comment-template-btn__remove:hover { background: rgba(239,68,68,.15); color: #dc2626; }
.comment-template-btn.is-active .comment-template-btn__remove { color: rgba(255,255,255,.8); }
.comment-template-btn.is-active .comment-template-btn__remove:hover { background: rgba(255,255,255,.18); color: #fff; }
.comment-template-btn--add {
    width: 32px;
    padding: 0;
    justify-content: center;
    border-style: dashed;
    border-color: var(--crm-brand-border);
    background: var(--crm-violet-soft);
    color: #7c3aed;
}
.comment-template-btn--add:hover {
    background: var(--crm-violet-soft);
    border-color: var(--crm-brand-border);
    color: #6d28d9;
}
@media (max-width: 640px) {
    .comment-template-btn:not(.comment-template-btn--add) {
        width: 32px;
        padding: 0;
        justify-content: center;
    }
    .comment-template-btn__text { display: none; }
    .comment-template-btn--custom { padding-right: 0; }
    .comment-template-btn__remove {
        position: absolute;
        top: -4px;
        right: -4px;
        width: 14px;
        height: 14px;
        background: var(--crm-card);
        border: 1px solid var(--crm-border);
        margin: 0;
    }
    .comment-template-btn__remove svg { width: 8px; height: 8px; }
}
.cws-comment-compose__footer {
    display: flex;
    justify-content: flex-end;
    margin-top: .625rem;
}
.cws-comment-save {
    display: inline-flex;
    align-items: center;
    gap: .4375rem;
    font-size: .8125rem;
    padding: .5rem 1rem;
    border-radius: 10px;
}
.cws-comment-save svg { width: 15px; height: 15px; stroke-width: 2.25; }
.cws-comments-history {
    padding-top: .875rem;
    border-top: 1px solid var(--crm-border-faint);
}
.cws-comments-history__title {
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--crm-muted-light);
    margin: 0 0 .5rem;
}
.cws-comments-empty {
    font-size: .8125rem;
    color: var(--crm-border-strong);
    margin: 0;
    text-align: center;
    padding: 1rem 0 .25rem;
}
.cws-comments-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .625rem;
}
.cws-comment-card {
    display: flex;
    gap: .625rem;
    padding: .75rem;
    border-radius: 12px;
    border: 1px solid var(--crm-brand-soft);
    background: var(--crm-card);
}
.cws-comment-card__avatar {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    background: linear-gradient(135deg, var(--crm-violet-soft), var(--crm-brand-border));
    color: #6d28d9;
    font-size: .75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cws-comment-card__body { min-width: 0; flex: 1; }
.cws-comment-card__text {
    font-size: .875rem;
    color: var(--crm-text-secondary);
    margin: 0;
    white-space: pre-wrap;
    line-height: 1.5;
}
.cws-comment-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
    font-size: .75rem;
    color: var(--crm-muted-light);
    margin: .375rem 0 0;
}
.cws-comment-card__author { font-weight: 600; color: var(--crm-muted); }
.cws-comment-card__dot { opacity: .6; }

/* Comment template modal — icon picker */
.comment-icon-picker {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-top: .375rem;
}
.comment-icon-picker__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 10px;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s, box-shadow .12s;
}
.comment-icon-picker__btn svg { width: 16px; height: 16px; stroke-width: 2.25; }
.comment-icon-picker__btn:hover {
    background: var(--crm-surface);
    border-color: var(--crm-brand-border);
    color: #6d28d9;
}
.comment-icon-picker__btn.is-selected {
    background: #7c3aed;
    border-color: #7c3aed;
    color: #fff;
    box-shadow: 0 2px 8px rgba(124, 58, 237, .22);
}
.comment-icon-picker__btn.is-selected:hover {
    background: #6d28d9;
    border-color: #6d28d9;
    color: #fff;
}

/* Timeline */
.cws-timeline { list-style: none; margin: 0; padding: 0; }
.cws-timeline--scroll { max-height: 360px; overflow-y: auto; padding-right: .25rem; }
.cws-timeline__item {
    display: flex;
    gap: .625rem;
    padding: .4375rem 0 .4375rem .625rem;
    border-left: 2px solid var(--crm-border);
    margin-left: .5rem;
}
.cws-timeline__item:last-child { border-left-color: transparent; }
.cws-timeline__icon {
    flex-shrink: 0;
    width: 1.375rem;
    height: 1.375rem;
    margin-left: -1.3125rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--crm-card);
    border: 2px solid var(--crm-border);
    border-radius: 9999px;
    color: #7c3aed;
}
.cws-timeline__icon svg { width: 11px; height: 11px; }
.cws-timeline__body { min-width: 0; flex: 1; }
.cws-timeline__title { font-size: .8125rem; font-weight: 600; color: var(--crm-text-secondary); margin: 0; }
.cws-timeline__detail { font-size: .75rem; color: var(--crm-muted); margin: .125rem 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cws-timeline__meta { font-size: .6875rem; color: var(--crm-muted-light); margin: .125rem 0 0; }

/* Inline forms & tasks */
.cws-inline-form {
    width: 100%;
    padding: .625rem;
    border-radius: 10px;
    border: 1px solid var(--crm-brand-soft);
    background: var(--crm-hover);
    margin-bottom: .625rem;
}
.cws-inline-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.cws-inline-form__submit { margin-top: .5rem; font-size: .8125rem; }
.cws-task-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .375rem; }
.cws-task-list__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .4375rem .5rem;
    border-radius: 8px;
    border: 1px solid var(--crm-border-subtle);
    font-size: .8125rem;
}
.cws-task-list__done {
    font-size: .6875rem;
    font-weight: 600;
    color: #7c3aed;
    background: none;
    border: none;
    cursor: pointer;
}

/* Locked modules — visible but inactive */
.module-card-wrap--locked {
    position: relative;
}

.module-card-wrap--locked .module-card-wrap__content {
    pointer-events: none;
    user-select: none;
}

.module-card-wrap--locked .module-card-wrap__content .module-card {
    opacity: .82;
}

.module-card-wrap__veil {
    position: absolute;
    inset: 0;
    z-index: 10;
    border-radius: 12px;
    background: rgba(248, 250, 252, .35);
    pointer-events: none;
}

.module-card-wrap__lock {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 12;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: var(--crm-card);
    border: 1px solid rgba(245,158,11,.45);
    box-shadow: 0 4px 14px rgba(180, 83, 9, .18);
    color: #b45309;
    pointer-events: none;
}

.module-card-wrap__lock svg.lucide {
    width: 17px;
    height: 17px;
    stroke-width: 2.25;
}

.crm-input--compact { font-size: .8125rem; padding: .375rem .5rem; width: 100%; }

/* Client profile shared actions */
.client-workspace { --cw-gap: 1rem; }
.client-action-btn {
    display: inline-flex; align-items: center; gap: .375rem;
    padding: .4375rem .75rem; border-radius: .5rem; font-size: .8125rem; font-weight: 500;
    border: 1px solid var(--crm-border); background: var(--crm-card); color: var(--crm-text-secondary);
    transition: background .15s, border-color .15s, box-shadow .15s;
    text-decoration: none; cursor: pointer; white-space: nowrap;
}
.client-action-btn:hover { background: var(--crm-surface); border-color: var(--crm-border-strong); }
.client-action-btn__icon {
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--crm-muted); width: 16px; height: 16px;
}
.client-action-btn__icon svg { width: 16px; height: 16px; stroke-width: 2; }
.client-action-btn:hover .client-action-btn__icon { color: inherit; }
.client-action-btn--primary {
    background: var(--crm-brand, #3d5a80); border-color: var(--crm-brand, #3d5a80); color: #fff;
}
.client-action-btn--primary:hover { background: var(--crm-brand-hover, #2c4563); color: #fff; }
.client-dropdown-menu {
    position: absolute; right: 0; top: calc(100% + .25rem); min-width: 200px;
    background: var(--crm-card); border: 1px solid var(--crm-border); border-radius: .5rem;
    box-shadow: 0 10px 25px rgba(15,23,42,.12); padding: .375rem; z-index: 30;
}
.client-dropdown-item {
    display: block; padding: .5rem .75rem; font-size: .8125rem; color: var(--crm-text-secondary);
    border-radius: .375rem; text-decoration: none; background: none; border: none;
    cursor: pointer; width: 100%; text-align: left;
}
.client-dropdown-item:hover { background: var(--crm-hover-strong); }
.client-dropdown-item.is-disabled { color: var(--crm-muted-light); cursor: not-allowed; }

.client-status-chip, .client-kyc-chip, .client-template-chip {
    padding: .25rem .5rem; font-size: .6875rem; font-weight: 500;
    border-radius: 9999px; border: 1px solid var(--crm-border); background: var(--crm-card); color: var(--crm-muted);
    transition: all .15s; cursor: pointer;
}
.client-status-chip:hover, .client-kyc-chip:hover, .client-template-chip:hover {
    border-color: var(--crm-brand, #3d5a80); color: var(--crm-brand, #3d5a80);
}
.client-status-chip.is-active.status-new { background: var(--crm-blue-soft); color: #1d4ed8; border-color: var(--crm-brand-border); }
.client-status-chip.is-active.status-call-again { background: var(--crm-amber-soft); color: #b45309; border-color: rgba(245,158,11,.35); }
.client-status-chip.is-active.status-no-answer { background: var(--crm-surface); color: var(--crm-muted); border-color: var(--crm-border); }
.client-status-chip.is-active.status-no-answer-2 { background: rgba(249,115,22,.12); color: #c2410c; border-color: rgba(249,115,22,.35); }
.client-status-chip.is-active.status-no-answer-3 { background: rgba(239,68,68,.12); color: #b91c1c; border-color: rgba(239,68,68,.35); }
.client-status-chip.is-active.status-interested { background: var(--crm-brand-soft); color: var(--crm-accent); border-color: var(--crm-brand-border); }
.client-status-chip.is-active.status-not-interested { background: var(--crm-hover-strong); color: var(--crm-muted); border-color: var(--crm-border); }
.client-status-chip.is-active.status-converted { background: rgba(16,185,129,.12); color: #047857; border-color: rgba(16,185,129,.35); }
.client-status-chip.is-active.status-archived { background: #f9fafb; color: #6b7280; border-color: var(--crm-border); }
.client-kyc-chip.is-active {
    background: var(--crm-brand, #3d5a80); border-color: var(--crm-brand, #3d5a80); color: #fff;
}

.client-toast {
    position: fixed;
    bottom: 1.5rem;
    right: 1.25rem;
    z-index: 210;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.625rem;
    max-width: min(22rem, calc(100vw - 2rem));
    padding: 0.875rem 1rem;
    border-radius: 14px;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.45;
    border: 1px solid var(--crm-border);
    background: var(--crm-card);
    color: var(--crm-text);
    box-shadow:
        0 4px 6px -1px rgba(15, 23, 42, 0.06),
        0 16px 32px -8px rgba(15, 23, 42, 0.14);
    animation: crm-flash-in 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.client-toast.is-success {
    border-color: rgba(16, 185, 129, 0.35);
    background: linear-gradient(135deg, var(--crm-card) 0%, rgba(240, 253, 244, 0.95) 100%);
}
.client-toast.is-error {
    border-color: rgba(239, 68, 68, 0.35);
    background: linear-gradient(135deg, var(--crm-card) 0%, rgba(254, 242, 242, 0.95) 100%);
    color: var(--crm-text);
}

/* Clients workspace */
.clients-workspace { --cw-gap: 1rem; margin-top: -0.5rem; }
@media (min-width: 1024px) { .clients-workspace { margin-top: -1rem; } }
.clients-workspace-header {
    display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.25rem;
}
.clients-workspace-title { font-size: 1.5rem; font-weight: 700; color: var(--crm-text); line-height: 1.2; }
.clients-workspace-subtitle { margin-top: .25rem; font-size: .875rem; color: var(--crm-muted); }
.clients-workspace-header__actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }

.clients-stats-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem;
}
@media (min-width: 768px) { .clients-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .clients-stats-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.clients-stat-card {
    display: flex; flex-direction: column; padding: .875rem 1rem; border-radius: .75rem;
    border: 1px solid var(--crm-border); background: var(--crm-card); transition: box-shadow .15s, border-color .15s;
}
.clients-stat-card:hover { box-shadow: 0 4px 14px rgba(15,23,42,.06); border-color: var(--crm-border-strong); }
.clients-stat-card.is-active { border-color: var(--crm-brand, #3d5a80); box-shadow: 0 0 0 1px var(--crm-brand, #3d5a80); }
.clients-stat-card__value { font-size: 1.375rem; font-weight: 700; color: var(--crm-text); }
.clients-stat-card__label { font-size: .75rem; color: var(--crm-muted); margin-top: .125rem; }

.clients-toolbar { margin-bottom: 1rem; padding: 1rem; }
.clients-toolbar__row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.clients-toolbar__search { flex: 1 1 220px; min-width: 200px; }
.clients-toolbar__saved { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; min-width: 180px; }
.clients-toolbar__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-left: auto; }
.clients-filters-details summary { list-style: none; }
.clients-filters-details summary::-webkit-details-marker { display: none; }

/* Compact toolbar — modern workspace controls */
.cw-toolbar {
    display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem;
    margin-bottom: 1rem;
    padding: .875rem 1rem;
    background: linear-gradient(180deg, var(--crm-card) 0%, var(--crm-hover) 100%);
    border: 1px solid var(--crm-border); border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 4px 16px rgba(15,23,42,.04);
}
.cw-toolbar__search-wrap { flex: 1 1 260px; min-width: 220px; }
.cw-toolbar__divider {
    width: 1px; align-self: stretch; min-height: 2rem;
    background: linear-gradient(180deg, transparent, var(--crm-border) 20%, var(--crm-border) 80%, transparent);
    display: none;
}
@media (min-width: 768px) { .cw-toolbar__divider { display: block; } }
.cw-toolbar__actions {
    display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
    margin-left: auto;
}

.cw-search {
    position: relative; display: flex; align-items: center;
}
.cw-search__icon {
    position: absolute; left: .75rem; width: 1rem; height: 1rem; max-width: 1rem; max-height: 1rem;
    color: var(--crm-muted-light); pointer-events: none; display: block; flex-shrink: 0;
}
.cw-search__input {
    width: 100%; padding: .5625rem .875rem .5625rem 2.375rem;
    font-size: .875rem; line-height: 1.25; color: var(--crm-text);
    background: var(--crm-surface); border: 1px solid var(--crm-border); border-radius: 10px;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.cw-search__input::placeholder { color: var(--crm-muted-light); }
.cw-search__input:hover { background: var(--crm-card); border-color: var(--crm-border-strong); }
.cw-search__input:focus {
    outline: none; background: var(--crm-card); border-color: var(--crm-brand, #3d5a80);
    box-shadow: 0 0 0 3px rgba(61,90,128,.12);
}

.cw-btn-group {
    display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px;
    padding: 3px; background: var(--crm-hover-strong); border-radius: 11px;
    border: 1px solid var(--crm-border);
}
.cw-btn {
    display: inline-flex; align-items: center; gap: .4375rem;
    padding: .5rem .75rem; font-size: .8125rem; font-weight: 500; line-height: 1;
    color: var(--crm-text-secondary); background: transparent; border: none; border-radius: 8px;
    cursor: pointer; text-decoration: none; white-space: nowrap;
    transition: background .15s, color .15s, box-shadow .15s, transform .1s;
}
.cw-btn:hover:not(:disabled) {
    background: var(--crm-card); color: var(--crm-text);
    box-shadow: 0 1px 3px rgba(15,23,42,.08);
}
.cw-btn:active:not(:disabled) { transform: scale(.98); }
.cw-btn:disabled, .cw-btn--muted:disabled { opacity: .45; cursor: not-allowed; }
.cw-btn__icon { width: 1rem; height: 1rem; max-width: 1rem; max-height: 1rem; flex-shrink: 0; display: block; opacity: .85; }
.cw-btn__caret { width: .875rem; height: .875rem; max-width: .875rem; max-height: .875rem; flex-shrink: 0; display: block; color: var(--crm-muted-light); }
.cw-btn__label { font-weight: 500; }
.cw-btn__meta {
    max-width: 7rem; overflow: hidden; text-overflow: ellipsis;
    font-weight: 400; color: var(--crm-muted); font-size: .75rem;
}
.cw-btn--primary {
    background: linear-gradient(135deg, var(--crm-brand, #3d5a80) 0%, #4a6fa5 100%);
    color: #fff; font-weight: 600; padding: .5625rem 1rem;
    border-radius: 10px; box-shadow: 0 1px 2px rgba(61,90,128,.2), 0 4px 12px rgba(61,90,128,.18);
}
.cw-btn--primary:hover {
    background: linear-gradient(135deg, #345070 0%, var(--crm-brand, #3d5a80) 100%);
    color: #fff; box-shadow: 0 2px 8px rgba(61,90,128,.28);
}
.cw-btn--primary .cw-btn__icon { opacity: 1; }

.cw-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 1.125rem; height: 1.125rem; padding: 0 .3125rem;
    font-size: .625rem; font-weight: 700; letter-spacing: .02em;
    border-radius: 9999px; background: var(--crm-brand, #3d5a80); color: #fff;
}
.cw-badge--warn { background: linear-gradient(135deg, #f59e0b, #ea580c); }

.cw-dropdown { position: relative; }
.cw-dropdown__panel,
.clients-dropdown__menu {
    position: absolute; top: calc(100% + 6px); right: 0; z-index: 200;
    min-width: 300px; max-width: 400px; max-height: 380px; overflow-y: auto;
    background: var(--crm-card); border: 1px solid var(--crm-border); border-radius: 12px;
    box-shadow: 0 12px 40px rgba(15,23,42,.14), 0 2px 8px rgba(15,23,42,.06);
    padding: .375rem;
}

.clients-modals-root { display: contents; }

.clients-active-filters {
    display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
    margin-bottom: .75rem; padding: .5rem .75rem;
    background: var(--crm-surface); border: 1px solid var(--crm-border); border-radius: 10px;
}
.clients-active-filters__label { font-size: .75rem; font-weight: 600; color: var(--crm-muted); }
.clients-active-filters__chips { display: flex; flex-wrap: wrap; gap: .375rem; }
.clients-filter-chip {
    display: inline-flex; align-items: center; gap: .375rem;
    padding: .25rem .625rem; font-size: .75rem; font-weight: 500;
    border-radius: 9999px; border: 1px solid var(--crm-border-strong); background: var(--crm-card); color: var(--crm-muted);
    text-decoration: none; transition: background .15s, border-color .15s;
}
.clients-filter-chip:hover { background: var(--crm-hover-strong); border-color: var(--crm-muted-light); color: var(--crm-text); }
.clients-filter-chip__x { color: var(--crm-muted-light); font-size: .875rem; line-height: 1; }
.clients-filter-chip--clear { border-style: dashed; color: var(--crm-muted); background: transparent; }

.clients-saved-list { list-style: none; margin: 0; padding: .25rem; }
.clients-saved-item { padding: .625rem .75rem; border-radius: 10px; border: 1px solid transparent; }
.clients-saved-item.is-active { background: var(--crm-blue-soft); border-color: var(--crm-brand-border); }
.clients-saved-item + .clients-saved-item { margin-top: .25rem; }
.clients-saved-item__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.clients-saved-item__name { font-size: .875rem; font-weight: 600; color: var(--crm-text); }
.clients-saved-item__badges { display: flex; gap: .25rem; flex-shrink: 0; }
.clients-saved-item__actions { display: flex; flex-wrap: wrap; gap: .375rem .625rem; margin-top: .375rem; }
.clients-saved-action {
    font-size: .75rem; font-weight: 500; color: var(--crm-brand, #3d5a80);
    background: none; border: none; padding: 0; cursor: pointer; text-decoration: none;
}
.clients-saved-action:hover { text-decoration: underline; }
.clients-saved-action--danger { color: #b91c1c; }
.clients-dropdown__footer { border-top: 1px solid var(--crm-border); padding: .5rem; margin-top: .25rem; }

/* Saved views dropdown */
.cw-saved-views { padding: 0; min-width: 280px; max-width: 320px; }
.cw-saved-views__header {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem;
    padding: .625rem .875rem .5rem; border-bottom: 1px solid var(--crm-border-subtle);
}
.cw-saved-views__title {
    font-size: .6875rem; font-weight: 600; letter-spacing: .06em;
    text-transform: uppercase; color: var(--crm-muted);
}
.cw-saved-views__count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 1.25rem; height: 1.25rem; padding: 0 .375rem;
    font-size: .6875rem; font-weight: 600; color: var(--crm-muted);
    background: var(--crm-hover-strong); border-radius: 9999px;
}
.cw-saved-views__list {
    list-style: none; margin: 0; padding: .375rem;
    max-height: 280px; overflow-y: auto;
}
.cw-saved-view {
    border-radius: 10px; border: 1px solid transparent;
    overflow: hidden; transition: background .15s, border-color .15s;
}
.cw-saved-view + .cw-saved-view { margin-top: .25rem; }
.cw-saved-view.is-active {
    background: linear-gradient(180deg, var(--crm-blue-soft) 0%, var(--crm-surface) 100%);
    border-color: var(--crm-brand-border);
}
.cw-saved-view__head {
    display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem;
    padding: .625rem .75rem .375rem;
}
.cw-saved-view__info { min-width: 0; flex: 1; }
.cw-saved-view__name {
    display: block; font-size: .875rem; font-weight: 600; color: var(--crm-text);
    line-height: 1.3; word-break: break-word;
}
.cw-saved-view__badges {
    display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .3125rem;
}
.cw-saved-view__badge {
    display: inline-flex; align-items: center; padding: .0625rem .375rem;
    font-size: .625rem; font-weight: 600; letter-spacing: .02em;
    border-radius: 9999px; line-height: 1.4;
}
.cw-saved-view__badge--default { background: rgba(34,197,94,.15); color: #166534; }
.cw-saved-view__badge--shared { background: rgba(14,165,233,.15); color: #0369a1; }
.cw-saved-view__active-dot {
    flex-shrink: 0; width: .5rem; height: .5rem; margin-top: .3125rem;
    border-radius: 9999px; background: var(--crm-brand, #3d5a80);
    box-shadow: 0 0 0 3px rgba(61,90,128,.15);
}
.cw-saved-view__actions {
    display: flex; flex-direction: column; gap: 1px;
    padding: 0 .375rem .375rem;
}
.cw-saved-view__form { margin: 0; }
.cw-saved-view__form--danger { margin-top: .25rem; padding-top: .25rem; border-top: 1px solid var(--crm-border-subtle); }
.cw-saved-view__action {
    display: flex; align-items: center; gap: .5rem; width: 100%;
    padding: .4375rem .5rem; font-size: .8125rem; font-weight: 500; line-height: 1.25;
    color: var(--crm-text-secondary); background: transparent; border: none; border-radius: 8px;
    cursor: pointer; text-decoration: none; text-align: left;
    transition: background .12s, color .12s;
}
.cw-saved-view__action:hover {
    background: rgba(255,255,255,.85); color: var(--crm-text);
}
.cw-saved-view.is-active .cw-saved-view__action:hover { background: rgba(255,255,255,.7); }
.cw-saved-view__action-icon {
    display: flex; align-items: center; justify-content: center;
    width: 1.625rem; height: 1.625rem; flex-shrink: 0;
    border-radius: 6px; background: var(--crm-hover-strong); color: var(--crm-muted);
    transition: background .12s, color .12s;
}
.cw-saved-view__action-icon svg { width: .875rem; height: .875rem; display: block; }
.cw-saved-view__action:hover .cw-saved-view__action-icon {
    background: var(--crm-border); color: var(--crm-brand, #3d5a80);
}
.cw-saved-view__action-label { flex: 1; min-width: 0; }
.cw-saved-view__action--danger { color: #b91c1c; }
.cw-saved-view__action--danger .cw-saved-view__action-icon { background: rgba(239,68,68,.12); color: #dc2626; }
.cw-saved-view__action--danger:hover { background: rgba(239,68,68,.12); color: #991b1b; }
.cw-saved-view__action--danger:hover .cw-saved-view__action-icon { background: rgba(239,68,68,.15); color: #b91c1c; }
.cw-saved-views__empty { padding: 1.25rem 1rem; text-align: center; }
.cw-saved-views__empty-text { margin: 0; font-size: .875rem; font-weight: 600; color: var(--crm-text-secondary); }
.cw-saved-views__empty-hint { margin: .375rem 0 0; font-size: .75rem; line-height: 1.45; color: var(--crm-muted-light); }
.cw-saved-views__footer {
    padding: .5rem; border-top: 1px solid var(--crm-border);
    background: var(--crm-hover); border-radius: 0 0 11px 11px;
}
.cw-saved-views__save-btn {
    display: flex; align-items: center; justify-content: center; gap: .4375rem;
    width: 100%; padding: .5625rem .75rem;
    font-size: .8125rem; font-weight: 600; color: #fff;
    background: var(--crm-brand, #3d5a80); border: none; border-radius: 9px;
    cursor: pointer; transition: background .15s, transform .1s, box-shadow .15s;
    box-shadow: 0 1px 2px rgba(15,23,42,.08);
}
.cw-saved-views__save-btn svg { width: .875rem; height: .875rem; flex-shrink: 0; display: block; }
.cw-saved-views__save-btn:hover { background: var(--crm-brand-hover, #334e68); box-shadow: 0 2px 6px rgba(15,23,42,.12); }
.cw-saved-views__save-btn:active { transform: scale(.98); }

.clients-toast.is-hidden,
.clients-toast.hidden { display: none !important; }

.clients-table-wrap--compact .clients-table td,
.clients-table-wrap--compact .clients-table th { padding-top: .375rem; padding-bottom: .375rem; font-size: .8125rem; }
.clients-table-wrap--spacious .clients-table td,
.clients-table-wrap--spacious .clients-table th { padding-top: .875rem; padding-bottom: .875rem; }

.clients-transfer-form__body {
    min-height: 420px;
    padding-top: 0.25rem;
}
.clients-transfer-form__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem 2.25rem;
}
@media (min-width: 640px) {
    .clients-transfer-form__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.25rem 2.5rem;
    }
}
.cw-modal__dialog--transfer .cw-create-field + .cw-create-field {
    margin-top: 0;
}
.cw-modal__dialog--transfer .cw-create-field .crm-label {
    margin-bottom: 0.65rem;
}
.cw-modal__dialog--transfer {
    max-width: 880px;
    width: calc(100vw - 2rem);
    min-height: min(75vh, 600px);
    max-height: min(92vh, 1080px);
    display: flex;
    flex-direction: column;
}
.cw-modal__dialog--transfer .crm-modal-body {
    flex: 1;
    overflow-y: auto;
}
.cw-modal__dialog--transfer .cw-create-field {
    margin-bottom: 0;
}

.clients-table-wrap { padding: 0; overflow: hidden; }
.clients-table-scroll {
    overflow: auto;
    max-height: calc(100vh - 320px);
    scrollbar-gutter: stable;
}
.clients-table.crm-table {
    table-layout: fixed;
    width: 100%;
    min-width: 68rem;
    border-collapse: separate;
    border-spacing: 0;
}
.clients-table col.clients-col-check { width: 2.5rem; }
.clients-table col.clients-col-client { width: 14rem; }
.clients-table col.clients-col-contact { width: 11rem; }
.clients-table col.clients-col-source { width: 10rem; }
.clients-table col.clients-col-manager { width: 8rem; }
.clients-table col.clients-col-department { width: 9rem; }
.clients-table col.clients-col-status { width: 9.5rem; }
.clients-table col.clients-col-comment { width: 8.5rem; }
.clients-table col.clients-col-next { width: 9rem; }
.clients-table col.clients-col-dates { width: 7.5rem; }
.clients-table col.clients-col-actions { width: 9.5rem; }
.clients-table thead th {
    position: sticky; top: 0; z-index: 2; background: var(--crm-surface);
    border-bottom: 1px solid var(--crm-border); font-size: .6875rem; text-transform: uppercase;
    letter-spacing: .04em; color: var(--crm-muted); padding: .5rem .875rem; white-space: nowrap;
    font-weight: 600; box-sizing: border-box;
}
.clients-table tbody td {
    padding: .4375rem .875rem; vertical-align: middle;
    border-bottom: 1px solid var(--crm-border-subtle); font-size: .8125rem; color: var(--crm-text-secondary);
    box-sizing: border-box;
}
.clients-table__row { transition: background .12s; }
.clients-table__row:hover { background: var(--crm-surface); }
.clients-table__row:hover td { background: transparent; }
.ct-th-check { width: 2.5rem; text-align: center; }
.ct-th-actions { text-align: right; width: 1%; white-space: nowrap; }
.ct-td-actions { text-align: right; white-space: nowrap; }

/* Client cell */
.ct-client-cell {
    display: flex; align-items: center; gap: .625rem;
    text-decoration: none; color: inherit; min-width: 0;
}
.ct-client-cell__avatar {
    display: flex; align-items: center; justify-content: center;
    width: 2rem; height: 2rem; flex-shrink: 0;
    border-radius: 9999px; font-size: .75rem; font-weight: 700;
    background: linear-gradient(135deg, var(--crm-brand-soft), var(--crm-brand-muted)); color: var(--crm-brand, #4f46e5);
    border: 1px solid var(--crm-brand-border);
}
.ct-client-cell__flag {
    width: 2rem; height: 2rem; flex-shrink: 0;
    border-radius: 9999px; object-fit: cover;
    border: 1px solid var(--crm-border); background: var(--crm-surface);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
}
.ct-client-cell__flag--unknown { opacity: .92; }
.ct-client-cell__body { min-width: 0; }
.ct-client-cell__name {
    display: block; font-weight: 600; font-size: .875rem; color: var(--crm-text);
    line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ct-client-cell:hover .ct-client-cell__name { color: var(--crm-brand, #4f46e5); }
.ct-client-cell__meta {
    display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .375rem;
    margin-top: .125rem; font-size: .6875rem; color: var(--crm-muted-light); line-height: 1.3;
}
.ct-client-cell__geo {
    display: inline-flex; padding: .0625rem .3125rem; border-radius: 4px;
    background: var(--crm-hover-strong); color: var(--crm-muted); font-weight: 600; font-size: .625rem;
}

/* Contact */
.ct-contact-list { display: flex; flex-direction: column; gap: .25rem; min-width: 0; max-width: 11rem; }
.ct-contact-item {
    display: inline-flex; align-items: center; gap: .375rem; max-width: 100%;
    font-size: .8125rem; color: var(--crm-text-secondary);
}
.ct-contact-item--muted { color: var(--crm-muted); }
.ct-contact-item__icon,
.ct-contact-trigger {
    display: flex; align-items: center; justify-content: center;
    width: 1.625rem; height: 1.625rem; flex-shrink: 0;
    border-radius: 8px; background: var(--crm-hover-strong); color: var(--crm-muted);
    border: 0; padding: 0; cursor: pointer;
    transition: background .12s, color .12s, box-shadow .12s;
}
.ct-contact-item__icon svg.lucide,
.ct-contact-trigger svg.lucide { width: 14px; height: 14px; stroke-width: 2; }
.ct-contact-trigger:hover,
.ct-contact-trigger.is-open {
    background: var(--crm-brand-soft); color: var(--crm-brand, #4f46e5);
    box-shadow: 0 0 0 2px rgba(79, 70, 229, .12);
}
.ct-contact-item__text {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ct-contact-popover {
    position: fixed; z-index: 70; min-width: 220px; max-width: 320px;
    padding: .625rem; border-radius: 12px;
    background: var(--crm-card); border: 1px solid var(--crm-border);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .14);
}
.ct-contact-popover.is-hidden { display: none !important; }
.ct-contact-popover__value {
    margin: 0 0 .5rem; padding: .375rem .5rem;
    font-size: .8125rem; font-weight: 500; color: var(--crm-text);
    word-break: break-all; line-height: 1.35;
    background: var(--crm-surface); border-radius: 8px;
}
.ct-contact-popover__actions { display: flex; flex-direction: column; gap: .25rem; }
.ct-contact-popover__btn {
    display: inline-flex; align-items: center; gap: .5rem;
    width: 100%; padding: .4375rem .625rem;
    border: 1px solid var(--crm-border); border-radius: 8px;
    background: var(--crm-card); color: var(--crm-text-secondary);
    font-size: .8125rem; font-weight: 500; text-decoration: none;
    cursor: pointer; transition: background .12s, border-color .12s, color .12s;
}
.ct-contact-popover__btn:hover {
    background: var(--crm-surface); border-color: var(--crm-border-strong); color: var(--crm-text);
}
.ct-contact-popover__btn.is-hidden { display: none !important; }
.ct-contact-popover__btn-icon { width: 14px; height: 14px; flex-shrink: 0; }
.ct-contact-popover__btn svg.lucide { width: 14px; height: 14px; stroke-width: 2; }

/* Stack cells (source, assignment) */
.ct-stack { display: flex; flex-direction: column; gap: .125rem; min-width: 0; }
.ct-stack__primary { font-size: .8125rem; font-weight: 500; color: var(--crm-text-secondary); line-height: 1.35; }
.ct-stack__secondary { font-size: .6875rem; color: var(--crm-muted-light); line-height: 1.35; }
.ct-empty { color: var(--crm-border-strong); font-size: .8125rem; }

/* Pills (KYC, read-only status) */
.ct-pill {
    display: inline-flex; align-items: center; padding: .1875rem .5625rem;
    border-radius: 9999px; font-size: .6875rem; font-weight: 600;
    line-height: 1.4; white-space: nowrap;
}
.ct-pill--not_started, .ct-pill--status-archived, .ct-pill--status-not_interested { background: var(--crm-hover-strong); color: var(--crm-muted); }
.ct-pill--pending, .ct-pill--status-call_again { background: rgba(14,165,233,.15); color: #0369a1; }
.ct-pill--approved, .ct-pill--status-interested, .ct-pill--status-converted { background: rgba(34,197,94,.15); color: #15803d; }
.ct-pill--rejected, .ct-pill--status-no_answer, .ct-pill--status-no_answer_2, .ct-pill--status-no_answer_3 { background: rgba(239,68,68,.15); color: #b91c1c; }
.ct-pill--status-new { background: var(--crm-brand-soft); color: #1d4ed8; }

/* Status select (pill style) */
.ct-status-select {
    appearance: none; -webkit-appearance: none;
    min-width: 7.5rem; max-width: 10rem;
    padding: .3125rem 1.625rem .3125rem .5625rem;
    font-size: .6875rem; font-weight: 600; line-height: 1.35;
    border: none; border-radius: 9999px; cursor: pointer;
    background-repeat: no-repeat;
    background-position: right .4375rem center;
    background-size: .875rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2364748b'%3E%3Cpath d='M4.427 6.427a.75.75 0 0 1 1.06 0L8 8.94l2.513-2.513a.75.75 0 1 1 1.06 1.06l-3.043 3.043a.75.75 0 0 1-1.06 0L4.427 7.487a.75.75 0 0 1 0-1.06Z'/%3E%3C/svg%3E");
    transition: box-shadow .12s, opacity .12s;
}
.ct-status-select:focus { outline: none; box-shadow: 0 0 0 2px rgba(79,70,229,.25); }
.ct-status-select:disabled { opacity: .6; cursor: wait; }
.ct-status-select--new { background-color: var(--crm-brand-soft); color: #1d4ed8; }
.ct-status-select--call_again { background-color: rgba(14,165,233,.15); color: #0369a1; }
.ct-status-select--interested, .ct-status-select--converted { background-color: rgba(34,197,94,.15); color: #15803d; }
.ct-status-select--not_interested, .ct-status-select--archived { background-color: var(--crm-border-subtle); color: var(--crm-muted); }
.ct-status-select--no_answer, .ct-status-select--no_answer_2, .ct-status-select--no_answer_3 { background-color: rgba(239,68,68,.15); color: #b91c1c; }

/* Comment preview */
.ct-comment { max-width: 14rem; }
.ct-comment__text {
    margin: 0; font-size: .8125rem; color: var(--crm-text-secondary); line-height: 1.4;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ct-comment__meta { margin: .25rem 0 0; font-size: .6875rem; color: var(--crm-muted-light); line-height: 1.3; }

.ct-comment-cell { display: inline-flex; align-items: center; gap: .375rem; }
.ct-comment-cell__date { font-size: .8125rem; color: var(--crm-text-secondary); white-space: nowrap; }
.ct-comment-view-btn { width: 34px; height: 34px; border-radius: 10px; }

/* Task cell — compact count + add */
.ct-task-cell { display: inline-flex; align-items: center; gap: .375rem; }
.ct-task-count {
    display: inline-flex; align-items: center; gap: .3125rem;
    min-height: 34px;
    padding: .3125rem .5625rem; border-radius: 10px; border: 1px solid var(--crm-border);
    background: var(--crm-surface); cursor: pointer; font: inherit; color: var(--crm-text-secondary);
    transition: background .15s, border-color .15s;
    position: relative; z-index: 1;
}
.ct-task-count__icon { width: 15px !important; height: 15px !important; opacity: .75; flex-shrink: 0; }
.ct-task-count:hover { background: var(--crm-blue-soft); border-color: var(--crm-brand-border); color: #1d4ed8; }
.ct-task-count:hover .ct-task-count__icon { opacity: 1; }
.ct-task-count--empty { color: var(--crm-muted-light); }
.ct-task-count--overdue { border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.12); }
.ct-task-count--overdue:hover { border-color: #fca5a5; background: rgba(239,68,68,.15); color: #b91c1c; }
.ct-task-count__num { font-size: .8125rem; font-weight: 700; line-height: 1; }
.ct-task-count__label { font-size: .6875rem; font-weight: 500; }
.ct-task-add { flex-shrink: 0; }

.cw-tasks-skeleton { display: flex; flex-direction: column; gap: .625rem; }
.cw-tasks-skeleton__card {
    height: 4.25rem; border-radius: 12px;
    background: linear-gradient(90deg, var(--crm-border-subtle) 25%, var(--crm-border) 50%, var(--crm-border-subtle) 75%);
    background-size: 200% 100%; animation: cw-shimmer 1.2s ease-in-out infinite;
}
@keyframes cw-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.cw-tasks-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .625rem; }
.cw-tasks-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px 16px;
}
.cw-tasks-empty__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 9999px;
    background: var(--crm-hover-strong);
    color: var(--crm-muted-light);
    margin-bottom: 12px;
}
.cw-tasks-empty__icon svg.lucide { width: 24px; height: 24px; }
.cw-tasks-empty__title { margin: 0; font-size: .875rem; font-weight: 600; color: var(--crm-text-secondary); }
.cw-tasks-empty__desc { margin: .375rem 0 0; font-size: .75rem; color: var(--crm-muted-light); max-width: 16rem; line-height: 1.45; }

.cw-task-card {
    display: flex; align-items: flex-start; gap: .75rem;
    padding: .75rem .875rem; border-radius: 12px;
    background: var(--crm-card); border: 1px solid #e8edf2;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    transition: border-color .15s, box-shadow .15s;
}
.cw-task-card:hover { border-color: var(--crm-border-strong); box-shadow: 0 2px 8px rgba(15, 23, 42, .06); }
.cw-task-card--overdue { border-color: rgba(239,68,68,.35); background: linear-gradient(180deg, var(--crm-card) 0%, var(--crm-hover) 100%); }
.cw-task-card--overdue:hover { border-color: #fca5a5; }
.cw-task-card__body { flex: 1; min-width: 0; }
.cw-task-card__title {
    margin: 0 0 .375rem; font-size: .8125rem; font-weight: 600; color: var(--crm-text); line-height: 1.35;
}
.cw-task-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; }
.cw-task-card__due {
    display: inline-flex; align-items: center; gap: .25rem;
    font-size: .6875rem; color: var(--crm-muted);
}
.cw-task-card__due svg { width: .75rem; height: .75rem; opacity: .7; flex-shrink: 0; }
.cw-task-card__assignee {
    display: inline-flex; align-items: center; gap: .25rem;
    font-size: .6875rem; color: var(--crm-muted);
}
.cw-task-card__assignee-avatar {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1rem; height: 1rem; border-radius: 9999px;
    background: var(--crm-border); color: var(--crm-muted); font-size: .5625rem; font-weight: 700;
}
.cw-task-card__done {
    flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
    width: 1.75rem; height: 1.75rem; border-radius: 8px;
    border: 1px solid var(--crm-border); background: var(--crm-surface); color: var(--crm-muted);
    cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
.cw-task-card__done:hover {
    background: rgba(16,185,129,.12); border-color: #86efac; color: #059669;
}
.cw-task-card__done svg { width: .875rem; height: .875rem; }

/* Legacy aliases */
.cw-tasks-list-item { display: contents; }
.cw-tasks-list-wrap { display: contents; }
.cw-tasks-list-loading { display: none; }
.cw-tasks-list-empty { display: none; }
.cw-tasks-list-item__done { display: none; }

.is-hidden { display: none !important; }

/* Task cell — legacy detail (client card) */
.ct-task { display: flex; flex-direction: column; gap: .25rem; max-width: 14rem; }
.ct-task--overdue .ct-task__title { color: #b91c1c; }
.ct-task__head { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; }
.ct-task__title { font-size: .8125rem; font-weight: 600; color: var(--crm-text); line-height: 1.35; }
.ct-task__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; font-size: .6875rem; color: var(--crm-muted-light); }
.ct-task__due, .ct-task__assignee { color: var(--crm-muted); }
.ct-task-link {
    font-size: .8125rem; font-weight: 600; color: #2563eb; background: none; border: none; padding: 0; cursor: pointer;
}
.ct-task-link:hover:not(:disabled) { text-decoration: underline; }
.ct-task-link:disabled { opacity: .45; cursor: not-allowed; }
.ct-overdue-badge {
    display: inline-flex; align-items: center; padding: .1rem .4rem; border-radius: 9999px;
    font-size: .625rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
    background: rgba(239,68,68,.12); color: #b91c1c; border: 1px solid rgba(239,68,68,.35);
}
.ct-priority, .ct-status {
    display: inline-flex; align-items: center; padding: .1rem .4rem; border-radius: 9999px;
    font-size: .625rem; font-weight: 600; text-transform: capitalize;
}
.ct-priority--urgent { background: rgba(239,68,68,.12); color: #b91c1c; }
.ct-priority--high { background: var(--crm-amber-soft); color: #b45309; }
.ct-priority--medium { background: #f0f9ff; color: #0369a1; }
.ct-priority--low { background: var(--crm-surface); color: var(--crm-muted); }
.ct-status--todo { background: var(--crm-hover-strong); color: var(--crm-muted); }
.ct-status--progress { background: var(--crm-blue-soft); color: #1d4ed8; }
.ct-status--done { background: rgba(16,185,129,.12); color: #047857; }
.ct-status--cancelled { background: var(--crm-surface); color: var(--crm-muted-light); }

#create-task-submit.is-loading { opacity: .7; pointer-events: none; }

/* Dates */
.ct-dates { display: flex; flex-direction: column; gap: .1875rem; white-space: nowrap; }
.ct-dates__row { display: flex; align-items: baseline; gap: .375rem; font-size: .6875rem; }
.ct-dates__label { color: var(--crm-muted-light); font-weight: 500; min-width: 2.75rem; }
.ct-dates__row > span:last-child { color: var(--crm-muted); }

/* Row actions */
.ct-row-actions {
    display: inline-flex; align-items: center; gap: .25rem;
    padding: .25rem; border-radius: 12px;
    background: var(--crm-surface); border: 1px solid var(--crm-border);
}
.ct-td-actions { vertical-align: middle; }

.clients-cell-client__name { display: block; font-weight: 600; color: var(--crm-text); }
.clients-cell-client__name:hover { color: var(--crm-brand, #3d5a80); }
.clients-cell-client__meta { display: block; font-size: .6875rem; color: var(--crm-muted-light); margin-top: .125rem; }
.clients-cell-contact { display: flex; flex-direction: column; gap: .125rem; }
.clients-contact-link { color: var(--crm-text-secondary); font-size: .8125rem; text-decoration: none; }
.clients-contact-link:hover { color: var(--crm-brand, #3d5a80); text-decoration: underline; }
.clients-status-select { min-width: 120px; max-width: 150px; padding-top: .25rem; padding-bottom: .25rem; }
.clients-row-actions { display: inline-flex; flex-wrap: wrap; gap: .25rem; justify-content: flex-end; }
.clients-empty-state { padding: 3rem 1rem; text-align: center; }

.clients-dropdown { position: relative; }
.clients-dropdown__menu {
    position: absolute; top: 100%; left: 0; z-index: 30; min-width: 160px;
    margin-top: .25rem; background: var(--crm-card); border: 1px solid var(--crm-border); border-radius: .5rem;
    box-shadow: 0 10px 25px rgba(15,23,42,.1); padding: .25rem;
}
.clients-dropdown__menu--right { left: auto; right: 0; }
.clients-dropdown__item {
    display: block; width: 100%; padding: .5rem .75rem; font-size: .8125rem; text-align: left;
    border: none; background: none; cursor: pointer; border-radius: .375rem; color: var(--crm-text-secondary);
}
.clients-dropdown__item:hover:not(:disabled) { background: var(--crm-hover-strong); }
.clients-dropdown__item:disabled { opacity: .5; cursor: not-allowed; }
a.clients-dropdown__item { text-decoration: none; }

.clients-toast {
    position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 100;
    padding: .75rem 1.25rem; border-radius: .5rem; font-size: .875rem; font-weight: 500;
    box-shadow: 0 10px 25px rgba(15,23,42,.15);
}
.clients-toast.is-success { background: rgba(16,185,129,.12); color: #065f46; border: 1px solid rgba(16,185,129,.35); }
.clients-toast.is-error { background: rgba(239,68,68,.12); color: #991b1b; border: 1px solid rgba(239,68,68,.35); }

.clients-modal { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.clients-modal.hidden { display: none; }
.clients-modal__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.45); }
.clients-modal__panel {
    position: relative; z-index: 1; width: 100%; max-width: 480px; background: var(--crm-card);
    border-radius: .75rem; padding: 1.25rem; box-shadow: 0 25px 50px rgba(0,0,0,.15);
}
.crm-badge-purple { background: #f3e8ff; color: #6b21a8; }
.clients-stat-card--brand .clients-stat-card__value { color: var(--crm-brand, #3d5a80); }
.clients-stat-card--green .clients-stat-card__value { color: #15803d; }
.clients-stat-card--amber .clients-stat-card__value { color: #b45309; }
.clients-stat-card--red .clients-stat-card__value { color: #b91c1c; }
.clients-stat-card--blue .clients-stat-card__value { color: #1d4ed8; }
.clients-stat-card--purple .clients-stat-card__value { color: #7e22ce; }

/* ── Lucide icons ── */
svg.lucide {
    width: 16px;
    height: 16px;
    stroke-width: 2;
    flex-shrink: 0;
}

/* ── Icon buttons ── */
.icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: var(--crm-card);
    color: var(--crm-muted);
    cursor: pointer;
    flex-shrink: 0;
    text-decoration: none;
    transition: background .12s, border-color .12s, color .12s, box-shadow .12s, transform .1s;
}
.icon-btn svg.lucide { width: 16px; height: 16px; stroke-width: 2; pointer-events: none; }
.icon-btn:hover:not(:disabled) { background: var(--crm-surface); color: var(--crm-text); }
.icon-btn:active:not(:disabled) { transform: scale(.96); }
.icon-btn:focus-visible { outline: none; box-shadow: 0 0 0 2px rgba(99, 102, 241, .25); }
.icon-btn:disabled { opacity: .45; cursor: not-allowed; }
.icon-btn-primary { color: #2563eb; }
.icon-btn-primary:hover:not(:disabled) { background: var(--crm-blue-soft); border-color: var(--crm-brand-border); color: #1d4ed8; }
.icon-btn-danger { color: var(--crm-muted); }
.icon-btn-danger:hover:not(:disabled) { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.35); color: #b91c1c; }
.icon-btn-muted { color: var(--crm-muted); }
.icon-btn-success { color: #059669; }
.icon-btn-success:hover:not(:disabled) { background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.35); color: #047857; }

.client-action-btn__icon svg.lucide {
    width: 15px;
    height: 15px;
    stroke-width: 2;
}

/* Sidebar collapsed — logo must stay hidden (also in layout/sidebar.css) */
body.sidebar-collapsed .crm-sidebar__logo,
.crm-sidebar.is-collapsed .crm-sidebar__logo,
.crm-sidebar__logo[hidden] {
    display: none !important;
}

/* Status pill — see css/components/status-pill.css */
.clients-th-status,.clients-td-status{min-width:0;width:auto;vertical-align:middle;white-space:nowrap;overflow:hidden}

.org-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-size:.6875rem;font-weight:600;line-height:1.4}
.org-badge--active{background:rgba(16,185,129,.12);color:#047857;border:1px solid rgba(16,185,129,.35)}
.org-badge--inactive{background: var(--crm-hover-strong);color: var(--crm-muted);border: 1px solid var(--crm-border)}

.crm-impersonation-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: .625rem 1.25rem;
    background: linear-gradient(90deg, #fff7ed 0%, rgba(245,158,11,.18) 100%);
    border-bottom: 1px solid rgba(245,158,11,.45);
    color: #92400e;
    font-size: .8125rem;
}

.crm-impersonation-banner__content {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.crm-impersonation-banner__icon svg.lucide {
    width: 16px;
    height: 16px;
    stroke-width: 2;
    color: #d97706;
}

.crm-impersonation-banner__text strong {
    color: #78350f;
}

.crm-impersonation-banner__form {
    margin: 0;
    flex-shrink: 0;
}

.crm-impersonation-banner__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .375rem .75rem;
    border: 1px solid #f59e0b;
    border-radius: 8px;
    background: var(--crm-card);
    color: #b45309;
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
}

.crm-impersonation-banner__btn:hover {
    background: var(--crm-amber-soft);
    border-color: #d97706;
    color: #92400e;
}

/* InPost postal modal */
.inpo-postal-modal.cw-modal__dialog {
    max-width: 980px;
    min-height: min(92vh, 1080px);
    padding: 0;
    overflow: hidden;
    border-radius: 24px;
    background: radial-gradient(circle at top right, rgba(255, 214, 0, .24), transparent 34%), #fff;
}

.inpo-postal-modal .crm-modal-header {
    border-bottom: 0;
}

.inpo-postal-modal__body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-height: min(92vh, 1080px);
    overflow: auto;
    padding-top: .35rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.inpo-postal-hero {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 1rem;
    padding: 1rem;
    border-radius: 20px;
    background: linear-gradient(135deg, #ffd600 0%, #ffc400 55%, #101010 55%, #1f2937 100%);
    color: #111827;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .12);
}

.inpo-postal-hero__brand {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
}

.inpo-postal-hero__logo {
    display: inline-flex;
    width: 3.5rem;
    height: 3.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: #111827;
    color: #ffd600;
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: -.08em;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .18);
}

.inpo-postal-hero__eyebrow,
.inpo-postal-hero__title {
    margin: 0;
}

.inpo-postal-hero__eyebrow {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(17, 24, 39, .66);
}

.inpo-postal-hero__title {
    font-size: 1.22rem;
    font-weight: 900;
    color: #111827;
}

.inpo-postal-hero__track {
    display: flex;
    min-width: 13rem;
    flex-direction: column;
    justify-content: center;
    gap: .25rem;
    padding: .8rem 1rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, .94);
    color: #111827;
}

.inpo-postal-hero__track span {
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6b7280;
}

.inpo-postal-hero__track strong {
    font-size: .86rem;
}

.inpo-postal-waybill {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-top: -.2rem;
    padding: .7rem;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .08);
}

.inpo-postal-waybill.is-hidden {
    display: none;
}

.inpo-postal-waybill__items {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: .5rem;
}

.inpo-postal-waybill__group {
    display: inline-flex;
    overflow: hidden;
    align-items: stretch;
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
}

.inpo-postal-waybill__btn,
.inpo-postal-waybill__add,
.inpo-postal-waybill__open {
    padding: .5rem .8rem;
    border: 0;
    border-radius: 999px;
    font-size: .86rem;
    font-weight: 900;
    cursor: pointer;
}

.inpo-postal-waybill__btn {
    border-radius: 999px 0 0 999px;
    background: #111827;
    color: #ffd600;
}

.inpo-postal-waybill__btn.is-active {
    background: #ffd600;
    color: #111827;
    box-shadow: 0 8px 18px rgba(250, 204, 21, .28);
}

.inpo-postal-waybill__open {
    display: inline-flex;
    width: 2.25rem;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-left: 1px solid rgba(17, 24, 39, .14);
    border-radius: 0 999px 999px 0;
    background: #ffd600;
    color: #111827;
    text-decoration: none;
}

.inpo-postal-waybill__open:hover {
    background: #facc15;
}

.inpo-postal-waybill__open svg {
    width: 1rem;
    height: 1rem;
}

.inpo-postal-waybill__add {
    display: inline-flex;
    width: 2.35rem;
    height: 2.35rem;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: #ffd600;
    color: #111827;
    line-height: 1;
}

.inpo-postal-waybill__add svg {
    display: block;
    width: 1rem;
    height: 1rem;
}

.inpo-postal-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.inpo-postal-rail {
    --stage-icon-size: 1.8rem;
    --stage-icon-left: .58rem;
    --stage-line-x: calc(var(--stage-icon-left) + (var(--stage-icon-size) / 2));
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    gap: .12rem;
    padding: .75rem;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    background:
        radial-gradient(circle at 1.4rem 1.4rem, rgba(255, 214, 0, .16), transparent 30%),
        #0f172a;
    color: #fff;
}

.inpo-postal-rail__step {
    display: grid;
    position: relative;
    grid-template-columns: var(--stage-icon-size) minmax(0, 1fr);
    gap: .1rem .62rem;
    align-items: start;
    padding: .52rem var(--stage-icon-left);
    border-radius: 14px;
    background: transparent;
    transition: background .16s ease, transform .16s ease;
}

.inpo-postal-rail__step:hover {
    background: rgba(255, 255, 255, .07);
}

.inpo-postal-rail__step.is-active {
    background: rgba(255, 255, 255, .08);
}

.inpo-postal-stage__icon {
    display: inline-flex;
    width: var(--stage-icon-size);
    height: var(--stage-icon-size);
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #ffd600;
    color: #111827;
    font-size: .74rem;
    font-weight: 950;
    cursor: pointer;
}

.inpo-postal-stage__icon svg {
    width: 1rem;
    height: 1rem;
}

.inpo-postal-stage__dollar {
    display: inline-flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transform: translateY(-.02em);
}

.inpo-postal-rail__step.has-payment .inpo-postal-stage__icon {
    background: #84cc16;
    color: #0f172a;
}

.inpo-postal-rail__step.is-done .inpo-postal-stage__icon {
    background: #65a30d;
    color: #fff;
}

.inpo-postal-rail__step.is-done .inpo-postal-stage__icon svg {
    filter: drop-shadow(0 1px 0 rgba(15, 23, 42, .18));
}

.inpo-postal-rail__step.is-done.has-payment .inpo-postal-stage__icon {
    background: #84cc16;
    color: #0f172a;
}

.inpo-postal-stage__icon:hover {
    transform: scale(1.05);
}

.inpo-postal-rail__step.has-payment {
    background: rgba(132, 204, 22, .12);
    box-shadow: inset 0 0 0 1px rgba(132, 204, 22, .2);
}

.inpo-postal-rail__step strong {
    display: -webkit-box;
    overflow: hidden;
    color: rgba(255, 255, 255, .96);
    font-size: .8rem;
    font-weight: 900;
    line-height: 1.22;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.inpo-postal-rail__step small {
    grid-column: 2;
    color: rgba(255, 255, 255, .68);
    font-size: .64rem;
    line-height: 1.2;
}

.inpo-postal-rail__empty {
    margin: 0;
    color: rgba(255, 255, 255, .7);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.45;
}

.inpo-postal-stage {
    position: relative;
    padding-bottom: .35rem;
    transition: padding-bottom .16s ease;
}

.inpo-postal-stage::before {
    position: absolute;
    top: calc(.52rem + var(--stage-icon-size));
    bottom: -.9rem;
    left: var(--stage-line-x);
    width: 1px;
    background: linear-gradient(180deg, rgba(255, 214, 0, .55), rgba(255, 255, 255, .08));
    content: "";
}

.inpo-postal-stage:last-child::before {
    display: none;
}

.inpo-postal-stage:last-child {
    padding-bottom: 0;
}

.inpo-postal-stage:last-child:hover,
.inpo-postal-stage:last-child:focus-within {
    padding-bottom: 0;
}

.inpo-postal-stage-plus {
    position: absolute;
    top: calc(100% - .18rem);
    left: var(--stage-line-x);
    z-index: 2;
    display: flex;
    width: 1.08rem;
    height: 1.08rem;
    align-items: center;
    justify-content: center;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(255, 255, 255, .95);
    font-weight: 900;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.55);
    transition: opacity .16s ease, transform .16s ease, color .16s ease;
}

.inpo-postal-stage-plus svg {
    width: .82rem;
    height: .82rem;
}

.inpo-postal-stage:hover .inpo-postal-stage-plus,
.inpo-postal-stage:focus-within .inpo-postal-stage-plus {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1);
}

.inpo-postal-stage:hover,
.inpo-postal-stage:focus-within {
    padding-bottom: 1.05rem;
}

.inpo-postal-stage-plus:hover {
    background: transparent;
    color: #ffd600;
    transform: translate(-50%, -50%) scale(1.08);
}

.inpo-postal-stage__payment {
    color: #bef264 !important;
    font-weight: 900;
}

.inpo-postal-history__list--hidden {
    display: none;
}

.inpo-stage-modal[hidden] {
    display: none;
}

.inpo-stage-modal {
    position: fixed;
    z-index: 10050;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
}

.inpo-stage-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(6px);
}

.inpo-stage-modal__box {
    position: relative;
    width: min(520px, 100%);
    overflow: hidden;
    border: 1px solid rgba(255, 214, 0, .32);
    border-radius: 24px;
    background:
        linear-gradient(135deg, #111827 0 36%, #ffd600 36% 37%, #fff 37% 100%);
    box-shadow: 0 34px 80px rgba(15, 23, 42, .38);
}

.inpo-stage-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.2rem 1rem;
    color: #fff;
}

.inpo-stage-modal__head span {
    color: #ffd600;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inpo-stage-modal__head h3 {
    margin: .18rem 0 0;
    font-size: 1.08rem;
    font-weight: 950;
}

.inpo-stage-modal__head button {
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.25rem;
    cursor: pointer;
}

.inpo-stage-modal__body {
    padding: 1rem 1.2rem 1.1rem;
    background: rgba(255, 255, 255, .96);
}

.inpo-stage-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px;
    gap: .75rem;
    margin-top: .75rem;
}

.inpo-stage-textarea {
    min-height: 5.4rem;
    resize: vertical;
}

.inpo-stage-field {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.inpo-stage-field span {
    color: #475569;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.inpo-stage-upload {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    margin-top: .8rem;
    padding: .8rem;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    background: #f8fafc;
    cursor: pointer;
}

.inpo-stage-upload input {
    display: none;
}

.inpo-stage-upload__icon {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #111827;
    color: #ffd600;
}

.inpo-stage-upload__icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.inpo-stage-upload strong,
.inpo-stage-upload small {
    display: block;
}

.inpo-stage-upload strong {
    color: #0f172a;
    font-size: .88rem;
    font-weight: 900;
}

.inpo-stage-upload small {
    margin-top: .1rem;
    overflow: hidden;
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inpo-stage-confirm {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    margin-bottom: .9rem;
    padding: .82rem;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #f8fafc;
}

.inpo-stage-confirm__icon {
    display: inline-flex;
    width: 2.65rem;
    height: 2.65rem;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: #111827;
    color: #ffd600;
}

.inpo-stage-confirm__icon svg {
    width: 1.2rem;
    height: 1.2rem;
}

.inpo-stage-confirm p,
.inpo-stage-confirm strong {
    margin: 0;
}

.inpo-stage-confirm p {
    color: #64748b;
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.inpo-stage-confirm strong {
    display: block;
    margin-top: .14rem;
    color: #0f172a;
    font-size: .96rem;
    font-weight: 950;
}

.inpo-stage-modal__error {
    margin: .75rem 0 0;
    color: #dc2626;
    font-size: .82rem;
    font-weight: 800;
}

.inpo-stage-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: .65rem;
    padding: 1rem 1.2rem;
    background: #f8fafc;
}

.inpo-stage-modal__cancel,
.inpo-stage-modal__submit {
    padding: .65rem 1rem;
    border: 0;
    border-radius: 999px;
    font-weight: 900;
    cursor: pointer;
}

.inpo-stage-modal__cancel {
    background: #e2e8f0;
    color: #0f172a;
}

.inpo-stage-modal__submit {
    background: #111827;
    color: #ffd600;
}

.inpo-stage-modal__submit:disabled {
    cursor: not-allowed;
    opacity: .6;
}

.inpo-postal-form__stack {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.inpo-postal-panel {
    padding: 1.12rem;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 18px 44px rgba(15, 23, 42, .06);
}

.inpo-postal-panel__head {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.inpo-postal-panel__head > span {
    display: inline-flex;
    width: 2.35rem;
    height: 2.35rem;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #fff7cc;
    color: #111827;
}

.inpo-postal-panel__head svg {
    width: 1.15rem;
    height: 1.15rem;
}

.inpo-postal-panel__head h4,
.inpo-postal-panel__head p {
    margin: 0;
}

.inpo-postal-panel__head h4 {
    font-size: .98rem;
    font-weight: 900;
    color: #111827;
}

.inpo-postal-panel__head p {
    margin-top: .2rem;
    color: #64748b;
    font-size: .78rem;
}

.inpo-postal-field {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.inpo-postal-field--wide {
    grid-column: 1 / -1;
}

.inpo-postal-field > span,
.inpo-postal-route-card__point small {
    color: #475569;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.inpo-postal-modal .crm-input {
    border-radius: 12px;
}

.inpo-postal-modal .crm-input:focus {
    border-color: #111827;
    box-shadow: 0 0 0 3px rgba(255, 214, 0, .36);
}

.inpo-postal-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1rem;
}

.inpo-postal-form__grid--tariff {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: end;
}

.inpo-postal-form__grid--tariff .inpo-postal-field--price,
.inpo-postal-form__grid--tariff .inpo-postal-field--value {
    grid-column: span 3;
}

.inpo-postal-form__grid--tariff .inpo-postal-field--type,
.inpo-postal-form__grid--tariff .inpo-postal-field--payer,
.inpo-postal-form__grid--tariff .inpo-postal-field--currency {
    grid-column: span 2;
}

.inpo-postal-field--price .crm-input {
    font-weight: 900;
    background: #fff8c7;
    border-color: #fde68a;
}

.inpo-postal-price-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.7rem;
    gap: .5rem;
    align-items: center;
}

.inpo-postal-price-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.7rem;
    height: 2.7rem;
    border: 0;
    border-radius: 14px;
    background: #111827;
    color: #ffd600;
    cursor: pointer;
    box-shadow: 0 12px 24px rgba(15, 23, 42, .14);
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.inpo-postal-price-save:hover {
    background: #020617;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .2);
    transform: translateY(-1px);
}

.inpo-postal-price-save:active {
    transform: translateY(0) scale(.96);
}

.inpo-postal-price-save svg {
    width: 1.1rem;
    height: 1.1rem;
}

.inpo-postal-methods {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .9rem;
}

.inpo-postal-method {
    display: grid;
    grid-template-columns: 2.8rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    width: 100%;
    padding: .85rem .9rem;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
    color: #0f172a;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.inpo-postal-method:hover {
    transform: translateY(-1px);
    border-color: #facc15;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
}

.inpo-postal-method.is-active {
    border-color: #ffd600;
    background: linear-gradient(135deg, #fff8c7 0%, #fff 58%, #f8fafc 100%);
    box-shadow: 0 18px 38px rgba(250, 204, 21, .22);
}

.inpo-postal-method__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 16px;
    background: #111827;
    color: #ffd600;
}

.inpo-postal-method__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.inpo-postal-method__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .12rem;
}

.inpo-postal-method__body strong {
    font-size: .92rem;
    font-weight: 900;
}

.inpo-postal-method__body small {
    color: #64748b;
    font-size: .76rem;
    font-weight: 700;
}

.inpo-postal-method b {
    padding: .32rem .55rem;
    border-radius: 999px;
    background: #111827;
    color: #ffd600;
    font-size: .78rem;
    white-space: nowrap;
}

.inpo-postal-methods__hint {
    margin: 0;
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}

.inpo-postal-tariff-save__state {
    min-width: 4rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 900;
}

.inpo-postal-tariff-save__state.is-saved {
    color: #16a34a;
}

.inpo-postal-tariff-save__state.is-error {
    color: #dc2626;
}

.inpo-postal-route-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1fr);
    align-items: end;
    gap: 1rem;
    margin: 1rem 0 1.08rem;
    padding: 1rem;
    border-radius: 16px;
    background: repeating-linear-gradient(135deg, #fff 0 12px, #fffbeb 12px 24px);
    border: 1px solid #fde68a;
}

.inpo-postal-route-card__point {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.inpo-postal-city-wrap {
    position: relative;
}

.inpo-postal-city-suggest {
    z-index: 40;
}

.inpo-postal-route-card__line {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding-bottom: .72rem;
    color: #111827;
}

.inpo-postal-route-card__line span {
    height: 2px;
    flex: 1;
    background: repeating-linear-gradient(90deg, #111827 0 7px, transparent 7px 12px);
}

.inpo-postal-route-card__line svg {
    width: 1.45rem;
    height: 1.45rem;
    padding: .25rem;
    border-radius: 999px;
    background: #ffd600;
}

.inpo-postal-result {
    margin-top: .25rem;
    padding: 1rem;
    border-radius: 16px;
    background: #111827;
    border: 1px solid #111827;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .16);
}

.inpo-postal-result.is-hidden {
    display: none;
}

.inpo-postal-result__label {
    margin: 0 0 .5rem;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #ffd600;
}

.inpo-postal-result__hint {
    margin: 0;
    font-size: .9rem;
    line-height: 1.45;
    color: #f8fafc;
}

.inpo-postal-result__row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

.inpo-postal-result__row .crm-input {
    flex: 1;
    min-width: 12rem;
}

.inpo-postal-history__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .65rem;
}

.inpo-postal-history__title {
    margin: 0;
    font-size: .92rem;
    font-weight: 900;
    color: #111827;
}

.inpo-postal-history__list {
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.inpo-postal-history__empty {
    margin: 0;
    padding: 1.15rem;
    text-align: center;
    color: var(--crm-muted);
    font-size: .85rem;
    border: 1px dashed #facc15;
    border-radius: 16px;
    background: #fffbeb;
}

.inpo-postal-card {
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-left: 6px solid #ffd600;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.inpo-postal-card__top {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: center;
    margin-bottom: .55rem;
}

.inpo-postal-card__service,
.inpo-postal-card__recipient {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
}

.inpo-postal-card__service {
    padding: .22rem .55rem;
    background: #111827;
    color: #ffd600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.inpo-postal-card__recipient {
    min-width: 0;
    color: #64748b;
}

.inpo-postal-card__route {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    font-size: .95rem;
    color: #111827;
    font-weight: 800;
}

.inpo-postal-card__address {
    margin-top: .35rem;
    color: #64748b;
    font-size: .82rem;
    line-height: 1.35;
}

.inpo-postal-card__operators {
    margin-top: .35rem;
    color: #111827;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.35;
}

.inpo-postal-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .55rem;
}

.inpo-postal-card__tariff {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .55rem;
    align-items: end;
    margin-top: .75rem;
    padding: .75rem;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: linear-gradient(135deg, #f8fafc 0%, #fff 100%);
}

.inpo-postal-card__tariff label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .25rem;
}

.inpo-postal-card__tariff label span {
    color: #64748b;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.inpo-postal-card__tariff .crm-input {
    min-height: 2.35rem;
    padding: .45rem .55rem;
    border-radius: 10px;
    font-size: .8rem;
}

.inpo-postal-card__save {
    min-height: 2.35rem;
    padding: .45rem .7rem;
    border: 0;
    border-radius: 10px;
    background: #111827;
    color: #ffd600;
    font-size: .78rem;
    font-weight: 900;
    cursor: pointer;
}

.inpo-postal-card__save:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.inpo-postal-card__tariff small {
    align-self: center;
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
}

.inpo-postal-card__num,
.inpo-postal-card__price,
.inpo-postal-card__tag {
    display: inline-flex;
    padding: .2rem .5rem;
    border-radius: 6px;
    font-size: .72rem;
    font-weight: 700;
}

.inpo-postal-card__num {
    background: #111827;
    color: #fff;
    letter-spacing: .04em;
}

.inpo-postal-card__price {
    background: #ffd600;
    color: #111827;
}

.inpo-postal-card__tag {
    background: #ede9fe;
    color: #5b21b6;
}

.inpo-postal-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    margin-top: .65rem;
}

.inpo-postal-card__status {
    min-width: 10rem;
    flex: 1;
}

.inpo-postal-card__open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: .55rem .95rem;
    border-radius: 12px;
    background: #ffd600;
    color: #111827;
    font-size: .78rem;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 10px 20px rgba(250, 204, 21, .25);
}

.inpo-postal-card__open:hover {
    background: #111827;
    color: #ffd600;
}

.crm-btn--sm {
    padding: .35rem .65rem;
    font-size: .78rem;
}

@media (max-width: 640px) {
    .inpo-postal-hero {
        flex-direction: column;
    }

    .inpo-postal-waybill {
        align-items: stretch;
        flex-direction: column;
    }

    .inpo-postal-layout,
    .inpo-postal-route-card {
        grid-template-columns: 1fr;
    }

    .inpo-postal-route-card {
        gap: .8rem;
        padding: .9rem;
    }

    .inpo-postal-route-card__line {
        padding: .15rem 0;
    }

    .inpo-postal-rail {
        max-height: 320px;
        overflow: auto;
    }

    .inpo-postal-rail {
        position: static;
    }

    .inpo-postal-form__grid {
        grid-template-columns: 1fr;
    }

    .inpo-postal-form__grid--tariff {
        grid-template-columns: 1fr;
    }

    .inpo-postal-form__grid--tariff .inpo-postal-field {
        grid-column: auto;
    }

    .inpo-postal-methods {
        grid-template-columns: 1fr;
    }

    .inpo-postal-card__tariff {
        grid-template-columns: 1fr;
    }
}

/* Logistics — Hotel Booking (premium split layout) */
.crm-booking-modal.cw-modal__dialog {
    max-width: 980px;
    padding: 0;
    overflow: hidden;
    border-radius: 22px;
    background: var(--crm-card, #fff);
}

.crm-booking-shell {
    display: flex;
    flex-direction: column;
    max-height: min(88vh, 860px);
}

.crm-booking-topbar {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem 1.15rem .9rem;
    background:
        linear-gradient(180deg, rgba(99, 102, 241, .1) 0%, rgba(99, 102, 241, .02) 100%),
        var(--crm-card, #fff);
    border-bottom: 1px solid var(--crm-border, #e2e8f0);
    position: relative;
}

.crm-booking-topbar__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    position: relative;
    z-index: 1;
}

.crm-booking-topbar__row--meta {
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem .85rem;
    padding-top: .1rem;
}

.crm-booking-topbar__brand {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
    flex: 1;
}

.crm-booking-topbar__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(145deg, #6366f1 0%, #4f46e5 100%);
    color: #fff;
    box-shadow: 0 6px 16px rgba(79, 70, 229, .28);
    flex-shrink: 0;
}

.crm-booking-topbar__icon svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
}

.crm-booking-topbar__eyebrow {
    margin: 0 0 .12rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6366f1;
}

.crm-booking-topbar__title {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--crm-text, #0f172a);
    line-height: 1.15;
}

.crm-booking-topbar__client {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    font-size: .8rem;
    color: var(--crm-muted, #64748b);
    min-width: 0;
}

.crm-booking-topbar__client-icon {
    display: grid;
    place-items: center;
    color: #94a3b8;
}

.crm-booking-topbar__client-icon svg {
    width: 14px;
    height: 14px;
}

.crm-booking-topbar__client-name {
    color: var(--crm-text, #334155);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
}

.crm-booking-topbar__client-sep {
    opacity: .55;
}

.crm-booking-topbar__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-left: auto;
}

.crm-booking-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .72rem;
    font-weight: 600;
    padding: .28rem .55rem;
    border-radius: 999px;
    background: var(--crm-card, #fff);
    border: 1px solid var(--crm-border, #e2e8f0);
    color: var(--crm-text, #475569);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.crm-booking-chip__icon {
    display: grid;
    place-items: center;
    color: #6366f1;
}

.crm-booking-chip__icon svg {
    width: 12px;
    height: 12px;
}

.crm-booking-topbar__close {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--crm-border, #e2e8f0);
    border-radius: 10px;
    background: var(--crm-card, #fff);
    color: var(--crm-muted, #64748b);
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
    flex-shrink: 0;
}

.crm-booking-topbar__close svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
}

.crm-booking-topbar__close:hover {
    background: rgba(99, 102, 241, .08);
    border-color: rgba(99, 102, 241, .25);
    color: var(--crm-text, #0f172a);
}

.crm-booking-layout {
    display: grid;
    grid-template-columns: 2fr 3fr;
    min-height: 420px;
    flex: 1;
    overflow: hidden;
}

.crm-booking-sidebar {
    padding: .85rem .9rem 1rem;
    border-right: 1px solid var(--crm-border, #e2e8f0);
    background:
        linear-gradient(180deg, rgba(99, 102, 241, .04) 0%, transparent 80px),
        linear-gradient(180deg, rgba(248, 250, 252, .98) 0%, rgba(241, 245, 249, .75) 100%);
    overflow-y: auto;
}

.crm-booking-sidebar__head {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .65rem;
}

.crm-booking-sidebar__step {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    font-size: .65rem;
    font-weight: 800;
    color: #6366f1;
    background: rgba(99, 102, 241, .12);
    border: 1px solid rgba(99, 102, 241, .18);
    flex-shrink: 0;
}

.crm-booking-sidebar__title {
    margin: 0;
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--crm-text, #0f172a);
}

.crm-booking-form {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.crm-booking-form__panel {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: .65rem .7rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, .78);
    border: 1px solid var(--crm-border, #e2e8f0);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.crm-booking-form__row {
    display: grid;
    gap: .45rem;
}

.crm-booking-form__row--2 {
    grid-template-columns: 1fr 1fr;
}

.crm-booking-form__row--dates {
    grid-template-columns: 1fr auto 1fr;
    align-items: end;
    gap: .3rem;
}

.crm-booking-form__split {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-top: .1rem;
}

.crm-booking-form__split-label {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #6366f1;
    white-space: nowrap;
}

.crm-booking-form__split-line {
    flex: 1;
    height: 1px;
    background: var(--crm-border, #e2e8f0);
}

.crm-booking-form__dates-sep {
    display: grid;
    place-items: center;
    padding-bottom: .5rem;
    color: var(--crm-muted, #94a3b8);
}

.crm-booking-form__dates-sep svg {
    width: 13px;
    height: 13px;
}

.crm-booking-mini-label {
    display: block;
    font-size: .68rem;
    font-weight: 600;
    color: var(--crm-muted, #64748b);
    margin-bottom: .28rem;
}

.crm-booking-nights {
    font-size: .62rem;
    font-weight: 700;
    padding: .15rem .45rem;
    border-radius: 999px;
    background: rgba(99, 102, 241, .1);
    color: #4338ca;
    white-space: nowrap;
}

.crm-booking-nights.is-invalid {
    background: rgba(239, 68, 68, .12);
    color: #dc2626;
}

.crm-booking-nights.is-warning {
    background: rgba(245, 158, 11, .14);
    color: #b45309;
}

.crm-booking-field--compact {
    min-width: 0;
}

.crm-booking-field__input,
.crm-booking-field__select {
    width: 100%;
    padding: .48rem .6rem;
    border: 1px solid var(--crm-border, #e2e8f0);
    border-radius: 10px;
    background: var(--crm-card, #fff);
    color: var(--crm-text, #0f172a);
    font-size: .8rem;
    font-weight: 500;
    transition: border-color .15s, box-shadow .15s;
}

.crm-booking-field__input--date {
    padding: .45rem .4rem;
    font-size: .76rem;
    color-scheme: light dark;
}

.crm-booking-field__input--date::-webkit-calendar-picker-indicator {
    opacity: .55;
    cursor: pointer;
    width: 14px;
    height: 14px;
    margin: 0;
}

.crm-booking-field__input--guest {
    text-transform: capitalize;
}

.crm-booking-form .crm-select-wrapper {
    width: 100%;
    min-width: 0;
}

.crm-booking-form .crm-select-trigger {
    width: 100%;
    min-height: 36px;
    padding: .48rem .55rem;
    border-radius: 10px;
    border: 1px solid var(--crm-border, #e2e8f0);
    background: var(--crm-card, #fff);
    font-size: .8rem;
    font-weight: 500;
    color: var(--crm-text, #0f172a);
}

.crm-booking-form .crm-select-trigger__label {
    font-size: .8rem;
}

.crm-booking-form .crm-select-trigger:hover:not(:disabled) {
    border-color: rgba(99, 102, 241, .35);
}

.crm-booking-form .crm-select-trigger:focus-visible {
    outline: none;
    border-color: #6366f1;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, .14);
}

.crm-booking-form .crm-select-menu {
    z-index: 9100;
}

.crm-booking-field__input:focus {
    outline: none;
    border-color: #6366f1;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, .14);
}

.crm-booking-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    width: 100%;
    padding: .65rem .85rem;
    border: none;
    border-radius: 12px;
    font-size: .82rem;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
    box-shadow: 0 6px 18px rgba(79, 70, 229, .28);
    transition: transform .15s, box-shadow .15s, opacity .15s;
}

.crm-booking-cta:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(79, 70, 229, .34);
}

.crm-booking-cta:disabled {
    opacity: .65;
    cursor: wait;
}

.crm-booking-cta__icon {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: rgba(255, 255, 255, .16);
}

.crm-booking-cta__icon svg {
    width: 14px;
    height: 14px;
}

.crm-booking-main {
    position: relative;
    padding: 1.1rem 1.2rem;
    overflow-y: auto;
    background: var(--crm-card, #fff);
}

.crm-booking-workspace.is-hidden {
    display: none;
}

.crm-booking-workspace__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .85rem;
}

.crm-booking-workspace__title {
    margin: 0;
    font-size: .92rem;
    font-weight: 700;
    color: var(--crm-text, #0f172a);
}

.crm-booking-workspace__count {
    font-size: .75rem;
    font-weight: 600;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: rgba(99, 102, 241, .1);
    color: #4338ca;
}

.crm-booking-idle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 300px;
    padding: 1rem 1.1rem;
}

.crm-booking-idle__orb {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 30% 30%, rgba(99, 102, 241, .25), rgba(45, 156, 219, .08));
    border: 1px solid rgba(99, 102, 241, .15);
    color: #6366f1;
    margin-bottom: 1rem;
    animation: crm-booking-float 4s ease-in-out infinite;
}

.crm-booking-idle__orb svg {
    width: 36px;
    height: 36px;
}

.crm-booking-idle__title {
    margin: 0 0 .45rem;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--crm-text, #0f172a);
}

.crm-booking-idle__text {
    margin: 0;
    max-width: 100%;
    font-size: .8rem;
    line-height: 1.55;
    color: var(--crm-muted, #64748b);
}

.crm-booking-idle__features {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    text-align: left;
}

.crm-booking-idle__features li {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .8rem;
    color: var(--crm-text, #334155);
    padding: .45rem .65rem;
    border-radius: 10px;
    background: rgba(248, 250, 252, .9);
    border: 1px solid var(--crm-border, #e2e8f0);
}

.crm-booking-idle__features span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: rgba(99, 102, 241, .1);
    color: #6366f1;
}

.crm-booking-idle__features span svg {
    width: 15px;
    height: 15px;
}

.crm-booking-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 340px;
    text-align: center;
    padding: 1.5rem;
}

.crm-booking-loading__rings {
    position: relative;
    width: 72px;
    height: 72px;
    margin-bottom: 1.1rem;
}

.crm-booking-loading__rings span {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: #6366f1;
    animation: crm-booking-spin 1.1s linear infinite;
}

.crm-booking-loading__rings span:nth-child(2) {
    inset: 8px;
    border-top-color: #2d9cdb;
    animation-duration: 1.4s;
    animation-direction: reverse;
}

.crm-booking-loading__rings span:nth-child(3) {
    inset: 16px;
    border-top-color: #10b981;
    animation-duration: 1.8s;
}

.crm-booking-loading__title {
    margin: 0 0 .35rem;
    font-size: 1rem;
    font-weight: 800;
    color: var(--crm-text, #0f172a);
}

.crm-booking-loading__text {
    margin: 0;
    max-width: 320px;
    font-size: .82rem;
    color: var(--crm-muted, #64748b);
    line-height: 1.5;
}

.crm-booking-hotels__list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.crm-booking-hotel-card {
    display: grid;
    grid-template-columns: 168px 1fr auto;
    gap: 0;
    border: 2px solid var(--crm-border, #e2e8f0);
    border-radius: 16px;
    overflow: hidden;
    background: var(--crm-card, #fff);
    cursor: pointer;
    transition: border-color .18s, box-shadow .18s, transform .18s;
    position: relative;
}

.crm-booking-hotel-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.crm-booking-hotel-card.is-selected {
    border-color: #6366f1;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .18), 0 12px 28px rgba(99, 102, 241, .12);
}

.crm-booking-hotel-card__media {
    position: relative;
    background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
    min-height: 140px;
}

.crm-booking-hotel-card__img {
    width: 100%;
    height: 100%;
    min-height: 140px;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.crm-booking-hotel-card__img--placeholder,
.crm-booking-hotel-card__img.is-broken {
    background: linear-gradient(135deg, #6366f1 0%, #2d9cdb 50%, #10b981 100%);
    min-height: 140px;
}

.crm-booking-hotel-card__badge {
    position: absolute;
    top: .55rem;
    left: .55rem;
    font-size: .65rem;
    font-weight: 800;
    padding: .2rem .45rem;
    border-radius: 6px;
    background: rgba(15, 23, 42, .72);
    color: #fbbf24;
    letter-spacing: .04em;
}

.crm-booking-hotel-card__body {
    padding: .85rem 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.crm-booking-hotel-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
}

.crm-booking-hotel-card__name {
    margin: 0;
    font-size: .98rem;
    font-weight: 800;
    color: var(--crm-text, #0f172a);
    line-height: 1.25;
}

.crm-booking-hotel-card__stars {
    color: #f59e0b;
    font-size: .75rem;
    white-space: nowrap;
    flex-shrink: 0;
}

.crm-booking-hotel-card__address,
.crm-booking-hotel-card__room {
    font-size: .78rem;
    color: var(--crm-muted, #64748b);
    margin: .3rem 0 0;
    line-height: 1.4;
}

.crm-booking-hotel-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .55rem;
}

.crm-booking-hotel-card__tag {
    font-size: .66rem;
    font-weight: 600;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: rgba(99, 102, 241, .1);
    color: #4338ca;
}

.crm-booking-hotel-card__price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    padding: .85rem 1rem;
    border-left: 1px solid var(--crm-border, #e2e8f0);
    background: rgba(248, 250, 252, .6);
    min-width: 120px;
}

.crm-booking-hotel-card__price strong {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--crm-text, #0f172a);
}

.crm-booking-hotel-card__price span {
    font-size: .72rem;
    color: var(--crm-muted, #64748b);
    margin-top: .2rem;
    text-align: right;
}

.crm-booking-hotel-card__check {
    position: absolute;
    top: .65rem;
    right: .65rem;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid var(--crm-border, #cbd5e1);
    background: var(--crm-card, #fff);
    display: grid;
    place-items: center;
    opacity: 0;
    transform: scale(.8);
    transition: opacity .15s, transform .15s, background .15s, border-color .15s;
}

.crm-booking-hotel-card.is-selected .crm-booking-hotel-card__check {
    opacity: 1;
    transform: scale(1);
    background: #6366f1;
    border-color: #6366f1;
    color: #fff;
}

.crm-booking-hotel-card__check svg {
    width: 14px;
    height: 14px;
}

.crm-booking-error,
.crm-booking-success {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    min-height: 120px;
}

.crm-booking-error {
    background: linear-gradient(135deg, rgba(239, 68, 68, .08), rgba(249, 115, 22, .06));
    border: 1px solid rgba(239, 68, 68, .22);
}

.crm-booking-error__icon {
    color: #ef4444;
    flex-shrink: 0;
}

.crm-booking-error__icon svg {
    width: 28px;
    height: 28px;
}

.crm-booking-error__title {
    margin: 0 0 .25rem;
    font-size: .92rem;
    font-weight: 800;
    color: #b91c1c;
}

.crm-booking-error__text {
    margin: 0;
    font-size: .82rem;
    color: #991b1b;
    line-height: 1.45;
}

.crm-booking-error__retry {
    margin-left: auto;
    align-self: center;
    padding: .5rem .85rem;
    border: none;
    border-radius: 10px;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    color: #fff;
    background: #ef4444;
    white-space: nowrap;
}

.crm-booking-success {
    background: linear-gradient(135deg, rgba(16, 185, 129, .1), rgba(45, 156, 219, .08));
    border: 1px solid rgba(16, 185, 129, .28);
}

.crm-booking-success__icon {
    color: #10b981;
    flex-shrink: 0;
}

.crm-booking-success__icon svg {
    width: 32px;
    height: 32px;
}

.crm-booking-success__title {
    margin: 0 0 .25rem;
    font-size: .95rem;
    font-weight: 800;
    color: #047857;
}

.crm-booking-success__hint {
    margin: 0;
    font-size: .82rem;
    color: #065f46;
    line-height: 1.45;
}

.crm-booking-success__pdf {
    margin-left: auto;
    align-self: center;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem .9rem;
    border-radius: 12px;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(135deg, #10b981, #059669);
    white-space: nowrap;
}

.crm-booking-success__pdf svg {
    width: 16px;
    height: 16px;
}

.crm-booking-footer {
    border-top: 1px solid var(--crm-border, #e2e8f0);
    background: linear-gradient(180deg, rgba(248, 250, 252, .92) 0%, rgba(241, 245, 249, .85) 100%);
}

.crm-booking-footer__bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: .65rem 1.1rem;
}

.crm-booking-history-toggle {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
    flex: 1;
    padding: .45rem .55rem;
    margin: -.45rem 0;
    border: none;
    border-radius: 12px;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background .15s;
}

.crm-booking-history-toggle:hover {
    background: rgba(99, 102, 241, .06);
}

.crm-booking-history-toggle__icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(99, 102, 241, .1);
    color: #6366f1;
    flex-shrink: 0;
}

.crm-booking-history-toggle__icon svg {
    width: 16px;
    height: 16px;
}

.crm-booking-history-toggle__text {
    display: flex;
    flex-direction: column;
    gap: .08rem;
    min-width: 0;
}

.crm-booking-history-toggle__title {
    font-size: .82rem;
    font-weight: 700;
    color: var(--crm-text, #0f172a);
    line-height: 1.2;
}

.crm-booking-history-toggle__sub {
    font-size: .7rem;
    color: var(--crm-muted, #64748b);
    line-height: 1.3;
}

.crm-booking-history-toggle__chev {
    display: grid;
    place-items: center;
    margin-left: .35rem;
    color: var(--crm-muted, #94a3b8);
    flex-shrink: 0;
    transition: transform .2s;
}

.crm-booking-history-toggle__chev svg {
    width: 16px;
    height: 16px;
}

.crm-booking-history-toggle[aria-expanded="true"] .crm-booking-history-toggle__chev {
    transform: rotate(180deg);
}

.crm-booking-history-panel {
    max-height: 200px;
    overflow: hidden;
    border-top: 1px solid var(--crm-border, #e2e8f0);
    transition: max-height .25s ease, opacity .2s, border-color .2s;
    opacity: 1;
}

.crm-booking-history-panel.is-collapsed {
    max-height: 0;
    opacity: 0;
    border-top-color: transparent;
}

.crm-booking-history-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .55rem 1.1rem .4rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--crm-muted, #64748b);
}

.crm-booking-history-panel__refresh {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border: none;
    background: none;
    font-size: .72rem;
    font-weight: 700;
    color: #6366f1;
    cursor: pointer;
    padding: .2rem .35rem;
    border-radius: 8px;
    transition: background .15s;
}

.crm-booking-history-panel__refresh:hover {
    background: rgba(99, 102, 241, .08);
}

.crm-booking-history-panel__refresh svg {
    width: 13px;
    height: 13px;
}

.crm-booking-history__list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: 0 1.1rem .75rem;
    max-height: 140px;
    overflow-y: auto;
}

.crm-booking-history__empty {
    font-size: .78rem;
    color: var(--crm-muted, #64748b);
    padding: .35rem 0;
}

.crm-booking-history-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .65rem;
    align-items: center;
    padding: .6rem .75rem;
    border: 1px solid var(--crm-border, #e2e8f0);
    border-radius: 12px;
    background: var(--crm-card, #fff);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.crm-booking-history-card strong {
    display: block;
    font-size: .82rem;
    color: var(--crm-text, #0f172a);
}

.crm-booking-history-card__meta,
.crm-booking-history-card__dates {
    display: block;
    font-size: .72rem;
    color: var(--crm-muted, #64748b);
}

.crm-booking-history-card__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .3rem;
}

.crm-booking-history-card__ref {
    font-size: .68rem;
    font-family: ui-monospace, monospace;
    color: var(--crm-muted, #64748b);
}

.crm-booking-footer__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
    flex-shrink: 0;
}

.crm-booking-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-height: 38px;
    padding: .5rem .9rem;
    border-radius: 11px;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s, border-color .15s, box-shadow .15s, transform .15s, opacity .15s;
    white-space: nowrap;
}

.crm-booking-btn--ghost {
    border: 1px solid var(--crm-border, #e2e8f0);
    background: var(--crm-card, #fff);
    color: var(--crm-text-secondary, #475569);
}

.crm-booking-btn--ghost:hover {
    border-color: rgba(99, 102, 241, .3);
    background: rgba(99, 102, 241, .04);
    color: var(--crm-text, #0f172a);
}

.crm-booking-btn--primary {
    border: none;
    background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
    color: #fff;
    box-shadow: 0 6px 18px rgba(79, 70, 229, .28);
}

.crm-booking-btn--primary:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(79, 70, 229, .34);
}

.crm-booking-btn--primary:disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.crm-booking-btn__icon {
    display: grid;
    place-items: center;
}

.crm-booking-btn__icon svg {
    width: 15px;
    height: 15px;
}

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

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

html.theme-dark .crm-booking-topbar {
    background:
        linear-gradient(180deg, rgba(99, 102, 241, .14) 0%, rgba(15, 23, 42, .2) 100%),
        var(--crm-card, #0f172a);
}

html.theme-dark .crm-booking-topbar__eyebrow {
    color: #a5b4fc;
}

html.theme-dark .crm-booking-chip {
    background: rgba(30, 41, 59, .85);
    border-color: rgba(71, 85, 105, .55);
    color: #cbd5e1;
}

html.theme-dark .crm-booking-topbar__close {
    background: rgba(30, 41, 59, .9);
    border-color: rgba(71, 85, 105, .6);
    color: #cbd5e1;
}

html.theme-dark .crm-booking-topbar__close:hover {
    background: rgba(51, 65, 85, .95);
    color: #f8fafc;
}

html.theme-dark .crm-booking-topbar__client-name {
    color: #e2e8f0;
}

html.theme-dark .crm-booking-sidebar {
    background:
        linear-gradient(180deg, rgba(99, 102, 241, .08) 0%, transparent 140px),
        linear-gradient(180deg, rgba(15, 23, 42, .98) 0%, rgba(30, 41, 59, .72) 100%);
}

html.theme-dark .crm-booking-sidebar__head {
    border-bottom: none;
}

html.theme-dark .crm-booking-form__panel {
    background: rgba(30, 41, 59, .55);
    border-color: rgba(71, 85, 105, .55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
}

html.theme-dark .crm-booking-form__split-label {
    color: #a5b4fc;
}

html.theme-dark .crm-booking-form__split-line {
    background: rgba(71, 85, 105, .55);
}

html.theme-dark .crm-booking-mini-label {
    color: #94a3b8;
}

html.theme-dark .crm-booking-nights {
    background: rgba(99, 102, 241, .18);
    color: #c7d2fe;
}

html.theme-dark .crm-booking-field__input,
html.theme-dark .crm-booking-field__select,
html.theme-dark .crm-booking-form .crm-select-trigger {
    background: rgba(15, 23, 42, .85);
    border-color: rgba(71, 85, 105, .65);
    color: #f1f5f9;
}

html.theme-dark .crm-booking-form .crm-select-trigger:hover:not(:disabled) {
    border-color: rgba(129, 140, 248, .45);
    background: rgba(15, 23, 42, .95);
}

html.theme-dark .crm-booking-field__input--date {
    color-scheme: dark;
}

html.theme-dark .crm-booking-idle__features li {
    background: rgba(30, 41, 59, .7);
}

html.theme-dark .crm-booking-hotel-card__price {
    background: rgba(15, 23, 42, .5);
}

html.theme-dark .crm-booking-footer {
    background: linear-gradient(180deg, rgba(15, 23, 42, .92) 0%, rgba(30, 41, 59, .75) 100%);
}

html.theme-dark .crm-booking-history-toggle:hover {
    background: rgba(99, 102, 241, .1);
}

html.theme-dark .crm-booking-history-toggle__icon {
    background: rgba(99, 102, 241, .18);
    color: #a5b4fc;
}

html.theme-dark .crm-booking-history-toggle__title {
    color: #f1f5f9;
}

html.theme-dark .crm-booking-history-toggle__sub {
    color: #94a3b8;
}

html.theme-dark .crm-booking-history-panel {
    border-top-color: rgba(71, 85, 105, .55);
}

html.theme-dark .crm-booking-history-card {
    background: rgba(30, 41, 59, .75);
    border-color: rgba(71, 85, 105, .55);
}

html.theme-dark .crm-booking-btn--ghost {
    background: rgba(30, 41, 59, .85);
    border-color: rgba(71, 85, 105, .65);
    color: #cbd5e1;
}

html.theme-dark .crm-booking-btn--ghost:hover {
    background: rgba(51, 65, 85, .9);
    border-color: rgba(129, 140, 248, .35);
    color: #f8fafc;
}

@media (max-width: 820px) {
    .crm-booking-footer__bar {
        flex-direction: column;
        align-items: stretch;
        gap: .65rem;
    }

    .crm-booking-footer__actions {
        justify-content: stretch;
    }

    .crm-booking-footer__actions .crm-booking-btn {
        flex: 1;
    }

    .crm-booking-topbar__row--meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .crm-booking-topbar__chips {
        margin-left: 0;
    }

    .crm-booking-layout {
        grid-template-columns: 1fr;
    }

    .crm-booking-sidebar {
        border-right: none;
        border-bottom: 1px solid var(--crm-border, #e2e8f0);
    }

    .crm-booking-hotel-card {
        grid-template-columns: 1fr;
    }

    .crm-booking-hotel-card__price {
        border-left: none;
        border-top: 1px solid var(--crm-border, #e2e8f0);
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

@media (max-width: 640px) {
    .crm-booking-form__row--2,
    .crm-booking-form__row--dates {
        grid-template-columns: 1fr;
    }

    .crm-booking-form__dates-sep {
        display: none;
    }
}

/* ── Airline e-ticket modal (wide boarding pass) ── */
#air-ticket-modal .cw-modal__dialog.crm-air-modal,
.crm-air-modal.cw-modal__dialog.crm-modal {
    max-width: min(1380px, calc(100vw - 48px));
    width: 100%;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: visible;
}
.crm-air-ticket-shell {
    background: #fff;
    border-radius: 20px;
    overflow: visible;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.32);
    color: #1b1b1b;
    font-family: Inter, system-ui, sans-serif;
}
.crm-air-ticket-body {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) 20px minmax(340px, 0.65fr);
    align-items: stretch;
    min-height: 520px;
}
.crm-air-ticket-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.crm-air-ticket-tear {
    background:
        radial-gradient(circle at 50% 0, #f4f5f7 7px, transparent 7px) repeat-y center top / 20px 18px,
        linear-gradient(90deg, #fff 0, #f8fafc 50%, #f1f5f9 100%);
    border-left: 2px dashed #e2e8f0;
    border-right: 2px dashed #e2e8f0;
}
.crm-air-boarding__hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    background: #1b1b1b;
    color: #fff;
    border-radius: 20px 20px 0 0;
}
.crm-air-boarding__logo {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}
.crm-air-boarding__badge {
    display: block;
    margin-top: 2px;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.72;
}
.crm-air-boarding__close {
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.crm-air-boarding__hero {
    padding: 28px 36px 26px;
    background: linear-gradient(135deg, #c8102e 0%, #e63946 55%, #ff6b6b 100%);
    color: #fff;
    overflow: visible;
    position: relative;
    z-index: 3;
}
.crm-air-boarding__route {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 28px;
    align-items: center;
}
.crm-air-boarding__endpoint { min-width: 0; position: relative; }
.crm-air-boarding__endpoint--arr { text-align: right; }
.crm-air-boarding__endpoint--arr .crm-air-boarding__city-input { text-align: right; }
.crm-air-city-wrap {
    position: relative;
    margin-top: 4px;
}
.crm-air-boarding__code {
    display: block;
    font-size: clamp(2.4rem, 4vw, 3.4rem);
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.crm-air-boarding__city-label {
    display: block;
    margin-top: 6px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.82;
}
.crm-air-boarding__city-input {
    width: 100%;
    margin-top: 6px;
    padding: 8px 0;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.45);
    background: transparent;
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    outline: none;
}
.crm-air-boarding__city-input::placeholder { color: rgba(255, 255, 255, 0.55); }
.crm-air-boarding__city-input:focus { border-bottom-color: #fff; }
.crm-air-city-suggest {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    min-width: 260px;
    max-height: 240px;
    overflow-y: auto;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.22);
    z-index: 40;
    text-align: left;
}
.crm-air-city-suggest.is-open { display: block; }
.crm-air-city-suggest:not(.is-open) { display: none; }
.crm-air-city-suggest__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: none;
    border-radius: 9px;
    background: transparent;
    color: #1b1b1b;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.crm-air-city-suggest__item:hover,
.crm-air-city-suggest__item.is-active {
    background: #fef2f2;
}
.crm-air-city-suggest__main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    text-align: left;
}
.crm-air-city-suggest__city {
    font-size: 0.92rem;
    font-weight: 700;
    color: #1b1b1b;
    text-align: left;
}
.crm-air-city-suggest__meta {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.crm-air-city-suggest__code {
    flex-shrink: 0;
    padding: 4px 8px;
    border-radius: 6px;
    background: #1b1b1b;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}
.crm-air-city-suggest__empty {
    padding: 10px 12px;
    font-size: 0.82rem;
    color: #94a3b8;
}
.crm-air-boarding__path {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 140px;
    padding: 0 8px;
}
.crm-air-boarding__path-line {
    display: block;
    width: 100%;
    height: 2px;
    background: rgba(255, 255, 255, 0.45);
    position: relative;
}
.crm-air-boarding__path-line::after {
    content: '';
    position: absolute;
    right: -2px;
    top: -3px;
    border: 4px solid transparent;
    border-left: 7px solid rgba(255, 255, 255, 0.7);
}
.crm-air-boarding__plane {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
}
.crm-air-boarding__plane svg { width: 16px; height: 16px; stroke: #fff; }
.crm-air-boarding__duration {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    white-space: nowrap;
    opacity: 0.9;
}
.crm-air-boarding__perf {
    height: 14px;
    background:
        radial-gradient(circle at 0 50%, #f4f5f7 7px, transparent 7px) repeat-x left center / 18px 14px,
        linear-gradient(#fff, #fff);
    border-top: 2px dashed #e2e8f0;
    border-bottom: 2px dashed #e2e8f0;
}
.crm-air-boarding__body { padding: 24px 36px 16px; }
.crm-air-boarding__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px 18px;
}
.crm-air-boarding__field--wide { grid-column: span 2; }
.crm-air-boarding__field-label {
    display: block;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #8e8e93;
    margin-bottom: 5px;
}
.crm-air-boarding__field-input--discount {
    border-color: #fecaca;
    background: #fff5f5;
    color: #b91c1c;
    font-weight: 800;
}
.crm-air-boarding__field-input {
    width: 100%;
    min-height: 44px;
    padding: 11px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    color: #1b1b1b;
    font-size: 0.94rem;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.crm-air-boarding__field-input:hover {
    border-color: #d1d5db;
}
.crm-air-boarding__field-input:focus {
    outline: none;
    border-color: #c8102e;
    box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.12);
}
select.crm-air-boarding__field-input {
    appearance: none;
    padding-right: 38px;
    cursor: pointer;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
select.crm-air-boarding__field-input option {
    background: #fff;
    color: #1b1b1b;
}
.crm-air-boarding__field-input--discount:focus {
    border-color: #f87171;
    box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.15);
}
#air-ticket-modal .crm-air-ticket-shell,
#air-ticket-modal .crm-air-boarding__body,
#air-ticket-modal .crm-air-flights-panel {
    color-scheme: light;
}
.crm-air-boarding__tariff {
    border: none;
    margin: 14px 0 0;
    padding: 0;
}
.crm-air-boarding__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.crm-air-chip {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}
.crm-air-chip input { position: absolute; opacity: 0; pointer-events: none; }
.crm-air-chip span {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.crm-air-chip input:checked + span {
    background: #fef2f2;
    border-color: #fecaca;
    color: #b91c1c;
}
.crm-air-boarding__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}
.crm-air-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1;
    min-width: 200px;
    padding: 14px 22px;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    border: none;
}
.crm-air-btn svg { width: 16px; height: 16px; }
.crm-air-btn--primary {
    background: #c8102e;
    color: #fff;
    box-shadow: 0 6px 18px rgba(200, 16, 46, 0.28);
}
.crm-air-btn--primary:hover { background: #a50d26; }
.crm-air-btn--ghost {
    background: #f1f5f9;
    color: #334155;
    border: 1px solid #e2e8f0;
}
.crm-air-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.crm-air-boarding__stub {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 36px 18px;
    margin-top: auto;
    border-top: 1px dashed #e5e7eb;
    background: #fafafa;
}
.crm-air-boarding__barcode {
    flex: 1;
    max-width: 280px;
    height: 40px;
    background: repeating-linear-gradient(90deg, #1b1b1b 0 2px, transparent 2px 5px, #1b1b1b 5px 7px, transparent 7px 10px);
    opacity: 0.75;
}
.crm-air-boarding__stub-text {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #94a3b8;
}
.crm-air-boarding__link {
    padding: 0 36px 20px;
    border-top: 1px dashed #e5e7eb;
}
.crm-air-boarding__link-row { display: flex; gap: 10px; margin-top: 8px; }
.crm-air-boarding__link-row .crm-air-boarding__field-input { flex: 1; }
.crm-air-boarding__link-row .crm-air-btn { flex: 0 0 auto; min-width: 100px; }
.crm-air-flights-panel {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 20px 24px 24px;
    background: #f8fafc;
    overflow-y: auto;
    max-height: min(82vh, 760px);
}
.crm-air-flights-panel__section {
    padding: 0 0 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #e5e7eb;
}
.crm-air-flights-panel__section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.crm-air-flights-panel__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}
.crm-air-flights-panel__title svg { width: 15px; height: 15px; stroke: #c8102e; }
.crm-air-history__refresh {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    color: #64748b;
    cursor: pointer;
}
.crm-air-history__refresh:hover { border-color: #c8102e; color: #c8102e; }
.crm-air-history__refresh svg { width: 14px; height: 14px; stroke: currentColor; }
.crm-air-ai-badge {
    margin-left: auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}
.crm-air-segments { display: grid; gap: 10px; }
.crm-air-segment {
    border: 1px solid #e5e7eb;
    border-left: 4px solid #c8102e;
    border-radius: 12px;
    padding: 11px 12px;
    background: #fff;
}
.crm-air-segment__head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.72rem;
    font-weight: 800;
    color: #c8102e;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
}
.crm-air-segment__times {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 6px;
    align-items: center;
    text-align: center;
}
.crm-air-segment__time { font-size: 1.15rem; font-weight: 800; color: #1b1b1b; }
.crm-air-segment__ap { font-size: 0.72rem; color: #64748b; font-weight: 600; }
.crm-air-segment__arrow { color: #c8102e; font-weight: 800; }
.crm-air-segment__meta { margin: 8px 0 0; font-size: 0.74rem; color: #64748b; }
.crm-air-segment__layover {
    margin: 8px 0 0;
    padding: 6px 9px;
    border-radius: 8px;
    background: #fff8f0;
    border: 1px solid #fed7aa;
    font-size: 0.72rem;
    color: #92400e;
    font-weight: 600;
}
.crm-air-empty { color: #94a3b8; font-size: 0.84rem; margin: 0; }
.crm-air-history__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.crm-air-history__item { list-style: none; }
.crm-air-history__card {
    position: relative;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-left: 4px solid #c8102e;
    border-radius: 14px;
    padding: 12px 14px 13px;
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
}
.crm-air-history__item--paid .crm-air-history__card {
    border-left-color: #16a34a;
}
.crm-air-history__card::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 72px;
    height: 72px;
    background: radial-gradient(circle at 100% 0%, rgba(200, 16, 46, 0.08) 0%, transparent 70%);
    pointer-events: none;
}
.crm-air-history__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.crm-air-history__pnr {
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1b1b1b;
    font-variant-numeric: tabular-nums;
}
.crm-air-history__status {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #f1f5f9;
    color: #475569;
    white-space: nowrap;
}
.crm-air-history__status--paid { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.crm-air-history__status--pending { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
.crm-air-history__route {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: center;
    margin-bottom: 12px;
}
.crm-air-history__endpoint { min-width: 0; }
.crm-air-history__endpoint--arr { text-align: right; }
.crm-air-history__code {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
    color: #1b1b1b;
    font-variant-numeric: tabular-nums;
}
.crm-air-history__city {
    display: block;
    margin-top: 3px;
    font-size: 0.68rem;
    font-weight: 600;
    color: #94a3b8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.crm-air-history__arrow {
    color: #c8102e;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}
.crm-air-history__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e5e7eb;
}
.crm-air-history__meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.crm-air-history__date {
    font-size: 0.68rem;
    font-weight: 600;
    color: #94a3b8;
    letter-spacing: 0.02em;
}
.crm-air-history__price {
    font-size: 0.92rem;
    font-weight: 800;
    color: #1b1b1b;
    font-variant-numeric: tabular-nums;
}
.crm-air-history__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    padding: 8px 12px;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}
.crm-air-history__btn--pay {
    background: #c8102e;
    color: #fff;
    border: 1px solid #a50d26;
    box-shadow: 0 4px 12px rgba(200, 16, 46, 0.22);
}
.crm-air-history__btn--pay:hover {
    background: #a50d26;
    color: #fff;
}
.crm-air-history__btn--ghost {
    background: #fff;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.crm-air-history__btn--ghost:hover {
    background: #f0fdf4;
    color: #15803d;
}
.crm-air-history__empty {
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 28px 16px;
    border: 1px dashed #e2e8f0;
    border-radius: 14px;
    background: #fff;
    text-align: center;
}
.crm-air-history__empty--loading { padding: 22px 16px; }
.crm-air-history__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #fef2f2;
    color: #c8102e;
    font-size: 1.1rem;
    margin-bottom: 4px;
}
.crm-air-history__empty-title {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: #64748b;
}
.crm-air-history__empty-hint {
    margin: 0;
    font-size: 0.74rem;
    color: #94a3b8;
}
.crm-air-history__spinner {
    width: 22px;
    height: 22px;
    border: 2px solid #e5e7eb;
    border-top-color: #c8102e;
    border-radius: 50%;
    animation: crm-air-spin 0.7s linear infinite;
    margin-bottom: 6px;
}
@keyframes crm-air-spin {
    to { transform: rotate(360deg); }
}
html.theme-dark #air-ticket-modal .crm-air-boarding__field-input,
html.theme-dark #air-ticket-modal select.crm-air-boarding__field-input,
html.theme-dark #air-ticket-modal input.crm-air-boarding__field-input,
html.theme-dark #air-ticket-modal .crm-air-boarding__field-input--discount,
html.theme-dark #air-ticket-modal .crm-air-flights-panel__section {
    background: #fff;
    color: #1b1b1b;
    border-color: #e5e7eb;
}
html.theme-dark #air-ticket-modal select.crm-air-boarding__field-input {
    background-color: #fff;
    color: #1b1b1b;
}
html.theme-dark #air-ticket-modal input[type="date"].crm-air-boarding__field-input {
    color-scheme: light;
}
html.theme-dark #air-ticket-modal .crm-air-boarding__field-label {
    color: #8e8e93;
}
@media (max-width: 1100px) {
    .crm-air-ticket-body {
        grid-template-columns: 1fr;
    }
    .crm-air-ticket-tear {
        height: 16px;
        border-left: none;
        border-right: none;
        border-top: 2px dashed #e2e8f0;
        border-bottom: 2px dashed #e2e8f0;
        background:
            radial-gradient(circle at 0 50%, #f4f5f7 7px, transparent 7px) repeat-x left center / 18px 16px,
            linear-gradient(#f8fafc, #f8fafc);
    }
    .crm-air-boarding__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .crm-air-boarding__field--wide { grid-column: span 2; }
}
@media (max-width: 640px) {
    .crm-air-boarding__hero,
    .crm-air-boarding__body,
    .crm-air-boarding__stub,
    .crm-air-boarding__link { padding-left: 18px; padding-right: 18px; }
    .crm-air-boarding__grid { grid-template-columns: 1fr; }
    .crm-air-boarding__field--wide { grid-column: span 1; }
    .crm-air-boarding__route { gap: 12px; }
    .crm-air-boarding__path { min-width: 80px; }
    .crm-air-btn { min-width: 100%; }
}

