:root {
    --crm-bg: #efefec;
    --crm-card: #ffffff;
    --crm-border: #e1e1dc;
    --crm-text: #2f2f2b;
    --crm-muted: #8b8b83;
    --crm-brand: #355f3e;
    --crm-brand-dark: #27472f;
    --crm-brand-light: #edf3ee;
    --crm-link: #2f5336;
    --crm-green: var(--crm-brand);
    --crm-red: #c56363;
    --crm-sidebar: #f4f4f1;
    --crm-gap: 16px;
}

* {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
}

body {
    margin: 0;
    font-family: "Segoe UI", Tahoma, sans-serif;
    background: var(--crm-bg);
    color: var(--crm-text);
    overflow: hidden;
}

a {
    color: var(--crm-link);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

a:hover,
a:focus {
    color: var(--crm-brand-dark);
}

.crm-shell {
    min-height: 100vh;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.crm-sidebar {
    background: var(--crm-sidebar);
    border-right: 1px solid var(--crm-border);
    width: 100%;
    display: none;
    flex-direction: column;
    padding: 14px;
    overflow: hidden;
    position: relative;
}

.crm-sidebar.open {
    display: flex;
}

.brand-block {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 8px 4px 14px;
    border-bottom: 1px solid var(--crm-border);
}

.brand-initial {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--crm-brand);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.small-text {
    color: var(--crm-muted);
    font-size: 11px;
}

.crm-nav {
    padding-top: 12px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    margin-right: -14px;
    padding-right: 14px;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 8px;
    margin-bottom: 4px;
    font-size: 14px;
    text-decoration: none;
    color: var(--crm-text);
}

.nav-link:hover,
.nav-link:focus {
    color: var(--crm-brand-dark);
}

.nav-link-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav-link-icon svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nav-link.active {
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
    font-weight: 600;
}

.sidebar-footer {
    border-top: 1px solid var(--crm-border);
    padding-top: 10px;
    margin-top: 10px;
    font-size: 13px;
}

.sidebar-collapse-bar {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--crm-border);
    position: relative;
    background: var(--crm-sidebar);
    z-index: 2;
}

.sidebar-collapse-toggle {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    color: var(--crm-text);
    padding: 9px 10px;
    cursor: pointer;
}

.burger-stack {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    width: 14px;
    flex: 0 0 14px;
}

.burger-stack span {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background: #6a6a62;
}

.logout-link {
    display: inline-block;
    margin-top: 8px;
    color: var(--crm-link);
}

.crm-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

.crm-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px;
    border-bottom: 1px solid var(--crm-border);
    background: #f7f7f4;
    position: sticky;
    top: 0;
    z-index: 1000;
}

.crm-topbar h1 {
    margin: 0;
    font-size: 22px;
}

.icon-button {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 8px 10px;
    background: #fff;
    cursor: pointer;
}

.icon-button .system-icon {
    width: 17px;
    height: 17px;
    margin: 0;
}

#sidebarToggle {
    width: 40px;
    height: 40px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.top-search input {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 8px 10px;
    width: 180px;
}

.crm-topbar-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Shared SVG sizing baseline. Individual controls may override this compact default. */
.system-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    vertical-align: middle;
}

.button-primary > .system-icon,
.button-muted > .system-icon,
.button-link > .system-icon {
    width: 16px;
    height: 16px;
    margin-right: 5px;
}

.topbar-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    object-fit: cover;
    border: 1px solid var(--crm-border);
    background: #fff;
}

.topbar-panel-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    min-width: 36px;
    height: 36px;
    min-height: 36px;
    padding: 0;
    border-radius: 999px;
    border: 1px solid #b9ccb7;
    background: linear-gradient(180deg, #ffffff 0%, #eef6f0 100%);
    color: var(--crm-brand-dark);
    box-shadow: 0 4px 12px rgba(31, 56, 39, 0.12);
    line-height: 1;
}

.topbar-panel-toggle:hover,
.topbar-panel-toggle:focus-visible {
    background: linear-gradient(180deg, #ffffff 0%, #e6f2e9 100%);
    border-color: var(--crm-brand);
    box-shadow: 0 6px 16px rgba(31, 56, 39, 0.16);
}

.topbar-panel-icon,
.topbar-calendar-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.topbar-panel-icon svg,
.topbar-calendar-icon svg {
    width: 17px;
    height: 17px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.topbar-panel-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    background: #c23a2b;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
    box-shadow: 0 0 0 2px #f3f6f2;
}

.topbar-panel-badge.is-hidden {
    display: none;
}

.crm-page {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: var(--crm-gap);
    overflow-y: auto;
    min-height: 0;
}

.crm-page > .panel-card + .panel-card {
    margin-top: 0;
}

.sidebar-user-summary {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sidebar-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.24);
}

.user-profile-image-preview-wrap {
    margin-top: 10px;
}

.user-profile-image-preview {
    width: 88px;
    height: 88px;
    border-radius: 14px;
    object-fit: cover;
    border: 1px solid var(--crm-border);
    background: #fff;
}

.user-list-name-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.user-list-avatar {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    object-fit: cover;
    border: 1px solid var(--crm-border);
    background: #fff;
}

#assetsModuleApp {
    display: flex;
    flex-direction: column;
    gap: var(--crm-gap);
}

/* Keep grouped register cards separated when a route needs a wrapper for AJAX refreshes. */
.register-content-stack {
    display: flex;
    flex-direction: column;
    gap: var(--crm-gap);
}

#assetsModuleApp .js-assets-modal .crm-form-modal-body {
    display: flex;
    flex-direction: column;
    gap: var(--crm-gap);
}

#assetsModuleApp .js-assets-modal .crm-form-modal-body > .panel-card {
    margin: 0;
}

#assetsModuleApp .js-assets-modal .assets-detail-shell {
    display: flex;
    flex-direction: column;
    gap: var(--crm-gap);
}

#assetsModuleApp .js-assets-modal .assets-detail-shell > .panel-card {
    margin: 0;
}

.flash-message {
    padding: 10px 12px;
    border-radius: 8px;
    margin-bottom: 0;
    border: 1px solid var(--crm-border);
    background: #fff;
}

.flash-message.success {
    border-color: #b5d6bb;
    background: #eef8f0;
}

.flash-message.error {
    border-color: #e2b9b9;
    background: #fbefef;
}

.crm-toast-stack {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}

.crm-toast {
    min-width: 240px;
    max-width: 380px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    color: #243124;
    padding: 10px 12px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.crm-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.crm-toast.success {
    border-color: #b5d6bb;
    background: #eef8f0;
}

.crm-toast.error {
    border-color: #e2b9b9;
    background: #fbefef;
}

.grid-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--crm-gap);
}

.stat-card,
.panel-card {
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    padding: 14px;
}

.panel-card > h1:first-child,
.panel-card > h2:first-child,
.panel-card > h3:first-child,
.panel-card > h4:first-child,
.panel-card > h5:first-child,
.panel-card > h6:first-child {
    margin-top: 0;
}

.stat-title {
    font-size: 12px;
    color: var(--crm-muted);
}

.stat-value {
    margin-top: 7px;
    font-size: 32px;
    font-weight: 700;
}

.stat-trend-up {
    color: var(--crm-green);
    font-size: 12px;
}

.stat-trend-down {
    color: var(--crm-red);
    font-size: 12px;
}

.dashboard-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--crm-gap);
}

.crm-right-calendar {
    display: none;
}

.right-calendar-card {
    height: 100%;
    min-height: 0;
    border: 1px solid var(--crm-brand);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, var(--crm-brand-light) 100%);
    overflow: hidden;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    box-shadow: 0 8px 18px rgba(31, 56, 39, 0.08);
}

.right-calendar-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin: -12px -12px 2px;
    padding: 12px;
    border-bottom: 1px solid var(--crm-brand);
    background: linear-gradient(180deg, #edf5ef 0%, #e2efe6 100%);
}

.right-calendar-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--crm-brand);
}

.right-calendar-notification-tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #7a6755;
}

.right-calendar-notification-tab-icon svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.right-calendar-panel-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
    padding: 4px;
    border: 1px solid #c8d8cc;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.right-calendar-mobile-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    min-width: 36px;
    height: 36px;
    min-height: 36px;
    padding: 0;
    border: 1px solid #c8d8cc;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--crm-brand-dark);
    box-shadow: 0 4px 12px rgba(31, 56, 39, 0.08);
}

.right-calendar-mobile-close svg {
    width: 14px;
    height: 14px;
}

.right-calendar-panel-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    min-width: 0;
    padding: 0 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #5e6d60;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
}

.right-calendar-panel-tab.is-active {
    background: #ffffff;
    color: var(--crm-brand-dark);
    box-shadow: 0 6px 14px rgba(31, 56, 39, 0.10);
}

.right-calendar-panel-tab:focus-visible {
    outline: 2px solid var(--crm-brand);
    outline-offset: 2px;
}

.right-calendar-panel-tab-badge {
    flex: 0 0 auto;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: #c23a2b;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
}

.right-calendar-panel-tab-badge.is-hidden {
    display: none;
}

.right-calendar-panel-tab-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.right-calendar-panel-body {
    min-height: 0;
    display: none;
    flex-direction: column;
    gap: 9px;
    flex: 1 1 auto;
}

.right-calendar-panel-body.is-active {
    display: flex;
}

.right-calendar-header .js-right-calendar-subtitle {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.right-calendar-checkout {
    margin-top: 2px;
    white-space: nowrap;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.right-calendar-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #c7d7cb;
    border-radius: 11px;
    padding: 6px 7px;
    background: #ffffff;
}

.right-calendar-view-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 0;
}

.right-calendar-show-all,
.right-calendar-days-toggle {
    color: var(--crm-brand);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: underline;
    text-underline-offset: 2px;
    border: 0;
    background: transparent;
    padding: 0;
    min-height: 0;
    cursor: pointer;
}

.right-calendar-days-toggle {
    order: 1;
}

.right-calendar-show-all {
    order: 2;
}

.right-calendar-show-all[aria-disabled="true"] {
    opacity: 0.6;
    pointer-events: none;
    text-decoration: none;
}

.right-calendar-show-all:hover,
.right-calendar-days-toggle:hover {
    color: var(--crm-brand-dark);
}

.right-calendar-nav-button {
    width: 32px;
    height: 32px;
    border: 1px solid var(--crm-brand);
    border-radius: 10px;
    background: var(--crm-brand);
    color: #ffffff;
    cursor: pointer;
    line-height: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.right-calendar-nav-button .system-icon {
    width: 18px;
    height: 18px;
}

.right-calendar-month {
    font-weight: 700;
    font-size: 18px;
    color: var(--crm-brand);
    letter-spacing: 0.01em;
}

.right-calendar-user-filter {
    display: flex;
    align-items: center;
    gap: 8px;
}

.right-calendar-user-filter label {
    color: #5f6f62;
    font-size: 11px;
    white-space: nowrap;
}

.right-calendar-user-select {
    display: block;
    border: 1px solid #c8d4cb;
    border-radius: 10px;
    height: 34px;
    min-height: 34px;
    width: 100%;
    box-sizing: border-box;
    padding: 4px 26px 4px 10px;
    background: #f9fcfa;
    color: #2d2d28;
    font-size: 12px;
}

.right-calendar-tabs {
    display: block;
    border: 1px solid #bfd2c2;
    border-radius: 10px;
    height: 36px;
    min-height: 36px;
    width: 100%;
    box-sizing: border-box;
    flex: 0 0 36px;
    padding: 4px 28px 4px 10px;
    background: #f9fcfa;
    color: #2d2d28;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #6f6f68 50%),
    linear-gradient(135deg, #6f6f68 50%, transparent 50%);
    background-position: calc(100% - 16px) 13px,
    calc(100% - 11px) 13px;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.right-calendar-tabs:focus-visible {
    outline: 2px solid var(--crm-brand);
    outline-offset: 1px;
}

.right-calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    font-size: 10px;
    color: var(--crm-brand-dark);
    text-align: center;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.right-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}

.right-calendar-day {
    height: 30px;
    border: 1px solid #d2ddd4;
    border-radius: 9px;
    background: #ffffff;
    font-size: 11px;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #506152;
    padding: 0;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.right-calendar-day.is-empty {
    border-color: transparent;
    background: transparent;
    cursor: default;
}

.right-calendar-day.has-event {
    border-color: #9cbda5;
    background: linear-gradient(180deg, #f0f7f1 0%, #e3efe6 100%);
    color: var(--crm-brand-dark);
    font-weight: 700;
}

.right-calendar-day.is-active {
    border-color: var(--crm-brand);
    background: var(--crm-brand);
    color: #ffffff;
    font-weight: 700;
}

.right-calendar-day.is-selected {
    border-color: var(--crm-brand-dark);
    box-shadow: inset 0 0 0 1px var(--crm-brand-dark), 0 4px 10px rgba(53, 95, 62, 0.24);
}

.right-calendar-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

.right-calendar-list-date {
    margin-top: 7px;
    margin-bottom: 5px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--crm-brand);
    font-weight: 700;
}

.right-calendar-task-group {
    min-height: 6px;
}

.right-calendar-task-group.is-drag-placeholder {
    min-height: 34px;
    margin-bottom: 6px;
    border: 1px dashed #b7c5b9;
    border-radius: 9px;
    background: #f4f8f5;
}

.right-calendar-task-group.is-drag-placeholder::before {
    content: "Drop task here";
    display: block;
    padding: 8px 10px;
    font-size: 10px;
    color: #6f7b70;
}

.right-calendar-task-card {
    cursor: grab;
}

.right-calendar-task-card.is-dragging {
    opacity: 0.55;
    cursor: grabbing;
}

.right-calendar-item-link {
    display: block;
    margin-bottom: 6px;
    text-decoration: none;
}

.right-calendar-item-wrap {
    margin-bottom: 6px;
}

.right-calendar-item {
    border: 1px solid #d5ddd7;
    border-radius: 12px;
    background: #ffffff;
    padding: 8px 9px;
    position: relative;
    padding-right: 58px;
    padding-bottom: 26px;
    box-shadow: 0 2px 7px rgba(44, 60, 48, 0.05);
    border-left-width: 1px;
}

.right-calendar-item.type-tasks {
    background: linear-gradient(180deg, #ecf7ef 0%, #e3f2e8 100%);
    border-color: #b5d1bc;
}

.right-calendar-item.type-leave {
    background: linear-gradient(180deg, #fff1ee 0%, #fde2dd 100%);
    border-color: #eebbb0;
}

.right-calendar-item.type-renewals {
    background: linear-gradient(180deg, #fdf6e8 0%, #f9ecd1 100%);
    border-color: #ebd09c;
}

.right-calendar-item.type-claims {
    background: linear-gradient(180deg, #e9f3ff 0%, #dae9fd 100%);
    border-color: #bdd3f2;
}

.right-calendar-item-title {
    color: #243529;
    font-weight: 700;
    font-size: 13px;
}

.right-calendar-item-meta {
    margin-top: 3px;
    color: #59685b;
    font-size: 10px;
}

.right-calendar-item-meta-link {
    color: var(--crm-brand);
    text-decoration: underline;
    text-underline-offset: 1px;
}

.right-calendar-item-meta-link:hover,
.right-calendar-item-meta-link:focus-visible {
    color: var(--crm-brand-dark);
}

.right-calendar-task-status-value {
    font-weight: 700;
}

.right-calendar-item.type-tasks.is-completed {
    background: #f2f5f2;
    border-color: #d3dbd3;
}

.right-calendar-item.type-tasks.is-overdue {
    background: linear-gradient(180deg, #fff3f1 0%, #ffe6e2 100%);
    border-color: #e6aaa1;
    box-shadow: inset 0 0 0 1px rgba(169, 73, 58, 0.18), 0 3px 10px rgba(169, 73, 58, 0.12);
}

.right-calendar-item.type-tasks.is-completed .right-calendar-item-title,
.right-calendar-item.type-tasks.is-completed .right-calendar-item-meta {
    color: #8b8f8b;
    text-decoration: line-through;
}

.right-calendar-task-toggle {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--crm-brand);
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease, opacity 0.2s ease;
}

.right-calendar-task-controls {
    position: absolute;
    right: 6px;
    bottom: 5px;
    width: calc(100% - 16px);
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.right-calendar-task-drag-handle {
    display: none;
}

.right-calendar-mobile-drag-guide {
    display: none;
}

.right-calendar-task-expand-toggle {
    width: 20px;
    height: 20px;
    border: 0;
    background: transparent;
    color: var(--crm-brand);
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.right-calendar-task-progress {
    flex: 1 1 auto;
    min-width: 0;
}

.right-calendar-task-progress,
.right-calendar-task-progress .task-progress-track,
.right-calendar-task-progress .task-progress-bar,
.right-calendar-task-progress .task-progress-label {
    cursor: pointer;
}

.right-calendar-task-progress .task-progress-bar {
    height: 14px;
}

.right-calendar-task-progress .task-progress-label {
    font-size: 9px;
}

.right-calendar-task-expand-icon {
    width: 12px;
    height: 12px;
    transition: transform 0.15s ease;
}

.right-calendar-task-card.is-expanded .right-calendar-task-expand-icon {
    transform: rotate(180deg);
}

.right-calendar-renewal-card.is-expanded .right-calendar-task-expand-icon {
    transform: rotate(180deg);
}

.right-calendar-task-expanded {
    display: none;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid #d7dfd8;
}

.right-calendar-task-status-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.right-calendar-task-status-label {
    font-size: 10px;
    color: var(--crm-brand-dark);
}

.right-calendar-task-status-select {
    height: 24px;
    min-width: 116px;
    border: 1px solid #c8d2c9;
    border-radius: 6px;
    background: #fff;
    font-size: 11px;
    color: #2f2f2b;
    padding: 2px 22px 2px 7px;
}

.right-calendar-task-card.is-expanded .right-calendar-task-expanded {
    display: block;
}

.right-panel-notifications-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 2px 0;
}

.right-panel-notifications-title {
    color: var(--crm-brand-dark);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
}

.right-panel-notifications-subtitle {
    color: #64716b;
    font-size: 12px;
    line-height: 1.4;
    margin-top: 2px;
}

.right-panel-notifications-mark-all {
    white-space: nowrap;
    margin-top: 2px;
}

.right-panel-notification-list {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow-y: auto;
    border: 1px solid #cfdbd2;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.88);
}

.right-panel-notification-item {
    display: block;
    padding: 13px 14px;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid #e6ece6;
    background: transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.right-panel-notification-item:last-child {
    border-bottom: 0;
}

.right-panel-notification-item:hover,
.right-panel-notification-item:focus-visible {
    background: #f7faf7;
}

.right-panel-notification-item.is-unread {
    background: linear-gradient(180deg, #f2f8f1 0%, #edf5eb 100%);
    border-left: 3px solid var(--crm-brand);
    padding-left: 11px;
}

.right-panel-notification-title {
    color: #243124;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 4px;
}

.right-panel-notification-body {
    color: #53615c;
    font-size: 13px;
    line-height: 1.45;
    margin-bottom: 6px;
}

.right-panel-notification-meta {
    color: #78837e;
    font-size: 11px;
}

.right-panel-notification-empty {
    padding: 22px 16px;
    color: #64716b;
    font-size: 13px;
}

.right-calendar-task-description,
.right-calendar-task-description-empty {
    font-size: 11px;
    color: #566357;
    line-height: 1.4;
}

.right-calendar-task-description-empty {
    color: #7d887f;
    font-style: italic;
}

.right-calendar-task-checklist-wrap {
    margin-top: 6px;
    margin-bottom: 6px;
    border-top: 1px solid #d7dfd8;
    padding-top: 6px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.right-calendar-task-checklist-item {
    display: inline-flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 11px;
    color: #556357;
    line-height: 1.35;
}

.right-calendar-task-checklist-item input[type="checkbox"] {
    margin-top: 1px;
}

.right-calendar-task-expanded-actions {
    margin-top: 6px;
}

.right-calendar-task-edit-link {
    display: inline;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    font-size: 10px;
    line-height: 1.2;
    color: var(--crm-brand);
    text-decoration: underline;
    text-underline-offset: 1px;
}

.right-calendar-task-edit-link:hover,
.right-calendar-task-edit-link:focus-visible {
    background: transparent;
    color: var(--crm-brand-dark);
}

.right-calendar-task-toggle-box {
    width: 18px;
    height: 18px;
    border: 1px solid #79a085;
    border-radius: 5px;
    background: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.right-calendar-task-toggle-check {
    font-size: 11px;
    line-height: 1;
    color: #fff;
    opacity: 0;
    transform: scale(0.75);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.right-calendar-task-toggle:hover,
.right-calendar-task-toggle:focus-visible {
    transform: translateY(-1px);
}

.right-calendar-task-toggle:hover .right-calendar-task-toggle-box,
.right-calendar-task-toggle:focus-visible .right-calendar-task-toggle-box {
    border-color: var(--crm-brand);
    box-shadow: 0 0 0 2px rgba(53, 95, 62, 0.12);
}

.right-calendar-task-toggle.is-completed {
    color: var(--crm-brand);
}

.right-calendar-task-toggle.is-completed .right-calendar-task-toggle-box {
    border-color: var(--crm-brand);
    background: var(--crm-brand);
}

.right-calendar-task-toggle.is-completed .right-calendar-task-toggle-check {
    opacity: 1;
    transform: scale(1);
}

.right-calendar-task-toggle.is-busy {
    opacity: 0.6;
    cursor: wait;
}

.right-calendar-item-open-link {
    display: inline-block;
    margin-top: 2px;
    margin-left: 2px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--crm-brand);
    text-decoration: none;
}

.right-calendar-item-open-link:hover,
.right-calendar-item-open-link:focus-visible {
    color: var(--crm-brand-dark);
    text-decoration: underline;
}

.right-calendar-renewal-expanded {
    display: none;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid #d8d3c9;
}

.right-calendar-renewal-card.is-expanded .right-calendar-renewal-expanded {
    display: block;
}

.right-calendar-renewal-expanded .right-calendar-task-expanded-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.right-calendar-renewal-expanded .right-calendar-task-edit-link {
    font-size: 10px;
}

.right-calendar-renewal-expanded button.right-calendar-task-edit-link {
    cursor: pointer;
}

.right-calendar-renewal-expanded button.right-calendar-task-edit-link:disabled {
    opacity: 0.6;
    cursor: wait;
}

.right-calendar-empty {
    margin-top: 8px;
    border: 1px dashed #c7d7ca;
    border-radius: 12px;
    padding: 16px 10px;
    text-align: center;
    color: #637465;
    font-size: 12px;
    background: #f7fbf8;
}

.right-calendar-footer .button-link {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.right-calendar-reopen {
    display: none;
}

.crm-right-calendar.days-collapsed .right-calendar-weekdays,
.crm-right-calendar.days-collapsed .right-calendar-days {
    display: none;
}

.dashboard-hero {
    background: linear-gradient(140deg, #f7f9f6 0%, var(--crm-brand-light) 100%);
}

.dashboard-hero h3 {
    margin: 0;
}

.dashboard-hero-subtitle {
    margin: 6px 0 0;
    color: #5f6b5f;
    font-size: 13px;
}

.dashboard-hero-top {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dashboard-hero-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 260px;
}

.dashboard-hero-actions-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--crm-brand-dark);
}

.dashboard-hero-actions .button-link {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-height: 48px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid #c7d3c8;
    background: #ffffff;
    color: var(--crm-brand-dark);
    font-size: 14px;
    line-height: 1;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
    text-decoration: none;
}

.dashboard-action-card strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--crm-brand-dark);
}

.dashboard-action-icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    border: 1px solid #bdd1c1;
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
    font-weight: 700;
}

.dashboard-action-icon .system-icon {
    width: 15px;
    height: 15px;
}

.dashboard-action-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.dashboard-action-copy .small-text {
    font-size: 12px;
    color: #617061;
}

.dashboard-hero-actions .button-link:hover {
    background: var(--crm-brand-light);
    border-color: var(--crm-brand);
    color: var(--crm-brand-dark);
}

.dashboard-hero-actions .button-link:focus {
    outline: 2px solid var(--crm-brand);
    outline-offset: 1px;
}

.dashboard-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dashboard-list li {
    border-bottom: 1px solid var(--crm-border);
    padding: 10px 0;
}

.dashboard-list li:first-child {
    padding-top: 0;
}

.dashboard-list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.stat-value-compact {
    font-size: 26px;
}

.main-column,
.side-column {
    display: flex;
    flex-direction: column;
    gap: var(--crm-gap);
    min-width: 0;
}

.table-wrap {
    overflow-x: auto;
    border: 1px solid var(--crm-brand);
    border-radius: 10px;
    background: #fff;
}

.task-list-toolbar-panel {
    padding: 12px 14px;
}

.task-list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.task-list-toolbar-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    position: relative;
}

.task-list-toolbar-icon {
    width: 18px;
    height: 18px;
    fill: currentColor;
    flex: 0 0 18px;
}

.task-list-filter-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 6px 10px;
    text-decoration: none;
}

.task-list-filter-trigger.is-active {
    border-color: var(--crm-brand);
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
}

.task-list-sort-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 6px 10px;
    text-decoration: none;
    white-space: nowrap;
}

.task-list-sort-trigger > span {
    white-space: nowrap;
}

.task-list-sort-trigger.is-active {
    border-color: var(--crm-brand);
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
}

.task-list-sortable-header {
    cursor: pointer;
    user-select: none;
    position: relative;
    white-space: nowrap;
    padding-right: 40px;
}

.task-list-sortable-header:hover {
    color: var(--crm-brand-dark);
}

.task-list-sortable-header::after {
    content: '';
    position: absolute;
    right: 8px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    color: #5b6472;
    opacity: 0;
}

.task-list-sortable-header[data-sort-direction="asc"]::after {
    transform: translateY(-30%) rotate(225deg);
}

.task-list-sortable-header.is-active-sort::after {
    opacity: 1;
}

.task-list-sortable-header[data-sort-priority]::before {
    content: attr(data-sort-priority);
    position: absolute;
    right: 21px;
    top: 50%;
    min-width: 12px;
    height: 12px;
    padding: 0 2px;
    border-radius: 999px;
    background: var(--crm-brand-dark);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    line-height: 12px;
    text-align: center;
    transform: translateY(-50%);
}

.task-list-edit-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 6px 10px;
    text-decoration: none;
}

.task-list-edit-trigger.is-active {
    border-color: var(--crm-brand);
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
}

.task-list-sort-panel {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 280px;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(17, 24, 39, 0.14);
    padding: 12px;
    z-index: 8;
}

.task-list-sort-panel-title {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
}

.task-view-toggle-buttons {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.task-view-toggle-buttons .js-task-view-toggle-button,
.task-view-toggle-buttons .js-client-view-toggle-button,
.task-view-toggle-buttons .js-client-view-section-button,
.task-view-toggle-buttons .js-assets-detail-tab-button {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 6px 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.task-view-toggle-buttons .js-task-view-toggle-button.is-active,
.task-view-toggle-buttons .js-client-view-toggle-button.is-active,
.task-view-toggle-buttons .js-client-view-section-button.is-active,
.task-view-toggle-buttons .js-assets-detail-tab-button.is-active {
    border-color: var(--crm-brand);
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
}

.task-list-filter-panel {
    margin-top: 0;
    border: 1px solid var(--crm-brand);
    border-radius: 10px;
    background: #fafbfd;
    padding: 0;
    flex: 0 0 310px;
    max-width: 310px;
    min-width: 0;
    align-self: stretch;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateX(0);
    transition: max-width 0.22s ease, opacity 0.22s ease, transform 0.22s ease, padding 0.22s ease, border-width 0.22s ease, margin 0.22s ease;
    opacity: 1;
}

.task-list-filter-panel-title {
    position: sticky;
    top: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    margin: 0 0 10px;
    padding: 11px 12px;
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
    border-bottom: 1px solid var(--crm-brand);
}

.task-list-filter-panel-title-icon {
    width: 14px;
    height: 14px;
    fill: currentColor;
    flex: 0 0 14px;
}

.task-list-filter-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 0 12px 12px;
    overflow-y: auto;
    overflow-x: hidden;
}

.task-list-filter-section {
    margin-top: 10px;
}

.task-list-filter-date-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.task-list-filter-section-title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-muted);
    margin-bottom: 6px;
    font-weight: 600;
}

.task-list-filter-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 6px 10px;
}

.task-list-multi-select {
    position: relative;
}

.task-list-multi-select-trigger {
    width: 100%;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    color: var(--crm-text);
    padding: 8px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    text-align: left;
}

.task-list-multi-select-trigger.is-open {
    border-color: var(--crm-brand);
    background: var(--crm-brand-light);
}

.task-list-multi-select-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(17, 24, 39, 0.14);
    padding: 10px;
    z-index: 6;
}

.task-list-filter-option {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
}

.task-filter-tag-option {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.task-filter-tag-swatch {
    display: inline-block;
    width: 10px;
    height: 10px;
    border: 1px solid rgba(17, 24, 39, 0.12);
    border-radius: 999px;
    flex: 0 0 10px;
}

.task-list-filter-actions {
    margin-top: 12px;
    justify-content: flex-start;
}

.task-list-filter-empty {
    margin-top: 12px;
    border: 1px dashed var(--crm-border);
    border-radius: 8px;
    padding: 12px;
    color: var(--crm-muted);
    background: #fff;
}

.task-list-edit-panel {
    margin-top: 12px;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #fafbfd;
    padding: 12px;
}

.task-list-edit-panel-title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 4px;
}

.task-list-edit-panel-count {
    font-size: 12px;
    color: var(--crm-muted);
    margin-bottom: 6px;
}

.task-list-edit-panel-warning {
    font-size: 12px;
    color: #8a2f2f;
    background: #fff3f3;
    border: 1px solid #efcaca;
    border-radius: 8px;
    padding: 8px 10px;
    margin-bottom: 10px;
}

.task-list-edit-panel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.task-list-edit-panel-actions {
    margin-top: 10px;
    justify-content: flex-start;
}

.task-bulk-clear-option {
    margin-top: 8px;
}

.task-list-select-col {
    display: none;
    width: 62px;
    white-space: nowrap;
}

.task-list-layout.is-edit-mode .task-list-select-col {
    display: table-cell;
}

.task-list-row-select-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--crm-muted);
}

.task-kanban-select-control {
    display: none;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--crm-muted);
    margin-bottom: 8px;
}

.task-list-layout.is-edit-mode .task-kanban-select-control {
    display: inline-flex;
}

.task-list-layout.is-edit-mode .task-kanban-card-actions {
    opacity: 0.85;
}

.task-list-layout.is-edit-mode tr.is-selected td,
.task-list-layout.is-edit-mode .task-kanban-card.is-selected {
    background: var(--crm-brand-light);
}

.task-view-modal .crm-form-modal-panel {
    max-width: 1100px;
}

.task-view-modal .crm-form-modal-header {
    position: sticky;
    top: 0;
    z-index: 2;
}

.task-view-modal .crm-form-modal-body {
    max-height: calc(100vh - 130px);
    overflow: auto;
}

.task-view-modal .task-view-shell,
.task-view-modal .task-view-content-card,
.task-view-modal .task-view-description-card,
.task-view-modal .task-view-meta-item {
    min-width: 0;
}

.task-view-modal .task-view-hero-title,
.task-view-modal .task-view-meta-value,
.task-view-modal .task-view-description-text,
.task-view-modal .task-correspondence-text,
.task-view-modal .task-correspondence-meta {
    overflow-wrap: anywhere;
}

.task-view-modal .task-upload-input {
    width: 100%;
}

.client-view-modal .crm-form-modal-panel {
    width: 100%;
    max-width: 1200px;
    max-height: calc(100vh - 40px);
}

.client-view-modal .crm-form-modal-body {
    padding: 12px;
    max-height: calc(100vh - 74px);
    overflow: auto;
    background: #f4f7f3;
}

.client-view-modal.is-loading .crm-form-modal-body {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f6f9f6;
    min-height: 380px;
}

.client-view-modal-loading {
    text-align: center;
}

.client-view-modal-loading-spinner {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 3px solid #d7e1d8;
    border-top-color: var(--crm-brand);
    animation: crm-form-modal-spinner 0.8s linear infinite;
    margin: 0 auto 10px auto;
}

.client-view-modal-loading-text {
    margin: 0;
    font-size: 14px;
    color: #5f6f63;
}

.client-view-modal-content .panel-card {
    margin-bottom: 12px;
    border-radius: 14px;
    border-color: #d9e3da;
}

.client-view-modal-content .panel-card:last-child {
    margin-bottom: 0;
}

.client-view-modal-content .client-modal-summary-card {
    background: linear-gradient(135deg, #f8fbf8 0%, #edf4ee 100%);
}

.client-view-modal-content .client-modal-hero {
    gap: 14px;
}

.client-view-modal-content .client-view-title h3 {
    font-size: 24px;
    line-height: 1.15;
    color: #1f2b22;
}

.client-view-modal-content .client-view-title .small-text {
    color: #65746a;
    font-size: 12px;
}

.client-view-modal-content .client-view-actions {
    gap: 10px;
}

.client-view-modal-content .client-view-actions a {
    display: inline-flex;
    align-items: center;
    border: 1px solid #ccd8ce;
    border-radius: 999px;
    padding: 6px 12px;
    text-decoration: none;
    color: #2d4737;
    background: rgba(255, 255, 255, 0.9);
}

.client-view-modal-content .client-view-actions a:hover,
.client-view-modal-content .client-view-actions a:focus-visible {
    border-color: #8ba691;
    background: #ffffff;
    color: #223528;
}

.client-view-modal-content .client-modal-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.client-view-modal-content .client-modal-stat-card {
    background: #ffffff;
    border-color: #dce6de;
    border-radius: 12px;
    padding: 11px 12px;
}

.client-view-modal-content .client-modal-stat-card .stat-title {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 11px;
    color: #708075;
}

.client-view-modal-content .client-modal-stat-card .stat-value {
    margin-top: 6px;
    font-size: 22px;
    line-height: 1.1;
    color: #223328;
}

.client-view-modal-content .client-view-contact {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed #cfdbd1;
    color: #5d6f62;
}

.client-view-modal-content .client-modal-nav-card {
    position: sticky;
    top: 0;
    z-index: 1;
    box-shadow: 0 6px 14px rgba(16, 24, 20, 0.06);
}

.client-view-modal-content .client-modal-section-toggle {
    gap: 6px;
    flex-wrap: wrap;
}

.client-view-modal-content .client-modal-section-toggle .js-client-view-section-button {
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 12px;
}

.client-view-modal-content .client-modal-section-card > h3 {
    margin-bottom: 10px;
    font-size: 17px;
    color: #2b4737;
}

.client-view-modal-content .client-modal-table-wrap {
    border-radius: 10px;
}

.client-view-modal-content .client-modal-table-wrap table th {
    position: sticky;
    top: 0;
    z-index: 1;
}

.task-list-pagination {
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--crm-brand);
    border-radius: 8px;
    background: var(--crm-brand-light);
    padding: 8px 10px;
    font-weight: 700;
}

.task-list-pagination-summary {
    font-size: 12px;
    color: var(--crm-brand-dark);
}

.task-list-pagination-controls {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    flex-wrap: nowrap;
}

.task-list-pagination-controls select {
    min-width: 56px;
    padding: 4px 8px;
}

.task-list-pagination-page {
    min-width: 56px;
    text-align: center;
    color: var(--crm-brand-dark);
}

.task-list-pagination-button {
    width: 28px;
    height: 28px;
    min-width: 28px;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.task-list-pagination-button .task-list-toolbar-icon {
    width: 16px;
    height: 16px;
}

.task-list-pagination-controls .button-link[disabled] {
    opacity: 0.45;
    pointer-events: none;
}

.task-list-layout {
    --task-list-pane-height: calc(100vh - 150px);
    --task-list-pane-height: calc(100dvh - 150px);
    display: flex;
    align-items: stretch;
    gap: 12px;
    height: auto;
    min-height: 0;
    max-height: var(--task-list-pane-height);
}

.task-list-main {
    min-width: 0;
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    max-height: var(--task-list-pane-height);
    overflow-y: hidden;
    overflow-x: hidden;
}

.task-list-layout .task-list-filter-panel.is-hidden {
    display: block !important;
    max-width: 0;
    opacity: 0;
    transform: translateX(-8px);
    padding: 0;
    border-width: 0;
    margin: 0;
    overflow: hidden;
    pointer-events: none;
}

.is-page-hidden {
    display: none !important;
}

/* Tasks list/kanban workspace should fit content, then cap and scroll. */
.js-task-list-layout {
    height: auto;
    min-height: 0;
    max-height: var(--task-list-pane-height);
}

.js-task-list-layout .task-list-filter-panel {
    height: auto;
    min-height: 0;
    max-height: var(--task-list-pane-height);
}

.js-task-list-main {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
    height: auto;
    max-height: var(--task-list-pane-height);
    overflow-y: hidden;
    overflow-x: hidden;
}

.js-task-list-main .js-task-list-view {
    flex: 0 1 auto;
    min-height: 0;
    max-height: calc(var(--task-list-pane-height) - 68px);
    overflow-y: auto;
    overflow-x: auto;
}

.js-task-list-main .js-task-list-pagination {
    flex: 0 0 auto;
    margin-top: 0;
}

.js-task-list-main .js-task-list-pagination-bottom {
    margin-top: auto;
}

.js-task-list-main .js-task-kanban-view {
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    max-height: calc(var(--task-list-pane-height) - 68px);
    overflow-x: auto;
    overflow-y: hidden;
}

/* Keep Clients paging docked at the bottom of the list pane. */
.js-client-list-layout {
    height: auto;
    min-height: 0;
    max-height: var(--task-list-pane-height);
}

.js-client-list-layout .task-list-filter-panel {
    height: auto;
    min-height: 0;
    max-height: var(--task-list-pane-height);
}

.js-client-list-main {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
    height: auto;
    max-height: var(--task-list-pane-height);
    overflow-y: hidden;
    overflow-x: hidden;
}

.js-client-list-main .js-client-list-view {
    flex: 0 1 auto;
    min-height: 0;
    max-height: calc(var(--task-list-pane-height) - 68px);
    overflow-y: auto;
    overflow-x: auto;
}

.js-task-list-view thead th,
.js-client-list-view thead th {
    position: sticky;
    top: 0;
    z-index: 3;
}

.js-task-list-view tbody td {
    padding: 5px 12px;
}

.js-client-list-main .js-client-list-pagination {
    flex: 0 0 auto;
    margin-top: 0;
}

.js-client-list-main .js-client-list-pagination-bottom {
    margin-top: auto;
}

.js-task-list-view .task-list-pagination,
.js-client-list-view .task-list-pagination {
    position: sticky;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    margin-top: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    border-top: 1px solid var(--crm-brand);
    border-radius: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.hr-calendar-table th,
.hr-calendar-table td {
    vertical-align: top;
}

.hr-calendar-day {
    min-width: 120px;
    height: 88px;
}

.hr-calendar-date {
    font-weight: 600;
    margin-bottom: 4px;
}

.hr-calendar-empty {
    background: #f7f8fa;
}

table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    min-width: 640px;
    background: transparent;
}

th,
td {
    padding: 11px 12px;
    text-align: left;
    font-size: 13px;
    vertical-align: top;
    border-right: 1px solid var(--crm-border);
}

table:not(.hr-calendar-table) th {
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
    border-right: 1px solid var(--crm-brand);
    border-bottom: 1px solid var(--crm-brand);
    font-weight: 700;
}

table:not(.hr-calendar-table) th:first-child {
    border-top-left-radius: 9px;
}

table:not(.hr-calendar-table) th:last-child {
    border-top-right-radius: 9px;
}

table:not(.hr-calendar-table) tbody td {
    border-bottom: 1px solid var(--crm-border);
    background: #fff;
}

table:not(.hr-calendar-table) tbody tr:nth-child(even) td {
    background: #fbfdfb;
}

table:not(.hr-calendar-table) tbody tr:hover td {
    background: #f4f9f3;
}

table:not(.hr-calendar-table) tbody tr:last-child td {
    border-bottom: 0;
}

table:not(.hr-calendar-table) th:last-child,
table:not(.hr-calendar-table) td:last-child {
    border-right: 0;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.form-grid > .inline-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.form-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Textareas should use the full form width instead of sharing a grid row with smaller fields. */
.form-grid > .form-row:has(textarea:not([hidden])) {
    grid-column: 1 / -1;
}

.inline-form {
    display: inline-block;
}

.task-template-description {
    margin-bottom: 10px;
    margin-left: 0px !important;
    margin-top: 0px !important;
    font-size: 12px;
    color: var(--crm-muted);
    line-height: 1.4;
}

.task-template-item-list {
    display: grid;
    gap: 10px;
    width: 100%;
}

.task-template-item {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    width: 100%;
    box-sizing: border-box;
}

.task-template-item-summary {
    display: flex;
    align-items: center;
    cursor: pointer;
    padding: 10px 12px;
    list-style: none;
    font-weight: 600;
}

.task-template-item-summary::-webkit-details-marker {
    display: none;
}

.task-template-item-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-muted);
    margin-left: auto;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.task-template-item[open] .task-template-item-summary::after {
    transform: rotate(225deg);
}

.task-template-item-body {
    border-top: 1px solid var(--crm-border);
    padding: 10px;
}

.task-template-drag-handle,
.task-checklist-drag-handle {
    margin-right: 8px;
    flex-shrink: 0;
    cursor: grab;
    user-select: none;
}

.task-template-item.is-dragging,
.task-checklist-item.is-dragging {
    opacity: 0.45;
}

.task-template-item-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.task-template-item-grid .form-row:last-child {
    grid-column: 1 / -1;
}

.task-template-item-actions,
.task-template-item-controls {
    margin-top: 8px;
}

.task-template-tasks-row {
    grid-column: 1 / -1;
}

.policy-create-card > form {
    width: calc(100% - 32px);
    box-sizing: border-box;
}

.task-template-item-editor {
    width: 100%;
}

.task-checklist-editor {
    width: 100%;
    border: 1px solid #d7d9d7;
    border-radius: 8px;
    padding: 10px;
    background: #f2f3f2;
}

.task-checklist-item-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.task-checklist-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
    border: 1px solid #d7d9d7;
    border-radius: 8px;
    padding: 8px 10px;
    background: #fff;
}

.task-checklist-item-actions {
    grid-column: auto;
    margin: 0;
}

.task-checklist-completed-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--crm-muted);
    font-size: 12px;
    white-space: nowrap;
}

.task-checklist-item input[type="text"] {
    border: 0;
    background: transparent;
    padding: 4px 2px;
    min-width: 0;
}

.task-checklist-item input[type="text"]:focus {
    outline: none;
}

.task-checklist-item .js-task-checklist-remove {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 10px;
    font-size: 0;
}

.task-checklist-item .js-task-checklist-remove::before {
    content: '';
    width: 16px;
    height: 16px;
    display: block;
    margin: 0 auto;
    background: linear-gradient(45deg, transparent 45%, currentColor 46%, currentColor 54%, transparent 55%), linear-gradient(-45deg, transparent 45%, currentColor 46%, currentColor 54%, transparent 55%);
    color: #7f4c4c;
}

.task-checklist-view-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.task-checklist-view-item-form {
    margin: 0;
}

.task-checklist-view-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
}

.task-progress-display {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.task-progress-display-table {
    min-width: 150px;
}

.task-progress-display-modal {
    width: 100%;
}

.task-kanban-board {
    margin-top: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid var(--crm-brand);
    border-radius: 10px;
    background: #fff;
    padding: 10px;
    padding-bottom: 6px;
    min-height: 0;
}

.task-kanban-column {
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #f6f9f6;
    display: flex;
    flex-direction: column;
    flex: 0 0 290px;
    min-height: 0;
    max-height: 100%;
    min-width: 290px;
    max-width: 290px;
    overflow: hidden;
}

.task-kanban-column-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--crm-border);
    background: #eef4ee;
}

.task-kanban-column-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--crm-brand-dark);
}

.task-kanban-column-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
    font-size: 11px;
    font-weight: 700;
}

.task-kanban-column-body {
    padding: 10px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 10px;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

.task-kanban-card {
    border: 1px solid #d5ded6;
    border-radius: 8px;
    background: #fff;
    padding: 10px;
    cursor: grab;
}

.task-kanban-card.is-dragging {
    opacity: 0.5;
    cursor: grabbing;
}

.is-filter-hidden {
    display: none !important;
}

.task-kanban-card-title {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
}

.task-kanban-card-meta {
    font-size: 12px;
    color: #495950;
    margin-bottom: 4px;
}

.task-title-cell-wrap {
    position: relative;
    min-height: 32px;
    padding: 4px 0;
}

.task-list-title-text {
    font-weight: 600;
}

.js-task-tag-badges {
    position: absolute;
    bottom: 0;
    right: 0;
    margin-top: 0;
}

.task-tag-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
}

.task-title-cell-wrap.has-tags {
    padding: 0;
}

.task-title-cell-wrap.has-tags .task-list-title-text,
.task-title-cell-wrap.has-tags .task-kanban-card-title {
    padding-bottom: 4px;
}

.js-task-list-view .task-title-cell-wrap.has-tags .task-list-title-text {
    padding-bottom: 8px;
}

.js-task-list-layout.is-showing-tag-names .task-title-cell-wrap.has-tags .task-list-title-text,
.js-task-list-layout.is-showing-tag-names .task-title-cell-wrap.has-tags .task-kanban-card-title {
    padding-bottom: 18px;
}

.task-tag-chip {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 10px;
    min-width: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    overflow: hidden;
    transition: width 0.2s ease, padding 0.2s ease, box-shadow 0.2s ease;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.task-tag-chip:hover,
.task-tag-chip:focus-visible {
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 0 0 2px rgba(53, 95, 62, 0.12);
}

.task-tag-chip.is-expanded {
    width: auto;
    max-width: 180px;
    min-width: 10px;
    height: 16px;
    padding: 0 7px;
}

.js-task-list-layout.is-showing-tag-names .task-tag-chip {
    width: auto;
    max-width: 180px;
    min-width: 10px;
    height: 16px;
    padding: 0 7px;
}

.task-tag-chip-label {
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    opacity: 0;
    max-width: 0;
    overflow: hidden;
    transition: opacity 0.15s ease, max-width 0.2s ease, margin 0.2s ease;
}

.task-tag-chip.is-expanded .task-tag-chip-label {
    opacity: 1;
    max-width: 140px;
}

.js-task-list-layout.is-showing-tag-names .task-tag-chip-label {
    opacity: 1;
    max-width: 140px;
}

.task-kanban-card .task-title-cell-wrap {
    margin-bottom: 8px;
    min-height: 32px;
}

.task-kanban-card .task-kanban-card-title {
    margin-bottom: 0;
}

.task-tag-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.task-tag-empty {
    font-size: 12px;
    color: var(--crm-muted);
}

.task-tag-editor {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.task-tag-picker-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.task-tag-picker-option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.task-tag-picker-option input[type="checkbox"] {
    margin: 0;
}

.task-tag-new-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.task-tag-new-row {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) minmax(180px, 1.4fr) 60px auto;
    gap: 8px;
    align-items: center;
}

.task-tag-new-row input[type="text"] {
    width: 100%;
}

.task-tag-new-row input[type="color"] {
    width: 100%;
    min-width: 0;
    height: 38px;
    padding: 4px;
}

.task-tag-symbol-button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.task-tag-symbol-button .system-icon {
    width: 17px;
    height: 17px;
    margin: 0;
}

.task-tag-symbol-button.is-remove {
    color: #7f4c4c;
}

.task-kanban-card-progress {
    margin-top: 8px;
    margin-bottom: 8px;
}

.task-kanban-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

.task-kanban-empty {
    border: 1px dashed #c8d4ca;
    border-radius: 8px;
    padding: 10px;
    font-size: 12px;
    color: var(--crm-muted);
    background: #fcfdfc;
}

.task-progress-track {
    position: relative;
    width: 100%;
}

.task-progress-bar {
    width: 100%;
    height: 18px;
    border: 0;
    border-radius: 999px;
    appearance: none;
    -webkit-appearance: none;
    background: #e7ece9;
    overflow: hidden;
}

.task-progress-bar::-webkit-progress-bar {
    background: #e7ece9;
    border-radius: 999px;
}

.task-progress-bar::-webkit-progress-value {
    background: var(--crm-brand);
    border-radius: 999px;
}

.task-progress-bar::-moz-progress-bar {
    background: var(--crm-brand);
    border-radius: 999px;
}

.task-progress-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    line-height: 1;
    font-weight: 600;
    color: #1f1f1b;
    text-shadow: none;
    pointer-events: none;
    white-space: nowrap;
}

.task-progress-label.is-on-fill {
    color: #ffffff;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
}

.task-view-checklist-section {
    width: 100%;
}

.task-view-checklist-progress {
    margin-bottom: 10px;
}

.task-view-shell {
    display: grid;
    gap: 14px;
}

.task-view-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 14px;
    border: 1px solid #dbe3dc;
    border-radius: 12px;
    background: linear-gradient(135deg, #f8fbf8 0%, #eef5ef 100%);
}

.task-view-hero-title {
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #1f2b22;
}

.task-view-hero-sub {
    margin-top: 4px;
    font-size: 12px;
    color: #6f7a72;
}

.task-view-hero-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.task-view-hero-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.task-view-compact-toggle {
    padding: 6px 10px;
    font-size: 12px;
    border-radius: 999px;
    color: #2f5c3f;
    border-color: #cbd8cd;
    background: rgba(255, 255, 255, 0.8);
}

.task-view-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid #d2dbd3;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #2a322d;
    background: #fff;
}

.task-view-chip.status-open {
    background: #eef6ff;
    border-color: #c9dcf4;
    color: #2c4f7d;
}

.task-view-chip.status-in-progress {
    background: #eaf4ff;
    border-color: #c4d9f2;
    color: #2d5a87;
}

.task-view-chip.status-waiting {
    background: #fef7e6;
    border-color: #efdfb8;
    color: #7d6030;
}

.task-view-chip.status-blocked {
    background: #fdeeee;
    border-color: #f1cccc;
    color: #8a3434;
}

.task-view-chip.status-done {
    background: #e9f7ef;
    border-color: #c5e7d2;
    color: #2f6f4a;
}

.task-view-chip.status-archived {
    background: #f1f2f3;
    border-color: #dadddf;
    color: #626b72;
}

.task-view-chip.priority-low {
    background: #f3f6f3;
    border-color: #d9e2db;
}

.task-view-chip.priority-normal {
    background: #f3f6f3;
    border-color: #d9e2db;
}

.task-view-chip.priority-high {
    background: #fff5e9;
    border-color: #f2ddbc;
    color: #7d5721;
}

.task-view-chip.priority-urgent {
    background: #fdecec;
    border-color: #f1c9c9;
    color: #8a2f2f;
}

.task-view-meta-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.task-view-meta-item {
    border: 1px solid #e0e7e1;
    border-radius: 10px;
    padding: 10px 11px;
    background: #fff;
}

.task-view-meta-label {
    font-size: 11px;
    color: #7b8680;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.task-view-meta-icon {
    display: inline-flex;
    width: 14px;
    height: 14px;
    color: #5f7364;
}

.task-view-meta-icon svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.task-view-meta-value {
    font-size: 15px;
    line-height: 1.25;
    font-weight: 600;
    color: #253129;
}

.task-view-description-card,
.task-view-content-card {
    border: 1px solid #dce5de;
    border-radius: 12px;
    background: #fff;
    padding: 12px;
}

.task-view-section-title {
    font-size: 13px;
    font-weight: 700;
    color: #345742;
    margin-bottom: 8px;
}

.task-view-description-text {
    color: #26322b;
    line-height: 1.45;
}

.task-view-description-empty {
    color: #7f8a84;
    font-style: italic;
}

.task-view-watch-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.task-view-watch-help {
    color: #5f6c66;
    font-size: 12px;
    line-height: 1.4;
}

.task-view-actions-row {
    display: flex;
    justify-content: flex-end;
}

.task-view-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.task-view-shell.is-compact {
    gap: 10px;
}

.task-view-shell.is-compact .task-view-hero {
    padding: 10px 11px;
}

.task-view-shell.is-compact .task-view-hero-title {
    font-size: 18px;
}

.task-view-shell.is-compact .task-view-hero-sub {
    font-size: 11px;
}

.task-view-shell.is-compact .task-view-meta-grid {
    gap: 8px;
}

.task-view-shell.is-compact .task-view-meta-item {
    padding: 8px 9px;
}

.task-view-shell.is-compact .task-view-meta-label {
    font-size: 10px;
    margin-bottom: 2px;
}

.task-view-shell.is-compact .task-view-meta-value {
    font-size: 13px;
}

.task-view-shell.is-compact .task-view-description-card,
.task-view-shell.is-compact .task-view-content-card {
    padding: 10px;
}

.task-view-shell.is-compact .task-view-section-title {
    margin-bottom: 6px;
}

.task-view-upload-form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 10px;
    border: 1px solid #d8e0d8;
    border-radius: 10px;
    background: #f7faf7;
}

.task-upload-input {
    max-width: 100%;
    font-size: 13px;
    color: #2b322e;
}

.task-upload-input::file-selector-button {
    margin-right: 10px;
    border: 1px solid #c6d0c8;
    border-radius: 8px;
    background: #ffffff;
    color: #2a322d;
    padding: 7px 10px;
    font-size: 13px;
    line-height: 1.2;
    cursor: pointer;
}

.task-upload-input::-webkit-file-upload-button {
    margin-right: 10px;
    border: 1px solid #c6d0c8;
    border-radius: 8px;
    background: #ffffff;
    color: #2a322d;
    padding: 7px 10px;
    font-size: 13px;
    line-height: 1.2;
    cursor: pointer;
}

.task-upload-submit {
    padding: 8px 14px;
    min-height: 36px;
}

.task-upload-hint {
    font-size: 12px;
    color: #6f7b72;
}

.task-attachment-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #dbe2db;
    border-radius: 10px;
    overflow: hidden;
}

.task-attachment-list li {
    margin: 0;
    padding: 9px 12px;
    background: #fff;
    border-top: 1px solid #edf1ed;
}

.task-attachment-list li:first-child {
    border-top: 0;
}

.task-attachment-list a {
    color: #2f5c3d;
    text-decoration: none;
    font-weight: 500;
}

.task-attachment-list a:hover,
.task-attachment-list a:focus-visible {
    text-decoration: underline;
}

.task-view-correspondence-card {
    grid-column: 1 / -1;
}

.task-correspondence-form {
    border: 1px solid #d8e0d8;
    border-radius: 10px;
    background: #f7faf7;
    padding: 10px 12px;
    margin-bottom: 10px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.task-correspondence-form-grid {
    display: grid;
    gap: 10px;
    width: 100%;
    min-width: 0;
}

.task-correspondence-form .form-row {
    margin-bottom: 0;
    min-width: 0;
}

.task-correspondence-form-grid > * {
    min-width: 0;
}

.task-correspondence-form input[type="text"],
.task-correspondence-form select,
.task-correspondence-form textarea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.task-view-modal .task-view-content-card {
    overflow-x: hidden;
}

.task-correspondence-thread {
    max-height: 360px;
    overflow-y: auto;
    border: 1px solid #dbe2db;
    border-radius: 12px;
    background: #f3f6f3;
    padding: 10px;
    display: grid;
    gap: 8px;
}

.task-correspondence-empty {
    color: #6f7b72;
    font-size: 13px;
    font-style: italic;
    padding: 8px 6px;
}

.task-correspondence-message {
    display: flex;
    justify-content: flex-start;
}

.task-correspondence-message.is-mine {
    justify-content: flex-end;
}

.task-correspondence-bubble {
    max-width: 86%;
    border-radius: 12px;
    border: 1px solid #d9dfda;
    background: #ffffff;
    padding: 9px 10px;
}

.task-correspondence-message.is-mine .task-correspondence-bubble {
    background: #e8f4ea;
    border-color: #c9decd;
}

.task-correspondence-bubble.is-failed {
    border-color: #e7c4c4;
    background: #fff1f1;
}

.task-correspondence-bubble.is-inbound {
    border-color: #d4dde8;
    background: #f5f9fd;
}

.task-inbound-thread {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #dde5df;
}

.task-correspondence-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 11px;
    color: #6c7670;
    margin-bottom: 4px;
}

.task-correspondence-subject {
    font-size: 12px;
    font-weight: 700;
    color: #314e3b;
    margin-bottom: 4px;
}

.task-correspondence-text {
    font-size: 13px;
    line-height: 1.45;
    color: #223028;
    margin-bottom: 5px;
}

.task-correspondence-meta {
    font-size: 11px;
    color: #66736b;
}

.assets-comment-thread {
    margin-bottom: 10px;
}

.asset-audit-list {
    display: grid;
    gap: 8px;
}

.asset-audit-item {
    border: 1px solid #d9dfda;
    border-radius: 10px;
    background: #f9fbf9;
    padding: 10px 12px;
}

.asset-audit-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.asset-audit-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid #c8d6cb;
    background: #e8f3ea;
    color: #2f4f38;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.asset-audit-time {
    font-size: 11px;
    color: #66736b;
    white-space: nowrap;
}

.asset-audit-text {
    font-size: 13px;
    color: #223028;
    line-height: 1.45;
}

.asset-audit-meta {
    margin-top: 6px;
    font-size: 11px;
    color: #66736b;
}

.assets-detail-tab-toggle {
    flex-wrap: wrap;
    row-gap: 8px;
}

@media (max-width: 900px) {
    .task-template-item-grid {
        grid-template-columns: 1fr;
    }

    .task-checklist-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .task-checklist-completed-label,
    .task-checklist-item-actions {
        grid-column: 1 / -1;
    }

    .task-list-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .task-kanban-board {
        overflow-x: auto;
    }

    .task-kanban-column {
        flex: 0 0 88%;
        min-width: 88%;
        max-width: 88%;
    }

    .task-view-hero {
        flex-direction: column;
    }

    .task-view-hero-actions {
        align-items: flex-start;
        width: 100%;
    }

    .task-view-hero-chips {
        justify-content: flex-start;
    }

    .task-view-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .task-view-content-grid {
        grid-template-columns: 1fr;
    }

    .task-view-upload-form {
        align-items: flex-start;
    }

    .task-upload-submit {
        width: 100%;
    }

    .task-correspondence-bubble {
        max-width: 94%;
    }

    .task-view-modal {
        padding: 0;
    }

    .task-view-modal .crm-form-modal-panel {
        max-width: none;
        width: 100vw;
        max-height: 100vh;
        height: 100vh;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
    }

    .task-view-modal .crm-form-modal-body {
        padding: 10px;
        max-height: calc(100vh - 74px);
    }

    .client-view-modal .crm-form-modal-body {
        padding: 10px;
        max-height: calc(100vh - 74px);
        min-height: 300px;
    }

    .client-view-modal-content .client-modal-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .client-view-modal-content .client-view-title h3 {
        font-size: 20px;
    }

    .client-view-modal-content .client-modal-stat-grid {
        grid-template-columns: 1fr;
    }
}

.checkbox-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px 12px;
    padding: 10px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
}

.checkbox-group label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--crm-text);
    font-size: 13px;
}

.checkbox-group input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
}

label {
    font-size: 12px;
    color: var(--crm-muted);
}

input,
select,
textarea,
button {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 14px;
    font-family: inherit;
}

select {
    color: var(--crm-text);
    background-color: #fff;
    padding-right: 38px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%23324132' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 14px 14px;
}

select:focus {
    background-color: #fff;
}

select:disabled {
    background-color: #f1f3f1;
    color: #7b817b;
}

textarea {
    min-height: 96px;
    resize: vertical;
}

button,
.button-link {
    cursor: pointer;
    background: #fff;
    text-decoration: none;
    color: var(--crm-text);
}

.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 14px;
    font-family: inherit;
    line-height: 1.2;
}

.right-calendar-task-expanded-actions .right-calendar-task-edit-link {
    display: inline;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    font-size: 10px;
    line-height: 1.2;
    color: #4f6256;
    text-decoration: underline;
    text-underline-offset: 1px;
}

.right-calendar-task-expanded-actions .right-calendar-task-edit-link:hover,
.right-calendar-task-expanded-actions .right-calendar-task-edit-link:focus-visible {
    background: transparent;
    color: #355f3e;
}

button:disabled,
.button-link:disabled,
.button-primary:disabled,
.button-muted:disabled {
    background: #dfe3df !important;
    border-color: #c8cdc8 !important;
    color: #7b817b !important;
    cursor: not-allowed;
    opacity: 1;
}

.button-primary {
    background: var(--crm-brand);
    border-color: var(--crm-brand);
    color: #fff;
}

.button-primary:hover,
.button-primary:focus {
    background: var(--crm-brand-dark);
    border-color: var(--crm-brand-dark);
}

.button-muted {
    background: #f7f7f4;
}

.inline-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

form .inline-actions {
    justify-content: flex-end;
}

.table-action-cell {
    white-space: nowrap;
}

.table-action-form {
    margin: 4px 0 0 0;
}

.table-action-link-button {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    border-radius: 0;
    font-size: 13px;
    color: var(--crm-brand);
    text-decoration: underline;
    cursor: pointer;
}

.table-action-link-button:hover,
.table-action-link-button:focus {
    color: var(--crm-brand-dark);
}

.user-setup-email-form {
    margin-top: 12px;
}

.user-setup-email-actions {
    justify-content: flex-start !important;
}

.setup-password-success-actions {
    justify-content: flex-end;
    margin-top: 12px;
}

.client-view-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.client-view-title h3 {
    margin: 0;
}

.client-view-title .small-text {
    margin-top: 4px;
}

.client-view-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.client-view-contact {
    margin-top: 10px;
}

.document-category-group {
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #ffffff;
    overflow: hidden;
}

.document-category-group + .document-category-group {
    margin-top: 12px;
}

.document-category-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 14px;
    cursor: pointer;
    list-style: none;
    background: #f6f9f6;
}

.document-category-summary::-webkit-details-marker {
    display: none;
}

.document-category-title {
    font-weight: 700;
    color: var(--crm-text);
}

.document-category-count {
    font-size: 12px;
    color: var(--crm-muted);
}

.document-category-group > .table-wrap {
    border-top: 1px solid var(--crm-brand);
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    border-radius: 0;
}

.document-category-group table th:first-child,
.document-category-group table th:last-child {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.form-grid + .inline-actions,
.form-grid + button,
.form-row + .inline-actions,
.form-row + button,
.permission-grid + .inline-actions,
.permission-grid + button,
form > .panel-card + button,
form > .panel-card + .inline-actions {
    margin-top: var(--crm-gap);
}

.form-grid + button[type="submit"],
.form-row + button[type="submit"],
.permission-grid + button[type="submit"],
form > .panel-card + button[type="submit"] {
    display: block;
    margin-left: auto;
}

.login-screen {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: linear-gradient(170deg, #f8f8f5 0%, #ededea 100%);
}

.login-card {
    width: 100%;
    max-width: 420px;
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: #fff;
    padding: 22px;
}

.login-title {
    margin: 0 0 6px;
    font-size: 24px;
}

.login-subtitle {
    color: var(--crm-muted);
    margin: 0 0 16px;
}

.repeat-entry,
.repeat-entry-template {
    border: 1px dashed #d0d0c8;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
}

.repeat-entry-template {
    display: none;
}

.schedule-wrapper {
    background: #fff;
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    padding: 16px;
}

.schedule-brand {
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--crm-brand-dark);
}

.schedule-section {
    margin-top: 16px;
}

.schedule-group {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
}

.schedule-table {
    min-width: 100%;
}

.permission-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 8px;
}

.is-hidden {
    display: none !important;
}

.product-builder-header {
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--crm-gap);
}

.product-builder-header h3 {
    margin: 0;
}

.js-product-builder-workspace > .panel-card + .panel-card {
    margin-top: var(--crm-gap);
}

.product-meta-card {
    padding-bottom: 0;
}

.product-meta-head {
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 8px;
}

.product-meta-head h4 {
    margin: 0 0 4px;
}

.product-meta-card .js-product-details-form:not(.is-hidden) {
    margin-top: var(--crm-gap);
    margin-bottom: var(--crm-gap);
}

.product-structure-header {
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.product-structure-header h4 {
    margin: 0;
}

.product-structure-footer {
    margin-top: 10px;
}

.product-builder-grid {
    grid-template-columns: 1fr;
}

.reports-builder-list-card .form-grid {
    margin-bottom: 10px;
}

.reports-list-header {
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.reports-list-header h3 {
    margin: 0;
}

.product-builder-list-header {
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.product-builder-list-header h3 {
    margin: 0;
}

.reports-builder-workspace > .panel-card + .panel-card {
    margin-top: var(--crm-gap);
}

.crm-form-modal-panel.reports-modal-panel {
    width: min(1120px, calc(100vw - 28px));
    max-width: 1120px;
}

.crm-form-modal-panel.reports-create-modal-panel {
    width: min(640px, calc(100vw - 28px));
    max-width: 640px;
}

.crm-form-modal-panel.reports-concat-modal-panel {
    width: min(560px, calc(100vw - 40px));
    max-width: 560px;
}

.reports-concat-modal-panel .crm-form-modal-body {
    display: flex;
    justify-content: center;
    padding: 14px 14px 16px;
}

.reports-builder-workspace {
    display: grid;
    gap: var(--crm-gap);
    min-width: 0;
}

.reports-builder-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--crm-gap);
}

.reports-builder-collapsible {
    padding: 0;
    overflow: hidden;
}

.reports-builder-collapsible-summary {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    list-style: none;
    padding: 10px 12px;
}

.reports-builder-collapsible-summary::-webkit-details-marker {
    display: none;
}

.reports-builder-collapsible-summary h4 {
    margin: 0;
}

.reports-builder-collapsible-summary .small-text {
    margin: 0;
}

.reports-builder-collapsible-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    margin-left: auto;
    color: var(--crm-muted);
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.reports-builder-collapsible[open] .reports-builder-collapsible-summary::after {
    transform: rotate(225deg);
}

.reports-builder-collapsible-body {
    border-top: 1px solid var(--crm-border);
    padding: 10px 12px 12px;
    background: #fafaf8;
}

.reports-builder-section-head {
    justify-content: space-between;
    margin-bottom: 8px;
}

.reports-meta-card {
    margin-bottom: 0;
    min-width: 0;
}

.reports-meta-card .reports-sort-row {
    grid-column: 1 / -1;
}

.reports-list-actions {
    justify-content: flex-end;
    margin-top: -2px;
    margin-bottom: 8px;
}

.reports-meta-card .inline-actions {
    justify-content: flex-start;
}

.reports-related-tables {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 10px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fafaf8;
    padding: 8px;
    max-height: 180px;
    overflow-y: auto;
}

.reports-related-tables label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}

.reports-selected-fields-list {
    list-style: none;
    padding: 0;
    margin: 10px 0 0;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
}

.reports-selected-fields-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border-bottom: 1px solid #efefea;
    cursor: default;
}

.reports-selected-fields-list .js-selected-field-item[draggable="true"] {
    cursor: move;
}

.reports-selected-fields-list .js-selected-field-item.is-dragging {
    opacity: 0.5;
}

.reports-field-label {
    flex: 1 1 auto;
    min-width: 0;
}

.reports-drag-handle {
    color: var(--crm-muted);
    user-select: none;
}

.reports-drag-handle .system-icon,
.product-drag-handle .system-icon {
    width: 16px;
    height: 16px;
}

.reports-field-add-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
}

.reports-inline-add-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.reports-row-limit-wrap {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}

.reports-rule-builder {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #fafaf8;
}

.reports-rule-builder-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 2px;
}

.js-sort-rules-list,
.js-group-fields-list {
    display: grid;
    gap: 8px;
}

.reports-rule-add-button {
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    background: #fff;
    color: var(--crm-text);
}

.reports-rule-row {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) 196px auto;
    gap: 8px;
    align-items: center;
    padding: 8px;
    border: 1px solid #e7e7e1;
    border-radius: 8px;
    background: #fff;
}

.reports-rule-row.is-group-row {
    grid-template-columns: 74px minmax(0, 1fr) auto;
}

.reports-rule-row select,
.reports-rule-row .icon-button {
    margin: 0;
}

.reports-rule-row .icon-button {
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.reports-rule-prefix {
    display: inline-block;
    font-weight: 600;
    color: #445245;
    letter-spacing: 0.01em;
}

.reports-rule-add-cta {
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.reports-selected-fields-list li:last-child {
    border-bottom: 0;
}

.reports-condition-row {
    display: grid;
    align-items: center;
    grid-template-columns: 86px minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1.2fr) max-content auto;
    gap: 8px;
    margin-bottom: 8px;
}

.reports-condition-row.is-prompt-mode {
    grid-template-columns: 86px minmax(0, 1.9fr) minmax(0, 1fr) max-content auto;
}

.reports-condition-row .icon-button {
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.reports-condition-row input,
.reports-condition-row select {
    width: 100%;
}

.reports-condition-row .js-condition-value {
    border: 1px solid var(--crm-border);
    box-sizing: border-box;
}

.reports-condition-row .js-condition-value:focus {
    border-color: var(--crm-accent);
}

.reports-condition-row > label.small-text {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    white-space: nowrap;
}

.reports-condition-row > label.small-text input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.js-conditions-list {
    overflow: visible;
}

.js-report-run-prompt-fields {
    margin-bottom: 10px;
}

.reports-run-prompt-actions {
    justify-content: flex-end;
}

@media (max-width: 1280px) {
    .reports-condition-row {
        grid-template-columns: 86px minmax(0, 1.4fr) minmax(0, 1fr) max-content auto;
    }

    .reports-condition-row.is-prompt-mode {
        grid-template-columns: 86px minmax(0, 1.6fr) minmax(0, 1fr) max-content auto;
    }

    .reports-condition-row .js-condition-value {
        grid-column: 2 / 4;
    }
}

@media (max-width: 900px) {
    .crm-form-modal-panel.reports-modal-panel {
        width: calc(100vw - 20px);
        max-width: calc(100vw - 20px);
    }

    .reports-builder-workspace .panel-card,
    .reports-builder-workspace .form-grid,
    .reports-builder-collapsible-body,
    .reports-results-card,
    .reports-meta-card {
        min-width: 0;
    }

    .reports-field-add-row,
    .reports-row-limit-wrap {
        grid-template-columns: 1fr;
    }

    .reports-field-add-row .reports-action-button,
    .reports-field-add-row .reports-inline-add-button {
        width: 100%;
        justify-content: center;
    }

    .reports-rule-row,
    .reports-rule-row.is-group-row {
        grid-template-columns: 1fr;
    }

    .reports-rule-row .icon-button {
        justify-self: end;
    }

    .reports-condition-row {
        grid-template-columns: 1fr 1fr;
    }

    .reports-condition-row .js-condition-logical,
    .reports-condition-row .js-condition-field,
    .reports-condition-row .js-condition-operator,
    .reports-condition-row .js-condition-value,
    .reports-condition-row > label.small-text,
    .reports-condition-row .icon-button {
        grid-column: span 2;
    }
}

.reports-results-card .table-wrap {
    margin-top: 10px;
}

.reports-action-button {
    min-height: 28px;
    padding: 4px 9px;
    font-size: 11px;
    line-height: 1.2;
    width: auto;
    max-width: 100%;
}

.reports-field-add-row .icon-button,
.reports-builder-section-head .icon-button,
.reports-concat-add-row .icon-button,
.reports-selected-fields-list .icon-button,
.reports-concat-parts-list .icon-button {
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.reports-builder-workspace .button-primary,
.reports-builder-workspace .button-muted,
.reports-create-modal-panel .button-primary,
.reports-create-modal-panel .button-muted,
.reports-concat-modal-panel .button-primary,
.reports-concat-modal-panel .button-muted {
    min-height: 28px;
    padding: 4px 9px;
    font-size: 11px;
    line-height: 1.2;
}

.reports-conditions-card .inline-actions,
.reports-fields-card .inline-actions,
.reports-results-card .inline-actions {
    align-items: center;
}

.reports-conditions-card h4,
.reports-fields-card h4,
.reports-results-card h4 {
    margin: 0;
}

.reports-fields-card {
    display: grid;
    gap: 8px;
    align-content: start;
}

.reports-results-headline {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.reports-results-headline h4 {
    margin: 0;
}

.reports-results-actions {
    justify-content: flex-end;
}

.reports-results-loader {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--crm-muted);
}

.reports-loader-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid #cfd6cf;
    border-top-color: var(--crm-brand);
    border-radius: 50%;
    animation: reports-loader-spin 0.8s linear infinite;
}

@keyframes reports-loader-spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.reports-concat-parts-card {
    padding: 10px;
}

.reports-concat-form {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    grid-template-columns: 1fr;
}

.reports-concat-add-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
    grid-template-areas: "prepend field append add";
    gap: 8px;
    align-items: center;
}

.reports-concat-add-row .js-concat-field-select {
    grid-area: field;
}

.reports-concat-add-row .js-concat-operator-select {
    grid-area: operator;
}

.reports-concat-add-row .js-concat-prepend-input {
    grid-area: prepend;
}

.reports-concat-add-row .js-concat-append-input {
    grid-area: append;
}

.reports-concat-add-row .js-concat-add-part-button {
    grid-area: add;
    min-width: 22px;
    min-height: 22px;
    width: 22px;
    height: 22px;
    padding: 0;
    align-self: center;
    justify-self: end;
    font-size: 12px;
    line-height: 1;
}

.reports-concat-add-row.is-math-mode {
    grid-template-columns: minmax(84px, 104px) minmax(0, 1fr) auto;
    grid-template-areas: "operator field add";
}

.reports-concat-mode-row select {
    width: 100%;
    max-width: 100%;
}

.reports-math-operator {
    min-width: 18px;
    text-align: center;
    font-weight: 600;
}

.reports-concat-parts-list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
}

.reports-concat-parts-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid #efefea;
}

.reports-concat-parts-list .js-concat-part-item[draggable="true"] {
    cursor: move;
}

.reports-concat-parts-list .js-concat-part-item.is-dragging {
    opacity: 0.5;
}

.reports-drop-placeholder {
    border: 2px dotted var(--crm-brand);
    background: transparent;
    color: var(--crm-muted);
    font-size: 12px;
    padding: 6px 10px;
    border-radius: 6px;
}

.reports-selected-fields-list .reports-drop-placeholder,
.reports-concat-parts-list .reports-drop-placeholder {
    border: 2px dotted var(--crm-brand) !important;
}

.reports-builder-save-actions {
    justify-content: flex-end;
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px solid #efefea;
}

.reports-builder-save-card {
    padding: 8px 12px;
}

.reports-builder-save-card .reports-builder-save-actions {
    border-top: 0;
    padding-top: 0;
    margin-top: 0;
}

.reports-concat-parts-list li:last-child {
    border-bottom: 0;
}

.product-structure-section {
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
}

.product-structure-section h5 {
    margin: 0;
}

.product-structure-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.product-section-card {
    padding: 0;
    background: #fff;
    overflow: hidden;
}

.product-section-card-summary {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    cursor: pointer;
    padding: 12px;
    background: #fff;
    list-style: none;
}

.product-section-card-body {
    padding: 10px;
    border-top: 1px solid var(--crm-border);
    background: #fafaf8;
}

.product-structure-group {
    border: 1px dashed #d0d0c8;
    border-radius: 8px;
    padding: 8px;
    margin-top: 8px;
}

.product-structure-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.product-group-card {
    border-style: solid;
    padding: 0;
    background: #fff;
    overflow: hidden;
}

.product-group-card-summary {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    cursor: pointer;
    padding: 10px;
    list-style: none;
}

.product-group-card-body {
    padding: 10px;
    border-top: 1px solid var(--crm-border);
    background: #fafaf8;
}

.product-structure-field-list {
    margin: 8px 0 0;
    padding-left: 0;
    list-style: none;
}

.product-section-list,
.product-group-list {
    display: block;
}

.product-structure-field-list li {
    margin: 4px 0;
}

.product-structure-field-list[data-parent-field-id]:not([data-parent-field-id="0"]) {
    margin-left: 18px;
    padding-left: 12px;
    border-left: 2px solid #dcdcd3;
}

.product-field-item {
    margin: 6px 0;
}

.product-drag-handle {
    color: var(--crm-muted);
    cursor: move;
    user-select: none;
}

.js-sort-item.is-dragging {
    opacity: 0.45;
}

.product-field-form-item {
    margin: 6px 0;
}

.product-field-card {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.product-field-card-summary {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    cursor: pointer;
    padding: 10px;
    list-style: none;
}

.product-field-card[open] .product-field-card-summary {
    border-bottom: 1px solid var(--crm-border);
}

.product-section-card-summary::-webkit-details-marker,
.product-group-card-summary::-webkit-details-marker,
.product-field-card-summary::-webkit-details-marker {
    display: none;
}

.product-section-card-summary *,
.product-group-card-summary *,
.product-field-card-summary * {
    cursor: pointer;
}

.product-section-card-summary .small-text,
.product-group-card-summary .small-text,
.product-field-card-summary .small-text {
    margin-left: auto;
}

.product-section-card-summary::after,
.product-group-card-summary::after,
.product-field-card-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-muted);
    margin-left: 8px;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.product-section-card[open] .product-section-card-summary::after,
.product-group-card[open] .product-group-card-summary::after,
.product-field-card[open] .product-field-card-summary::after {
    transform: rotate(225deg);
}

.product-field-card .product-inline-form {
    border: 0;
    border-radius: 0;
    margin: 0;
    background: #f9f9f6;
}

.product-node-actions {
    margin-top: 8px;
    justify-content: flex-end;
}

.product-inline-form {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #f9f9f6;
    padding: 10px;
    margin-bottom: 8px;
}

.product-group-list + .product-inline-form {
    margin-top: 8px;
}

.product-inline-form .inline-actions {
    align-items: center;
    flex-wrap: nowrap;
}

.product-field-actions {
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap !important;
    grid-column: 1 / -1;
    margin-top: 4px;
}

.product-group-actions {
    justify-content: flex-end;
    grid-column: 1 / -1;
}

.product-field-actions .button-primary,
.product-field-actions .button-muted {
    min-height: 36px;
    padding: 7px 12px;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
}

.product-field-actions .js-field-save-button {
    min-width: 72px;
}

.field-conditions-box {
    border: 1px solid #d9d9cf;
    border-radius: 8px;
    background: #fbfbf8;
    margin: 8px 0;
    grid-column: 1 / -1;
}

.field-conditions-summary {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: 600;
    padding: 8px 10px;
    list-style: none;
}

.field-conditions-summary::-webkit-details-marker {
    display: none;
}

.field-conditions-title {
    flex: 0 0 auto;
}

.condition-summary {
    flex: 1 1 auto;
    min-width: 0;
    color: #8b918b;
    font-weight: 400;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.field-conditions-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-muted);
    margin-left: 8px;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.field-conditions-box[open] .field-conditions-summary::after {
    transform: rotate(225deg);
}

.field-conditions-body {
    border-top: 1px solid #e5e5da;
    padding: 10px;
}

.condition-list {
    display: grid;
    gap: 8px;
}

.condition-item {
    border: 1px dashed #d2d2c8;
    border-radius: 8px;
    padding: 8px;
    background: #fff;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.condition-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.condition-row label {
    font-size: 12px;
    color: var(--crm-muted);
}

.condition-item .inline-actions {
    margin-top: 0;
}

.field-conditions-body > .inline-actions {
    margin-top: 10px;
}

/* Client-field conditions use the shared condition model, with a denser editor for the settings builder. */
.client-field-conditions-box {
    margin: 2px 0 0;
    border-color: #dfe4de;
    background: #fff;
}

.client-field-conditions-box .field-conditions-summary {
    min-height: 42px;
    padding: 9px 12px;
}

.client-field-conditions-box .field-conditions-body {
    display: grid;
    gap: 12px;
    padding: 12px;
    background: #fcfdfc;
}

.client-field-conditions-box .client-condition-action-row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.client-field-conditions-box .client-condition-action-row label {
    font-weight: 600;
}

.client-condition-list {
    gap: 10px;
}

.client-field-conditions-box .client-condition-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 32px;
    align-items: end;
    gap: 8px;
    padding: 10px;
    border: 1px solid #e2e7e2;
    border-radius: 7px;
    background: #fff;
}

.client-field-conditions-box .client-condition-item .client-condition-relation {
    grid-column: 1 / -1;
    min-height: 18px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 600;
}

.client-field-conditions-box .client-condition-item .client-condition-relation select {
    width: auto;
    min-width: 74px;
    min-height: 30px;
    padding: 4px 24px 4px 8px;
    font-size: 12px;
}

.client-field-conditions-box .client-condition-item .condition-row {
    min-width: 0;
}

.client-field-conditions-box .client-condition-item .condition-row select,
.client-field-conditions-box .client-condition-item .condition-row input,
.client-field-conditions-box .client-condition-item .js-client-condition-value-wrap,
.client-field-conditions-box .client-condition-item .js-client-condition-value-wrap select,
.client-field-conditions-box .client-condition-item .js-client-condition-value-wrap input {
    width: 100%;
    min-width: 0;
}

.client-field-conditions-box .client-condition-item .inline-actions {
    display: flex;
    justify-content: flex-end;
    align-items: end;
    min-height: 37px;
    grid-column: 3;
    grid-row: 2;
}

.client-field-conditions-box .client-condition-item .client-condition-value-row {
    grid-column: 1 / -1;
}

.client-condition-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    min-width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid #ead8d8;
    border-radius: 6px;
    color: #a53d3d;
}

.client-condition-remove:hover,
.client-condition-remove:focus-visible {
    background: #fff4f4;
    color: #8f2c2c;
}

.client-condition-add-row {
    margin-top: 0 !important;
}

.client-condition-add-row .button-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    padding: 5px 0;
    color: var(--crm-primary);
}

@media (min-width: 900px) {
    .client-field-conditions-box .client-condition-item {
        grid-template-columns: minmax(116px, 1.45fr) minmax(96px, 1fr) minmax(116px, 1.25fr) 32px;
    }

    .client-field-conditions-box .client-condition-item .client-condition-value-row {
        grid-column: auto;
    }

    .client-field-conditions-box .client-condition-item .inline-actions {
        grid-column: 4;
        grid-row: 2;
    }
}

.group-name-builder-input-wrap {
    position: relative;
}

.group-name-builder-input-wrap input[name="groupNameBuilder"] {
    width: 100%;
}

.group-name-builder-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    z-index: 30;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
    max-height: 220px;
    overflow-y: auto;
    padding: 4px;
}

.group-name-builder-suggestion {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    border-radius: 6px;
    padding: 7px 8px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
}

.group-name-builder-suggestion:hover {
    background: #f3f5f1;
}

.group-name-builder-missing {
    color: #9aa09a;
    font-style: italic;
}

.dropdown-options-editor {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    padding: 8px;
}

.dropdown-options-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.dropdown-options-summary {
    margin: 0;
}

.dropdown-options-toggle {
    min-height: 30px;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.2;
}

.dropdown-options-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dropdown-options-sort-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--crm-muted);
}

.dropdown-options-sort-toggle input[type="checkbox"] {
    margin: 0;
}

.dropdown-options-input-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dropdown-options-input-row .js-dropdown-option-input {
    flex: 1 1 auto;
}

.dropdown-options-input-row .js-file-category-input {
    flex: 1 1 auto;
}

.dropdown-options-input-row .js-client-custom-dropdown-option-input {
    flex: 1 1 180px;
}

.dropdown-options-csv-import {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 34px;
    margin: 0;
    cursor: pointer;
}

.dropdown-options-csv-import.button-muted {
    border: 1px solid #b9d0bf;
    background: #fff;
    color: var(--crm-brand-dark);
    font-weight: 600;
}

.dropdown-options-csv-import.button-muted:hover,
.dropdown-options-csv-import.button-muted:focus-within {
    border-color: var(--crm-brand);
    background: #eef7f0;
    color: var(--crm-brand-dark);
}

.dropdown-options-csv-import input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.dropdown-options-csv-import span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.dropdown-options-csv-import .system-icon {
    width: 14px;
    height: 14px;
}

.dropdown-options-import-help {
    margin: 0;
}

.dropdown-options-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dropdown-option-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 6px 8px;
    background: #fff;
    cursor: grab;
}

.dropdown-option-item.is-locked {
    cursor: default;
}

.dropdown-option-item.is-dragging {
    opacity: 0.45;
}

.dropdown-option-label {
    flex: 1 1 auto;
    word-break: break-word;
    color: #111;
}

.dropdown-option-item.is-locked .dropdown-option-label {
    color: var(--crm-muted);
}

.dropdown-option-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.dropdown-option-empty {
    padding: 4px 2px;
}

.dropdown-option-action {
    width: 28px;
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.dropdown-option-action svg {
    width: 14px;
    height: 14px;
    stroke: #4e5a4e;
    stroke-width: 1.8;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dropdown-option-action:disabled svg {
    stroke: #a6aca6;
}

.dropdown-option-remove svg {
    stroke: #7a4e4e;
}

.dropdown-option-drag-handle {
    cursor: grab;
}

.dropdown-option-drag-handle:disabled {
    cursor: default;
}


.insurer-logo-thumb {
    width: 56px;
    max-height: 32px;
    object-fit: contain;
    display: block;
}

.insurer-logo-preview {
    width: 180px;
    max-height: 90px;
    object-fit: contain;
    display: block;
    margin-top: 6px;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 6px;
    background: #fff;
}

@media (max-width: 899px) {
    body {
        overflow: auto;
    }

    body.mobile-menu-open {
        overflow: hidden;
        touch-action: none;
    }

    .crm-shell {
        height: auto;
        min-height: 100vh;
        min-height: 100dvh;
        overflow: visible;
    }

    .crm-content {
        overflow: visible;
    }

    .crm-page {
        overflow: visible;
        min-height: auto;
        padding-bottom: calc(14px + env(safe-area-inset-bottom));
    }

    .crm-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        max-width: 100vw;
        height: 100vh;
        height: 100dvh;
        z-index: 1200;
        border-right: 0;
        padding-top: calc(14px + env(safe-area-inset-top));
        padding-bottom: calc(14px + env(safe-area-inset-bottom));
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
    }

    .crm-right-calendar {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        max-width: 100vw;
        height: 100vh;
        height: 100dvh;
        border-left: 0;
        border-top: 0;
        background: linear-gradient(180deg, #edf4ef 0%, #e7f0ea 100%);
        padding: calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom));
        z-index: 1200;
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
    }

    .crm-right-calendar .right-calendar-card {
        height: 100%;
    }

    .crm-shell.calendar-collapsed .crm-right-calendar {
        display: none;
    }

    .top-search input {
        width: 140px;
    }

    .right-calendar-task-drag-handle {
        position: absolute;
        left: 8px;
        bottom: 4px;
        border: 1px dashed #b7c5b9;
        border-radius: 7px;
        background: #f8fcf8;
        color: #4d6053;
        font-size: 10px;
        line-height: 1;
        height: 20px;
        padding: 0 6px;
        display: inline-flex;
        align-items: center;
        gap: 4px;
        cursor: grab;
        touch-action: none;
        -webkit-touch-callout: none;
    }

    .right-calendar-task-controls {
        width: calc(100% - 94px);
    }

    .right-calendar-task-drag-handle span:first-child {
        font-size: 10px;
        letter-spacing: -1px;
        color: #6f8575;
    }

    .right-calendar-task-drag-handle:active {
        cursor: grabbing;
        background: #edf6ef;
    }

    .right-calendar-mobile-drag-guide {
        display: block;
        margin-bottom: 6px;
        border: 1px solid #d5dfd7;
        border-radius: 8px;
        background: #f7fbf8;
        color: #5c6f62;
        font-size: 11px;
        line-height: 1.35;
        padding: 7px 8px;
    }

    .task-list-layout {
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        height: auto;
        min-height: 0;
    }

    .task-list-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .task-list-toolbar-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .task-list-sort-panel {
        position: fixed;
        top: calc(60px + env(safe-area-inset-top));
        left: 12px;
        right: 12px;
        width: auto;
        max-width: none;
        z-index: 1300;
    }

    .task-list-filter-panel {
        flex: 1 1 auto;
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
        height: auto;
        position: static;
        max-height: none;
        overflow: visible;
    }

    .task-list-filter-panel-title {
        border-top-left-radius: 9px;
        border-top-right-radius: 9px;
    }

    .task-list-filter-panel-body {
        overflow: visible;
    }

    .task-list-layout .task-list-filter-panel.is-hidden {
        display: none !important;
    }

    .task-list-filter-date-grid {
        grid-template-columns: 1fr;
    }

    .task-list-main {
        width: 100%;
        height: auto;
        max-width: 100%;
        overflow-x: hidden;
        overflow-y: visible;
        max-height: none;
    }

    .js-task-list-layout,
    .js-task-list-layout .task-list-filter-panel,
    .js-task-list-main {
        max-height: none;
    }

    .js-task-list-main {
        overflow-x: hidden;
        overflow-y: visible;
    }

    .js-task-list-main .js-task-list-view,
    .js-task-list-main .js-task-kanban-view {
        overflow-x: auto;
        overflow-y: visible;
    }

    .js-client-list-layout,
    .js-client-list-layout .task-list-filter-panel,
    .js-client-list-main {
        max-height: none;
    }

    .js-client-list-main {
        overflow-x: hidden;
        overflow-y: visible;
    }

    .js-client-list-main .js-client-list-view {
        overflow-x: auto;
        overflow-y: visible;
    }

    .js-task-list-view {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .js-task-list-view table {
        width: auto;
        min-width: 760px !important;
        table-layout: auto;
    }

    .task-list-filter-empty,
    .task-list-pagination,
    .js-task-kanban-view {
        width: 100%;
        max-width: 100%;
    }

    .task-list-pagination {
        flex-direction: column;
        align-items: stretch;
    }

    .task-list-pagination-controls {
        justify-content: space-between;
        flex-wrap: nowrap;
    }

    .task-list-filter-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .task-list-edit-panel-grid {
        grid-template-columns: 1fr;
    }

    .task-tag-new-row {
        grid-template-columns: 1fr;
    }
}

.custom-fields-settings-card > .policy-create-card-summary {
	align-items: center;
}

.custom-fields-settings-summary {
	margin-left: auto;
	margin-right: 28px;
	color: var(--crm-muted);
	font-size: 12px;
	font-weight: 500;
}

.custom-fields-settings-content {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0 16px 16px;
}

.custom-fields-settings-content > .small-text {
	margin: 0;
	max-width: 780px;
}

.custom-fields-module-card {
	border: 1px solid var(--crm-border);
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.custom-fields-module-summary {
	position: relative;
	display: flex;
	align-items: center;
	gap: 11px;
	min-height: 66px;
	padding: 12px 46px 12px 14px;
	background: linear-gradient(135deg, #f8fbf8 0%, #f2f7f3 100%);
	cursor: pointer;
	list-style: none;
}

.custom-fields-module-summary::-webkit-details-marker {
	display: none;
}

.custom-fields-module-summary::after {
    position: absolute;
    right: 16px;
    content: '';
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-brand);
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.custom-fields-module-card[open] > .custom-fields-module-summary::after {
    transform: rotate(225deg);
}

.custom-fields-module-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: var(--crm-brand);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
}

.custom-fields-module-copy {
	display: flex;
	flex: 1;
	min-width: 0;
	flex-direction: column;
	gap: 2px;
}

.custom-fields-module-copy strong {
	color: var(--crm-text);
	font-size: 14px;
}

.custom-fields-module-copy small {
	color: var(--crm-muted);
	font-size: 12px;
}

.custom-fields-module-badge {
	padding: 4px 8px;
	border: 1px solid #cddbd0;
	border-radius: 99px;
	background: #fff;
	color: var(--crm-brand-dark);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.client-custom-fields-settings {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 20px;
	border-top: 1px solid var(--crm-border);
}

.client-custom-fields-settings .js-client-custom-fields-settings {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
}

.client-custom-fields-builder-note {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 9px 11px;
	border: 1px solid #d9e6dc;
	border-radius: 7px;
	background: #f8fbf8;
	color: var(--crm-muted);
	font-size: 12px;
}

.client-custom-fields-builder-note span {
    display: inline-flex;
    width: 16px;
    height: 16px;
    color: var(--crm-brand);
}

.client-custom-field-list {
	display: block;
}

.client-custom-field-row + .client-custom-field-row {
	margin-top: 12px;
}

.client-custom-fields-empty {
	padding: 22px;
	border: 1px dashed #b7c9bb;
	border-radius: 8px;
	background: #fcfdfc;
	color: var(--crm-muted);
	font-size: 13px;
	text-align: center;
}

.client-custom-field-row {
	display: flex;
	flex-direction: column;
	border: 1px solid #dbe5de;
	border-radius: 8px;
	background: #fff;
	box-shadow: none;
	overflow: hidden;
}

.client-custom-field-row.is-dragging {
	opacity: 0.45;
}

.client-custom-field-row-header {
	display: flex;
	align-items: center;
	gap: 4px;
	min-height: 48px;
	padding: 6px 8px 6px 10px;
	border-bottom: 1px solid #e4ebe6;
	background: #fff;
	transition: background-color 0.16s ease;
}

.client-custom-field-row-header:hover {
	background: #fbfcfb;
}

.client-custom-field-drag-handle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 30px;
	border-radius: 6px;
	color: #89978e;
	cursor: grab;
    user-select: none;
}

.client-custom-field-drag-handle .system-icon {
    width: 18px;
    height: 18px;
}

.client-custom-field-drag-handle:hover {
	background: #eff4f0;
	color: var(--crm-brand-dark);
}

.client-custom-field-drag-handle:active {
	cursor: grabbing;
}

.client-custom-field-position {
	flex: 0 0 auto;
	padding: 3px 6px;
	border: 1px solid #dce8df;
	border-radius: 99px;
	background: #f2f7f3;
	color: #476451;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.client-custom-field-toggle {
	display: flex;
	align-items: center;
	min-width: 0;
	flex: 1;
	gap: 8px;
	min-height: 34px;
	padding: 4px 7px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: inherit;
	cursor: pointer;
	text-align: left;
}

.client-custom-field-toggle:hover,
.client-custom-field-toggle:focus-visible {
	background: #f0f6f1;
}

.client-custom-field-title {
	min-width: 0;
	overflow: hidden;
	color: var(--crm-text);
	font-size: 14px;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.client-custom-field-type-summary {
	margin-left: auto;
	padding: 3px 7px;
	border-radius: 99px;
	background: #f1f4f2;
	color: #65746a;
	font-size: 11px;
	font-weight: 600;
	white-space: nowrap;
}

.client-custom-field-toggle-icon {
    flex: 0 0 auto;
    color: #7b8a80;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.client-custom-field-row.is-collapsed .client-custom-field-toggle-icon {
    transform: rotate(-45deg);
}

.client-custom-field-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	margin-left: 2px;
	border: 1px solid #f0dddd;
	border-radius: 6px;
	background: #fff;
	color: #b65353;
    text-decoration: none;
}

.client-custom-field-remove .system-icon {
    width: 16px;
    height: 16px;
}

.client-custom-field-remove:hover,
.client-custom-field-remove:focus-visible {
	border-color: #edc8c8;
	background: #fff4f4;
	color: #8f3636;
}

.client-custom-field-body {
	background: #fbfcfb;
}

.client-custom-field-input-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	padding: 16px;
}

.client-custom-field-input-grid .form-row {
	margin: 0;
}

/* Conditions are a full-width editor, not a single field in the two-column field grid. */
.client-custom-field-input-grid .form-row-wide {
	grid-column: 1 / -1;
	width: 100%;
}

.client-custom-field-input-grid .form-row-wide .client-field-conditions-box {
	width: 100%;
	box-sizing: border-box;
}

.client-custom-field-input-grid .js-client-custom-field-options-row {
	grid-column: 1 / -1;
}

.client-custom-other-option-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--crm-text);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.client-custom-other-option-toggle input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin: 0;
}

.client-custom-dropdown-control {
	display: grid;
	gap: 8px;
}

.client-custom-dropdown-other {
	display: grid;
	gap: 4px;
	padding: 10px;
	border: 1px solid #dce8df;
	border-radius: 7px;
	background: #f7faf7;
}

.client-custom-dropdown-other .small-text {
	margin: 0;
}

.field-optional-label {
	color: var(--crm-muted);
	font-size: 11px;
	font-weight: 400;
}

.client-custom-field-drop-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border: 2px dashed var(--crm-brand);
	border-radius: 8px;
	background: #edf6ef;
	color: var(--crm-brand-dark);
	font-size: 12px;
	font-weight: 700;
}

.client-custom-dropdown-option-drop-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	border: 2px dashed var(--crm-brand);
	border-radius: 8px;
	background: #edf6ef;
	color: var(--crm-brand-dark);
	font-size: 12px;
	font-weight: 700;
}

.client-custom-fields-actions {
	margin-top: 0;
	justify-content: flex-end;
}

.client-custom-fields-actions .js-client-custom-field-add span {
	margin-right: 4px;
	font-size: 16px;
	font-weight: 700;
	line-height: 0;
}

@media (max-width: 700px) {
	.custom-fields-settings-summary {
		display: none;
	}

	.custom-fields-module-summary {
		align-items: flex-start;
	}

	.custom-fields-module-badge {
		margin-right: 12px;
	}

	.client-custom-field-input-grid {
		grid-template-columns: 1fr;
	}

	.client-custom-field-input-grid .js-client-custom-field-options-row {
		grid-column: auto;
	}
}

@media (min-width: 900px) {
    .right-calendar-header {
        grid-template-columns: minmax(0, 1fr);
    }

    .right-calendar-mobile-close {
        display: none;
    }

    .crm-shell {
        flex-direction: row;
    }

    .crm-sidebar {
        width: 250px;
        display: flex;
        height: 100vh;
        min-height: 100vh;
        transition: width 0.2s ease;
    }

    .crm-shell.sidebar-collapsed .crm-sidebar {
        width: 76px;
    }

    .crm-shell.sidebar-collapsed .brand-block > div:last-child,
    .crm-shell.sidebar-collapsed .nav-link-label,
    .crm-shell.sidebar-collapsed .sidebar-footer,
    .crm-shell.sidebar-collapsed .sidebar-collapse-label {
        display: none;
    }

    .crm-shell.sidebar-collapsed .nav-link {
        justify-content: center;
        padding-left: 8px;
        padding-right: 8px;
    }

    .crm-shell.sidebar-collapsed .brand-block {
        justify-content: center;
    }

    .crm-shell.sidebar-collapsed .sidebar-collapse-toggle {
        justify-content: center;
        padding-left: 8px;
        padding-right: 8px;
    }

    .icon-button {
        display: none;
    }

    #sidebarToggle {
        display: none;
    }

    .topbar-panel-toggle {
        display: inline-flex;
    }

    .grid-cards {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .dashboard-layout {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    }

    .dashboard-hero-top {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
    }

    .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .permission-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-builder-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .reports-related-tables {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .reports-builder-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .reports-concat-form {
        grid-template-columns: 1fr;
    }

    .condition-item {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        align-items: end;
    }

    .condition-item .inline-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .reports-condition-row {
        grid-template-columns: 86px minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1.2fr) max-content auto;
    }

    .reports-condition-row .js-condition-value {
        grid-column: auto;
    }

    .client-view-actions {
        margin-left: auto;
    }
}

@media (min-width: 900px) {
    .crm-right-calendar {
        display: block;
        width: 292px;
        min-width: 292px;
        max-width: 292px;
        height: 100vh;
        min-height: 100vh;
        border-left: 1px solid var(--crm-border);
        background: linear-gradient(180deg, #edf4ef 0%, #e7f0ea 100%);
        padding: 8px;
        transition: width 0.22s ease, min-width 0.22s ease, max-width 0.22s ease, padding 0.22s ease;
    }

    .crm-shell.calendar-collapsed .crm-right-calendar {
        width: 0;
        min-width: 0;
        max-width: 0;
        padding: 0;
        border-left: 0;
        overflow: hidden;
    }

    .crm-shell.calendar-collapsed .crm-right-calendar .right-calendar-card {
        display: none;
    }

}

@media (min-width: 1400px) {
    .crm-right-calendar {
        width: 336px;
        min-width: 336px;
        max-width: 336px;
    }
}

h1, h2, h3, h4, h5, h6 {
    padding: 0px;
}

.policy-dynamic-structure {
    margin-top: 10px;
}

.policy-section-card {
    margin-bottom: 12px;
}

.policy-group-card {
    margin-top: 8px;
}

.policy-field-list {
    margin: 0;
    padding: 0;
}

.policy-field-list .form-row {
    margin-bottom: 8px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-1,
.policy-field-list .js-policy-condition-row.policy-field-depth-2,
.policy-field-list .js-policy-condition-row.policy-field-depth-3,
.policy-field-list .js-policy-condition-row.policy-field-depth-4,
.policy-field-list .js-policy-condition-row.policy-field-depth-5,
.policy-field-list .js-policy-condition-row.policy-field-depth-6,
.policy-field-list .js-policy-condition-row.policy-field-depth-7,
.policy-field-list .js-policy-condition-row.policy-field-depth-8 {
    border-left: 2px solid #dcdcd3;
    padding-left: 10px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-1 {
    margin-left: 18px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-2 {
    margin-left: 36px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-3 {
    margin-left: 54px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-4 {
    margin-left: 72px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-5 {
    margin-left: 90px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-6 {
    margin-left: 108px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-7 {
    margin-left: 126px;
}

.policy-field-list .js-policy-condition-row.policy-field-depth-8 {
    margin-left: 144px;
}

.currency-input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.currency-prefix {
    padding: 9px 10px;
    color: var(--crm-muted);
    background: #f3f5f2;
    border-right: 1px solid var(--crm-border);
    min-width: 36px;
    text-align: center;
}

.currency-input-wrap input {
    border: 0;
    border-radius: 0;
    flex: 1 1 auto;
}

.currency-input-wrap input:focus {
    outline: none;
}

.policy-field-list select.js-policy-field-input {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 960px;
    background-color: #fff !important;
    color: var(--crm-text);
    padding-right: 38px;
}

.policy-field-list .js-policy-address-input,
.policy-field-list .js-currency-field-input {
    max-width: 960px;
}

.go4-invalid-row > label {
    color: var(--crm-red);
}

input.go4-invalid-field,
select.go4-invalid-field,
textarea.go4-invalid-field,
.tox-tinymce.go4-invalid-field {
    border-color: var(--crm-red);
    box-shadow: 0 0 0 2px rgba(197, 99, 99, 0.12);
}

.currency-input-wrap.go4-invalid-wrap {
    border-color: var(--crm-red);
    box-shadow: 0 0 0 2px rgba(197, 99, 99, 0.12);
}

.policy-entry-card {
    padding: 0;
    border-style: solid;
    overflow: hidden;
    background: #fff;
}

.policy-entry-card-summary {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    cursor: pointer;
    padding: 10px;
    list-style: none;
}

.policy-entry-card-summary::-webkit-details-marker {
    display: none;
}

.policy-entry-card-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-muted);
    margin-left: auto;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.policy-entry-card[open] .policy-entry-card-summary::after {
    transform: rotate(225deg);
}

.policy-entry-card-body {
    padding: 10px;
    border-top: 1px solid var(--crm-border);
    background: #f9f9f6;
}

.repeat-entry .js-remove-repeat-entry {
    margin-top: 6px;
}

.policy-create-card {
    padding: 0;
}

.policy-create-card-summary {
    display: flex;
    align-items: center;
    cursor: pointer;
    padding: 16px;
    list-style: none;
}

.policy-create-card-title {
    margin: 0;
}

.policy-create-card-summary::-webkit-details-marker {
    display: none;
}

.policy-create-card-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-muted);
    margin-left: auto;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.policy-create-card[open] .policy-create-card-summary::after {
    transform: rotate(225deg);
}

.task-template-new-template-card {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: #fff;
    margin-top: 6px;
}

.task-template-new-template-summary {
    display: flex;
    align-items: center;
    cursor: pointer;
    padding: 10px 12px;
    list-style: none;
    font-weight: 600;
}

.task-template-new-template-summary::-webkit-details-marker {
    display: none;
}

.task-template-new-template-summary::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--crm-muted);
    margin-left: auto;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.task-template-new-template-card[open] .task-template-new-template-summary::after {
    transform: rotate(225deg);
}

.task-template-new-template-card > h3,
.task-template-new-template-card > form,
.task-template-new-template-card > p,
.task-template-new-template-card > .inline-actions {
    margin-left: 12px;
    margin-right: 12px;
}

.task-template-new-template-card > h3 {
    margin-top: 0;
    margin-bottom: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--crm-border);
}

.task-template-new-template-card > form:last-child,
.task-template-new-template-card > p:last-child,
.task-template-new-template-card > .inline-actions:last-child {
    margin-bottom: 12px;
}

.policy-create-card > form,
.policy-create-card > .policy-dynamic-structure,
.policy-create-card > p,
.policy-create-card > .inline-actions,
.policy-create-card > h4 {
    margin-left: 16px;
    margin-right: 16px;
}

.policy-create-card > form:last-child,
.policy-create-card > .inline-actions:last-child,
.policy-create-card > p:last-child,
.policy-create-card > .policy-dynamic-structure:last-child {
    margin-bottom: 16px;
}

.crm-form-launch-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.crm-form-launch-button {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    width: auto;
    max-width: 100%;
    gap: 10px;
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #fff;
    color: var(--crm-text);
    padding: 7px 11px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}

.form-grid + .crm-form-launch-button,
.form-row + .crm-form-launch-button,
form > .panel-card + .crm-form-launch-button {
    display: inline-flex;
    margin-left: 0;
    align-self: flex-start;
}

.crm-form-launch-button:hover,
.crm-form-launch-button:focus {
    border-color: #b8c0b7;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

.crm-form-launch-button:focus {
    outline: 2px solid var(--crm-brand-light);
    outline-offset: 1px;
}

.crm-form-launch-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: var(--crm-brand-light);
    color: var(--crm-brand-dark);
    line-height: 1;
    flex: 0 0 20px;
}

.crm-form-launch-icon .system-icon {
    width: 13px;
    height: 13px;
}

.crm-form-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1200;
    padding: 20px;
}

.crm-form-modal.is-open {
    display: flex;
}

.crm-form-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}

.crm-form-modal-panel {
    position: relative;
    width: 100%;
    max-width: 980px;
    max-height: calc(100vh - 40px);
    overflow: auto;
    border-radius: 10px;
    border: 1px solid var(--crm-brand);
    background: #fff;
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.22);
}

.crm-form-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid #2a4c32;
    background: var(--crm-brand);
    color: #ffffff;
}

.crm-form-modal-title {
    font-size: 15px;
    color: inherit;
}

.crm-form-modal-close {
    min-width: 40px;
    min-height: 40px;
    padding: 0;
    border: none;
    background: transparent;
    color: #ffffff;
}

.crm-form-modal-close .system-icon {
    width: 22px;
    height: 22px;
    margin: 0;
}

.crm-form-modal-close:hover,
.crm-form-modal-close:focus-visible {
    background: rgba(255, 255, 255, 0.14);
    border-radius: 8px;
}

.crm-form-modal-body {
    padding: 16px;
}

.crm-form-modal .policy-create-card {
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

.crm-form-modal .policy-create-card-summary {
    display: none;
}

.crm-form-modal-loading-body {
    min-height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
}

.crm-form-modal-loading-indicator {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    border: 3px solid #dfe6df;
    border-top-color: var(--crm-brand);
    animation: crm-form-modal-spinner 0.8s linear infinite;
}

.crm-form-modal-loading-text {
    margin: 0;
    color: var(--crm-muted);
}

.crm-form-modal-loading .crm-form-modal-panel {
    max-width: 560px;
}

.crm-form-modal-loading .crm-form-modal-body {
    padding: 28px 20px;
}

@keyframes crm-form-modal-spinner {
    to {
        transform: rotate(360deg);
    }
}

body.crm-modal-open {
    overflow: hidden;
}

.central-document-pilot .js-central-document-row.is-deleted {
    opacity: 0.58;
    text-decoration: line-through;
}

.central-document-pilot .js-central-document-row.is-deleted a {
    text-decoration: none;
}

.central-document-pilot.is-loading #documentRegisterContent {
    opacity: 0.55;
    pointer-events: none;
}

@media (max-width: 900px) {
    .crm-form-modal {
        padding: 10px;
    }

    .crm-form-modal-panel {
        max-height: calc(100vh - 20px);
    }
}
.signing-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
