.workflow-agenda-page {
    display: grid;
    gap: 1rem;
}

.workflow-agenda-toolbar {
    display: grid;
    gap: 0.875rem;
}

.workflow-agenda-toolbar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
}

.workflow-agenda-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--app-text-muted, #475569);
    margin-bottom: 0.35rem;
}

.workflow-agenda-multi {
    min-height: 110px;
}

.workflow-agenda-actions {
    display: flex;
    justify-content: flex-end;
}

.workflow-agenda-list {
    display: grid;
    gap: 0.75rem;
}

.workflow-agenda-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    text-decoration: none;
}

.workflow-agenda-main {
    min-width: 0;
}

.workflow-agenda-matter-number {
    color: var(--app-text, #0f172a);
    font-size: 0.98rem;
    font-weight: 700;
}

.workflow-agenda-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 0.25rem;
    color: var(--app-text-muted, #475569);
    font-size: 0.8rem;
}

.workflow-agenda-side {
    display: grid;
    justify-items: end;
    gap: 0.25rem;
}

.workflow-agenda-stage {
    color: var(--app-text, #334155);
    font-size: 0.76rem;
    font-weight: 600;
}

.workflow-agenda-date {
    color: var(--app-text-muted, #475569);
    font-size: 0.76rem;
}

.replia-inline-date-field {
    max-width: 20rem;
}

.replia-inline-date-input {
    border-color: var(--app-border, rgb(203 213 225));
    background: var(--app-surface-muted, rgb(248 250 252));
    color: var(--app-text, #0f172a);
}

.replia-inline-date-input:focus {
    border-color: var(--app-accent, #3727c1);
    box-shadow: 0 0 0 1px var(--app-accent, #3727c1);
}
.app-card {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(255 255 255);
    padding: 1rem;
}

.dark .app-card {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.app-muted {
    color: rgb(107 114 128);
}

.dark .app-muted {
    color: rgb(156 163 175);
}

.app-title {
    font-size: 1rem;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .app-title {
    color: rgb(243 244 246);
}

.app-open-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid rgb(148 163 184 / 40%);
    border-radius: 0.5rem;
    background: rgb(100 116 139 / 14%);
    padding: 0.1rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: rgb(51 65 85);
}

.dark .app-open-chip {
    border-color: rgb(148 163 184 / 32%);
    background: rgb(100 116 139 / 22%);
    color: rgb(226 232 240);
}

.app-section-title {
    margin-bottom: 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgb(107 114 128);
}

.dark .app-section-title {
    color: rgb(156 163 175);
}

.app-log-entry.reverted {
    text-decoration: line-through;
    opacity: 0.7;
}

/* Welcome card: name + role (matches Filament account widget rhythm). */
.fi-account-widget-user-name .fi-account-widget-user-role {
    margin-left: 0.35rem;
    font-weight: 500;
    color: rgb(107 114 128);
}

.dark .fi-account-widget-user-name .fi-account-widget-user-role {
    color: rgb(156 163 175);
}

/* Always display status color options as colored buttons. */
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='gray']) label { background: rgb(107 114 128) !important; border-color: rgb(107 114 128) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='slate']) label { background: rgb(100 116 139) !important; border-color: rgb(100 116 139) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='zinc']) label { background: rgb(113 113 122) !important; border-color: rgb(113 113 122) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='red']) label { background: rgb(239 68 68) !important; border-color: rgb(239 68 68) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='orange']) label { background: rgb(249 115 22) !important; border-color: rgb(249 115 22) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='amber']) label { background: rgb(245 158 11) !important; border-color: rgb(245 158 11) !important; color: rgb(17 24 39) !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='yellow']) label { background: rgb(234 179 8) !important; border-color: rgb(234 179 8) !important; color: rgb(17 24 39) !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='lime']) label { background: rgb(132 204 22) !important; border-color: rgb(132 204 22) !important; color: rgb(17 24 39) !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='green']) label { background: rgb(34 197 94) !important; border-color: rgb(34 197 94) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='emerald']) label { background: rgb(16 185 129) !important; border-color: rgb(16 185 129) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='teal']) label { background: rgb(20 184 166) !important; border-color: rgb(20 184 166) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='cyan']) label { background: rgb(6 182 212) !important; border-color: rgb(6 182 212) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='blue']) label { background: rgb(59 130 246) !important; border-color: rgb(59 130 246) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='indigo']) label { background: rgb(99 102 241) !important; border-color: rgb(99 102 241) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='pink']) label { background: rgb(236 72 153) !important; border-color: rgb(236 72 153) !important; color: white !important; }

.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input:checked) label {
    box-shadow: 0 0 0 2px rgb(255 255 255 / 65%) inset, 0 0 0 1px rgb(17 24 39 / 20%);
}

/* Settings page layout tokens (avoid per-page inline styling). */
.settings-page {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
    overflow-x: clip;
}

.settings-card {
    padding: 1.25rem;
    border-radius: 0.9rem;
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}

.settings-card-actions {
    margin-top: 0.85rem;
    display: flex;
    justify-content: flex-end;
}

.settings-definition-grid {
    margin-top: 0.75rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem 1.4rem;
}

.settings-definition-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid rgb(229 231 235);
    padding-bottom: 0.4rem;
}

.dark .settings-definition-row {
    border-bottom-color: rgb(55 65 81);
}

.settings-definition-row dt {
    font-size: 0.9rem;
    color: rgb(107 114 128);
}

.dark .settings-definition-row dt {
    color: rgb(156 163 175);
}

.settings-definition-row dd {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .settings-definition-row dd {
    color: rgb(243 244 246);
}

.settings-items-grid {
    margin-top: 0.9rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.9rem;
}

.settings-item-card {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.9rem;
    min-width: 0;
    max-width: 100%;
}

.dark .settings-item-card {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.settings-item-card-inner {
    min-height: 8rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.8rem;
}

.settings-item-card--version .settings-item-card-inner {
    min-height: 11rem;
}

.settings-item-card--version .settings-definition-grid {
    margin-top: 1rem;
    gap: 0.9rem 1.6rem;
    grid-template-columns: 1fr;
}

.settings-item-card--version .settings-definition-row {
    padding-bottom: 0.55rem;
    min-width: 0;
}

.settings-item-card--version .settings-definition-row dt {
    min-width: 8.5rem;
    flex-shrink: 0;
}

.settings-item-card--version .settings-definition-row dd {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    min-width: 0;
    flex: 1 1 auto;
    text-align: end;
}

/* System Version: one outer card only; full width so metadata is not squeezed. */
.settings-card--system .settings-item-card--version {
    border: 0;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.dark .settings-card--system .settings-item-card--version {
    background: transparent;
}

.settings-card--system .settings-items-grid {
    grid-template-columns: 1fr;
}

/* System Health page: mirror settings/version visual rhythm. */
.system-health-page {
    max-width: 1120px;
}

.system-health-subtitle {
    margin-top: 0.35rem;
    margin-bottom: 0.95rem;
    font-size: 0.86rem;
}

.system-health-stat-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.system-health-definition-grid {
    margin-top: 0;
    gap: 0.5rem;
}

.system-health-list {
    display: grid;
    gap: 0.65rem;
}

.system-health-list-item {
    padding: 0.75rem 0.85rem;
    overflow: hidden;
}

.system-health-item-title {
    font-size: 0.9rem;
    margin-bottom: 0.45rem;
}

.system-health-error-details {
    width: 100%;
}

.system-health-error-summary {
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    color: rgb(107 114 128);
    margin-bottom: 0.45rem;
}

.dark .system-health-error-summary {
    color: rgb(156 163 175);
}

.system-health-error-text {
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.77rem;
    line-height: 1.35;
    color: rgb(31 41 55);
    max-width: 100%;
}

.dark .system-health-error-text {
    color: rgb(229 231 235);
}

.system-health-error-textarea {
    width: 100%;
    min-height: 9rem;
    margin: 0;
    border: 1px solid rgb(209 213 219);
    border-radius: 0.6rem;
    background: rgb(249 250 251);
    padding: 0.65rem 0.75rem;
    resize: vertical;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.77rem;
    line-height: 1.35;
    color: rgb(31 41 55);
}

.dark .system-health-error-textarea {
    border-color: rgb(75 85 99);
    background: rgb(17 24 39);
    color: rgb(229 231 235);
}

.system-health-error-actions {
    margin-top: 0.65rem;
    display: flex;
    justify-content: flex-end;
}

.system-health-table-wrap {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    overflow: auto;
    padding: 0.45rem 0.55rem;
}

.dark .system-health-table-wrap {
    border-color: rgb(55 65 81);
}

.system-health-table thead th {
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.7rem 0.8rem;
    white-space: nowrap;
}

.system-health-table tbody td {
    padding: 0.65rem 0.8rem;
    vertical-align: top;
}

.system-health-table thead th + th,
.system-health-table tbody td + td {
    border-left: 1px solid rgb(229 231 235);
}

.dark .system-health-table thead th + th,
.dark .system-health-table tbody td + td {
    border-left-color: rgb(55 65 81);
}

.system-health-detail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.85rem;
}

@media (min-width: 768px) {
    .settings-card--system .settings-items-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .settings-card--system .settings-item-card--version {
        grid-column: 1 / -1;
    }
}

@media (min-width: 768px) {
    .settings-definition-grid {
        grid-template-columns: 1fr 1fr;
    }

    .settings-item-card--version .settings-definition-grid {
        grid-template-columns: 1fr;
    }

    .settings-items-grid {
        grid-template-columns: 1fr 1fr;
    }

    .system-health-stat-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1280px) {
    .settings-items-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .system-health-stat-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .system-health-detail-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
    }
}

/* Unit Dashboard — same layout system as Settings (filament-app.css). */
.unit-dashboard-page {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.unit-dashboard-metrics {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.unit-dashboard-columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 1100px) {
    .unit-dashboard-columns--triple {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.unit-dashboard-panel {
    padding: 1.25rem;
    border-radius: 0.9rem;
}

.unit-dashboard-panel-title {
    margin-bottom: 0.75rem;
}

.unit-dashboard-toolbar-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.unit-dashboard-week-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.unit-dashboard-week-label {
    margin: 0;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .unit-dashboard-week-label {
    color: rgb(243 244 246);
}

.unit-dashboard-nav-button {
    border: 1px solid rgb(209 213 219);
    border-radius: 0.6rem;
    background: rgb(255 255 255);
    padding: 0.28rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: rgb(55 65 81);
}

.unit-dashboard-nav-button--subtle {
    font-weight: 500;
}

.dark .unit-dashboard-nav-button {
    border-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(229 231 235);
}

.unit-dashboard-filter-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.unit-dashboard-unit-select {
    border: 1px solid rgb(209 213 219);
    border-radius: 0.6rem;
    background: rgb(255 255 255);
    padding: 0.3rem 0.55rem;
    font-size: 0.85rem;
}

.dark .unit-dashboard-unit-select {
    border-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(243 244 246);
}

.unit-dashboard-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.unit-dashboard-link {
    display: block;
    text-decoration: none;
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.85rem 1rem;
    color: inherit;
}

.dark .unit-dashboard-link {
    border-color: rgb(55 65 81);
    background: rgb(31 41 55);
}

.unit-dashboard-link:hover {
    border-color: rgb(251 191 36);
    background: rgb(255 251 235);
}

.dark .unit-dashboard-link:hover {
    border-color: rgb(245 158 11 / 50%);
    background: rgb(55 48 33 / 40%);
}

.unit-dashboard-link-title {
    font-size: 0.95rem;
}

.unit-dashboard-link--meeting {
    padding: 0.65rem 0.75rem;
}

.unit-dashboard-link-meta {
    margin-top: 0.25rem;
    font-size: 0.8rem;
}

.unit-dashboard-empty {
    border: 1px dashed rgb(209 213 219);
    border-radius: 0.75rem;
    padding: 1rem;
    font-size: 0.9rem;
    color: rgb(107 114 128);
    background: rgb(249 250 251);
}

.dark .unit-dashboard-empty {
    border-color: rgb(75 85 99);
    color: rgb(156 163 175);
    background: rgb(17 24 39);
}

.unit-dashboard-calendars {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    max-width: 100%;
}

.unit-week-calendar {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.5rem;
    max-width: 100%;
}

.unit-week-column {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.75rem;
    min-height: 20rem;
}

.unit-dashboard-panel {
    min-width: 0;
    max-width: 100%;
}

.dark .unit-week-column {
    border-color: rgb(55 65 81);
    background: rgb(31 41 55);
}

.unit-week-day-title {
    margin: 0 0 0.5rem;
    font-size: 0.88rem;
    font-weight: 700;
}

.unit-week-day-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.unit-week-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.unit-week-item-title {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
}

.unit-week-item-meta,
.unit-week-item-note,
.unit-week-empty {
    margin: 0;
    font-size: 0.77rem;
}

.unit-status-chip {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    padding: 0.1rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 600;
}

.unit-status-chip--gray { border-color: rgb(100 116 139 / 35%); background: rgb(100 116 139 / 14%); color: rgb(51 65 85); }
.unit-status-chip--slate { border-color: rgb(100 116 139 / 35%); background: rgb(100 116 139 / 14%); color: rgb(51 65 85); }
.unit-status-chip--zinc { border-color: rgb(113 113 122 / 35%); background: rgb(113 113 122 / 14%); color: rgb(63 63 70); }
.unit-status-chip--red { border-color: rgb(239 68 68 / 35%); background: rgb(239 68 68 / 14%); color: rgb(185 28 28); }
.unit-status-chip--orange { border-color: rgb(249 115 22 / 35%); background: rgb(249 115 22 / 14%); color: rgb(194 65 12); }
.unit-status-chip--amber { border-color: rgb(245 158 11 / 35%); background: rgb(245 158 11 / 14%); color: rgb(180 83 9); }
.unit-status-chip--yellow { border-color: rgb(234 179 8 / 35%); background: rgb(234 179 8 / 14%); color: rgb(161 98 7); }
.unit-status-chip--lime { border-color: rgb(132 204 22 / 35%); background: rgb(132 204 22 / 14%); color: rgb(77 124 15); }
.unit-status-chip--green { border-color: rgb(34 197 94 / 35%); background: rgb(34 197 94 / 14%); color: rgb(21 128 61); }
.unit-status-chip--emerald { border-color: rgb(16 185 129 / 35%); background: rgb(16 185 129 / 14%); color: rgb(6 95 70); }
.unit-status-chip--teal { border-color: rgb(20 184 166 / 35%); background: rgb(20 184 166 / 14%); color: rgb(15 118 110); }
.unit-status-chip--cyan { border-color: rgb(6 182 212 / 35%); background: rgb(6 182 212 / 14%); color: rgb(14 116 144); }
.unit-status-chip--blue { border-color: rgb(59 130 246 / 35%); background: rgb(59 130 246 / 14%); color: rgb(29 78 216); }
.unit-status-chip--indigo { border-color: rgb(99 102 241 / 35%); background: rgb(99 102 241 / 14%); color: rgb(67 56 202); }
.unit-status-chip--pink { border-color: rgb(236 72 153 / 35%); background: rgb(236 72 153 / 14%); color: rgb(190 24 93); }

.dark .unit-status-chip--gray,
.dark .unit-status-chip--slate { border-color: rgb(148 163 184 / 32%); background: rgb(100 116 139 / 22%); color: rgb(226 232 240); }
.dark .unit-status-chip--zinc { border-color: rgb(161 161 170 / 32%); background: rgb(113 113 122 / 22%); color: rgb(228 228 231); }
.dark .unit-status-chip--red { border-color: rgb(248 113 113 / 34%); background: rgb(239 68 68 / 22%); color: rgb(252 165 165); }
.dark .unit-status-chip--orange { border-color: rgb(251 146 60 / 34%); background: rgb(249 115 22 / 22%); color: rgb(253 186 116); }
.dark .unit-status-chip--amber { border-color: rgb(251 191 36 / 34%); background: rgb(245 158 11 / 22%); color: rgb(253 230 138); }
.dark .unit-status-chip--yellow { border-color: rgb(250 204 21 / 34%); background: rgb(234 179 8 / 22%); color: rgb(254 240 138); }
.dark .unit-status-chip--lime { border-color: rgb(163 230 53 / 34%); background: rgb(132 204 22 / 22%); color: rgb(217 249 157); }
.dark .unit-status-chip--green { border-color: rgb(74 222 128 / 34%); background: rgb(34 197 94 / 22%); color: rgb(134 239 172); }
.dark .unit-status-chip--emerald { border-color: rgb(52 211 153 / 34%); background: rgb(16 185 129 / 22%); color: rgb(110 231 183); }
.dark .unit-status-chip--teal { border-color: rgb(45 212 191 / 34%); background: rgb(20 184 166 / 22%); color: rgb(153 246 228); }
.dark .unit-status-chip--cyan { border-color: rgb(34 211 238 / 34%); background: rgb(6 182 212 / 22%); color: rgb(165 243 252); }
.dark .unit-status-chip--blue { border-color: rgb(96 165 250 / 34%); background: rgb(59 130 246 / 22%); color: rgb(147 197 253); }
.dark .unit-status-chip--indigo { border-color: rgb(129 140 248 / 34%); background: rgb(99 102 241 / 22%); color: rgb(199 210 254); }
.dark .unit-status-chip--pink { border-color: rgb(244 114 182 / 34%); background: rgb(236 72 153 / 22%); color: rgb(251 207 232); }

@media (min-width: 768px) {
    .unit-dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .unit-week-calendar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .unit-week-calendar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .unit-dashboard-metrics--triple {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .unit-week-calendar {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

/* Meeting list: allow status/resolution badge popovers to extend past the cell. */
.fi-ta-cell-overflow-visible {
    overflow: visible !important;
}

.um-meeting-badge-picker__trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.um-meeting-badge-picker__badge {
    max-width: 12rem;
    justify-content: flex-start;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.um-meeting-badge-picker__icon {
    width: 0.72rem;
    height: 0.72rem;
    color: rgb(107 114 128);
}

.dark .um-meeting-badge-picker__icon {
    color: rgb(156 163 175);
}

.um-meeting-badge-picker__panel {
    position: absolute;
    right: 0;
    z-index: 70;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px;
    border-radius: 10px;
    background: rgb(255 255 255);
    border: 1px solid rgb(229 231 235);
    box-shadow: 0 12px 30px rgb(0 0 0 / 35%);
    max-width: 14rem;
}

.dark .um-meeting-badge-picker__panel {
    background: rgb(17 24 39);
    border-color: rgb(55 65 81);
}

.um-meeting-badge-picker__caret {
    position: absolute;
    top: -6px;
    left: 1.25rem;
    z-index: 1;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid rgb(255 255 255);
}

.dark .um-meeting-badge-picker__caret {
    border-bottom-color: rgb(17 24 39);
}

.um-meeting-badge-picker__option {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    border-radius: 0.5rem;
    padding: 0.2rem 0.15rem;
    transition: background-color 120ms ease;
}

.um-meeting-badge-picker__option:hover {
    background-color: rgb(243 244 246);
}

.dark .um-meeting-badge-picker__option:hover {
    background-color: rgb(55 65 81);
}

.um-meeting-rep-picker__trigger {
    max-width: 100%;
}

.um-meeting-rep-picker__label {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.um-meeting-rep-picker__panel {
    min-width: 18rem;
    max-width: 18rem;
    padding: 0;
    gap: 0;
    overflow: hidden;
}

.um-meeting-rep-picker__search {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.5rem;
    border-bottom: 1px solid rgb(229 231 235);
    background: inherit;
}

.dark .um-meeting-rep-picker__search {
    border-bottom-color: rgb(55 65 81);
}

.um-meeting-rep-picker__search-input {
    display: block;
    width: 100%;
    border-radius: 0.5rem;
    border: none;
    background: rgb(255 255 255);
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: rgb(3 7 18);
    box-shadow: inset 0 0 0 1px rgb(3 7 18 / 0.1);
}

.dark .um-meeting-rep-picker__search-input {
    background: rgb(255 255 255 / 0.05);
    color: rgb(255 255 255);
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.2);
}

.um-meeting-rep-picker__unassigned {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 0.5rem;
    border: 0;
    border-bottom: 1px dashed rgb(209 213 219);
    background: rgb(249 250 251);
    padding: 0.625rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: rgb(75 85 99);
    cursor: pointer;
    transition: background-color 120ms ease;
}

.um-meeting-rep-picker__unassigned:hover {
    background: rgb(243 244 246);
}

.dark .um-meeting-rep-picker__unassigned {
    border-bottom-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(209 213 219);
}

.dark .um-meeting-rep-picker__unassigned:hover {
    background: rgb(55 65 81);
}

.um-meeting-rep-picker__unassigned-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    opacity: 0.8;
}

.um-meeting-rep-picker__list {
    display: flex;
    max-height: 16rem;
    flex-direction: column;
    overflow-y: auto;
}

.um-meeting-rep-picker__option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0.375rem 0.5rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 120ms ease;
}

.um-meeting-rep-picker__option:hover {
    background-color: rgb(243 244 246);
}

.dark .um-meeting-rep-picker__option:hover {
    background-color: rgb(55 65 81);
}

.um-meeting-rep-picker__option-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.um-meeting-rep-picker__calendar-icon {
    width: 0.875rem;
    height: 0.875rem;
}

.um-meeting-rep-picker__badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1rem;
    white-space: nowrap;
}

.um-meeting-rep-picker__badge--gray {
    background: rgb(243 244 246);
    color: rgb(75 85 99);
}

.um-meeting-rep-picker__badge--success {
    background: rgb(220 252 231);
    color: rgb(21 128 61);
}

.um-meeting-rep-picker__badge--warning {
    background: rgb(254 243 199);
    color: rgb(180 83 9);
}

.um-meeting-rep-picker__badge--danger {
    background: rgb(254 226 226);
    color: rgb(185 28 28);
}

.dark .um-meeting-rep-picker__badge--gray {
    background: rgb(55 65 81);
    color: rgb(209 213 219);
}

.dark .um-meeting-rep-picker__badge--success {
    background: rgb(20 83 45 / 0.35);
    color: rgb(134 239 172);
}

.dark .um-meeting-rep-picker__badge--warning {
    background: rgb(120 53 15 / 0.35);
    color: rgb(252 211 77);
}

.dark .um-meeting-rep-picker__badge--danger {
    background: rgb(127 29 29 / 0.35);
    color: rgb(252 165 165);
}

.um-meeting-rep-picker__mark {
    border-radius: 0.125rem;
    background: rgb(var(--primary-500) / 0.2);
    color: inherit;
    padding: 0;
}

.dark .um-meeting-rep-picker__mark {
    background: rgb(255 255 255 / 0.12);
}

.um-meeting-rep-picker__empty {
    padding: 0.75rem;
    font-size: 0.875rem;
    color: rgb(107 114 128);
}

.dark .um-meeting-rep-picker__empty {
    color: rgb(156 163 175);
}

.um-matter-status-entry {
    position: relative;
    overflow: visible;
}

.um-meeting-badge-picker--matter {
    position: relative;
    display: inline-flex;
    overflow: visible;
}

.um-meeting-badge-picker__panel--matter {
    top: calc(100% + 0.4rem);
    left: 0;
    right: auto;
    min-width: 13rem;
    max-width: 16rem;
}

.um-process-card {
    display: grid;
    gap: 1rem;
}

.um-process-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 1fr;
}

.um-process-stat {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.7rem 0.8rem;
}

.dark .um-process-stat {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.um-process-label {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgb(107 114 128);
}

.dark .um-process-label {
    color: rgb(156 163 175);
}

.um-process-value {
    margin: 0.3rem 0 0;
    font-size: 0.88rem;
    color: rgb(17 24 39);
}

.dark .um-process-value {
    color: rgb(243 244 246);
}

.um-process-section {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.8rem;
    background: rgb(249 250 251);
    padding: 0.8rem;
}

.dark .um-process-section {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.um-process-list {
    margin-top: 0.55rem;
    display: grid;
    gap: 0.5rem;
}

.um-process-item {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.7rem;
    background: rgb(255 255 255);
    padding: 0.55rem 0.65rem;
}

.dark .um-process-item {
    border-color: rgb(55 65 81);
    background: rgb(31 41 55);
}

.um-process-item-title {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .um-process-item-title {
    color: rgb(243 244 246);
}

.um-process-item-meta {
    margin: 0.22rem 0 0;
    font-size: 0.76rem;
    color: rgb(75 85 99);
}

.dark .um-process-item-meta {
    color: rgb(156 163 175);
}

.um-process-empty {
    margin: 0;
    border: 1px dashed rgb(209 213 219);
    border-radius: 0.65rem;
    background: rgb(255 255 255);
    padding: 0.6rem 0.7rem;
    font-size: 0.8rem;
    color: rgb(107 114 128);
}

.dark .um-process-empty {
    border-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(156 163 175);
}

@media (min-width: 768px) {
    .um-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Public home page */
.home-shell {
    min-height: 100vh;
    background: #0b1120;
    color: #e5edf7;
    font-family: "Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

/* Filament sidebar / topbar: organization logo left of app name */
.fi-logo:has(.um-panel-brand) {
    display: flex;
    align-items: center;
    min-width: 0;
}

.um-panel-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    height: 100%;
}

.um-panel-brand-logo {
    height: 100%;
    width: auto;
    max-width: 28rem;
    object-fit: contain;
    flex-shrink: 0;
}

.um-panel-brand-name {
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.2;
    color: inherit;
    white-space: nowrap;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.um-panel-brand--default {
    gap: 0;
    height: 100%;
    align-items: center;
}

.um-panel-brand-logo--for-dark-ui,
.um-panel-brand-logo--for-light-ui {
    height: 100%;
    max-height: 100%;
    width: auto;
    max-width: 28rem;
    object-fit: contain;
    object-position: left center;
}

/* Login / simple pages: fi-logo sets height via inline style — fill that box */
.fi-simple-header .fi-logo:has(.um-panel-brand--default) {
    min-height: 3.75rem;
}

.fi-simple-header .um-panel-brand--default {
    min-height: 3.75rem;
}

/* Filament v4 primary actions on auth/simple pages (fi-color-*), not fi-btn-color-primary */
.fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined),
.dark .fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined) {
    background: var(--brand-dark-blue, #3727c1) !important;
    background-image: none !important;
    border-color: var(--brand-dark-purple, #3223b5) !important;
    color: var(--brand-white, #fff) !important;
    --btn-border-color: var(--brand-dark-purple, #3223b5) !important;
}

.fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):hover,
.fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):focus-visible,
.dark .fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):hover,
.dark .fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):focus-visible {
    background: var(--brand-dark-purple, #3223b5) !important;
    border-color: var(--brand-light-blue, #408bdf) !important;
    color: var(--brand-white, #fff) !important;
}

html:not(.dark) .um-panel-brand-logo--for-dark-ui {
    display: none !important;
}

html.dark .um-panel-brand-logo--for-light-ui {
    display: none !important;
}

.home-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem 1rem 3rem;
}

.home-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid rgb(30 41 59);
    padding-bottom: 0.85rem;
}

.home-brand {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: rgb(248 250 252);
}

.home-login-link {
    border: 1px solid rgb(51 65 85);
    border-radius: 0.6rem;
    background: rgb(15 23 42);
    color: rgb(226 232 240);
    padding: 0.5rem 0.9rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}

.home-login-link:hover {
    border-color: rgb(71 85 105);
    background: rgb(30 41 59);
}

.home-hero {
    margin-top: 2.2rem;
    background: linear-gradient(145deg, #172033 0%, #0f172a 52%, color-mix(in srgb, #3223b5 12%, #0f172a) 100%);
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 0.85rem;
    padding: 2rem;
    position: relative;
    overflow: hidden;
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--brand-gradient, linear-gradient(135deg, #9b69f3 0%, #3223b5 48%, #408bdf 100%));
    opacity: 0.92;
}

.home-eyebrow {
    margin: 0 0 0.7rem;
    color: rgb(148 163 184);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.home-title {
    font-size: clamp(2rem, 5vw, 3rem);
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0;
    color: rgb(248 250 252);
}

.home-subtitle {
    margin: 1rem 0 0;
    max-width: 50rem;
    color: rgb(148 163 184);
    font-size: 1rem;
    line-height: 1.7;
}

.home-actions {
    margin-top: 1.3rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.home-primary-button {
    border: 1px solid #3727c1;
    border-radius: 0.7rem;
    background: linear-gradient(135deg, #9b69f3 0%, #3223b5 52%, #408bdf 100%);
    color: #ffffff;
    padding: 0.65rem 1rem;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.92rem;
}

.home-primary-button:hover {
    filter: brightness(1.06);
    border-color: #3223b5;
    color: #ffffff;
}

.home-secondary-text {
    font-size: 0.9rem;
    color: rgb(100 116 139);
}

/* Imports page table layout */
.imports-history-table {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.9rem;
    overflow: hidden;
}

.dark .imports-history-table {
    border-color: rgb(55 65 81);
}

.imports-history-head,
.imports-history-row {
    display: grid;
    grid-template-columns: minmax(12rem, 2fr) minmax(8rem, 1fr) minmax(10rem, 1fr) minmax(8rem, 0.8fr) minmax(12rem, 1.2fr) minmax(11rem, 1fr);
    gap: 0.75rem;
    align-items: center;
    padding: 0.8rem 1rem;
}

.imports-actions-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.imports-history-head {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: rgb(107 114 128);
    background: rgb(249 250 251);
}

.dark .imports-history-head {
    color: rgb(156 163 175);
    background: rgb(17 24 39);
}

.imports-history-row {
    border-top: 1px solid rgb(229 231 235);
    font-size: 0.9rem;
}

.dark .imports-history-row {
    border-top-color: rgb(55 65 81);
}

.imports-file-cell {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.imports-failed-rows {
    color: rgb(220 38 38);
    font-weight: 600;
}

.imports-empty-state {
    border: 1px dashed rgb(209 213 219);
    border-radius: 0.8rem;
    background: rgb(249 250 251);
    color: rgb(107 114 128);
    padding: 1rem;
    font-size: 0.9rem;
}

.dark .imports-empty-state {
    border-color: rgb(75 85 99);
    background: rgb(17 24 39);
    color: rgb(156 163 175);
}

@media (max-width: 1024px) {
    .imports-history-head {
        display: none;
    }

    .imports-history-row {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }
}

/* My Calendar page */
.my-calendar-page {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.my-calendar-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.my-calendar-toolbar-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.my-calendar-nav {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.my-calendar-view-toggle {
    display: inline-flex;
    border: 1px solid var(--app-border-soft, rgb(209 213 219));
    border-radius: 0.7rem;
    overflow: hidden;
}

.dark .my-calendar-view-toggle {
    border-color: var(--app-border-soft, rgb(75 85 99));
}

.my-calendar-view-button {
    border: 0;
    background: var(--app-surface, rgb(255 255 255));
    color: var(--app-text-muted, rgb(55 65 81));
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
}

.my-calendar-view-button.is-active {
    background: var(--app-accent-soft);
    color: var(--app-accent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--app-accent) 35%, transparent);
}

.dark .my-calendar-view-button {
    background: var(--app-surface-raised, rgb(31 41 55));
    color: var(--app-text-muted, rgb(229 231 235));
}

.dark .my-calendar-view-button.is-active {
    background: var(--app-accent-soft);
    color: var(--app-accent-strong, var(--app-accent));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--app-accent) 40%, transparent);
}

.my-calendar-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem;
}

.my-calendar-filters > .my-calendar-filter-field {
    flex: 1 1 11rem;
    min-width: min(100%, 11rem);
}

.my-calendar-filter-field .unit-dashboard-unit-select {
    width: 100%;
}

/* Empty range: full-width inline strip between toolbar and grid (not a card) */
.my-calendar-empty {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.3rem 0 0.45rem;
    border: none;
    border-top: 1px solid color-mix(in srgb, var(--app-border, rgb(226 232 240)) 75%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--app-border, rgb(226 232 240)) 45%, transparent);
    border-radius: 0;
    background: transparent;
}

.dark .my-calendar-empty {
    border-top-color: color-mix(in srgb, rgb(55 65 81) 65%, transparent);
    border-bottom-color: color-mix(in srgb, rgb(55 65 81) 40%, transparent);
    background: transparent;
}

.my-calendar-empty__head {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin-bottom: 0.28rem;
}

.my-calendar-empty__primary {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.01em;
    color: var(--app-text-strong, rgb(15 23 42));
}

.dark .my-calendar-empty__primary {
    color: rgb(243 244 246);
}

.my-calendar-empty__hint {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.35;
    font-weight: 400;
    color: var(--app-text-muted, rgb(100 116 139));
}

.my-calendar-empty__hint--secondary {
    margin: 0.15rem 0 0;
}

.my-calendar-empty__row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 0.6rem;
    row-gap: 0.35rem;
}

.my-calendar-empty__next-copy {
    margin: 0;
    flex: 1 1 14rem;
    min-width: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--app-text, rgb(51 65 85));
}

.dark .my-calendar-empty__next-copy {
    color: rgb(226 232 240);
}

.my-calendar-empty__next-label {
    font-weight: 700;
    color: var(--app-text-strong, rgb(30 41 59));
    margin-right: 0.15rem;
}

.dark .my-calendar-empty__next-label {
    color: rgb(248 250 252);
}

.my-calendar-empty__when {
    font-weight: 600;
    color: var(--app-text-strong, rgb(30 41 59));
}

.dark .my-calendar-empty__when {
    color: rgb(241 245 249);
}

.my-calendar-empty__dash {
    font-weight: 500;
    color: var(--app-text-muted, rgb(148 163 184));
}

.my-calendar-empty__event-title {
    font-weight: 600;
    color: var(--app-text-strong, rgb(15 23 42));
    word-break: break-word;
}

.dark .my-calendar-empty__event-title {
    color: rgb(248 250 252);
}

.my-calendar-empty__event-meta {
    font-weight: 400;
    color: var(--app-text-muted, rgb(100 116 139));
    word-break: break-word;
}

.my-calendar-empty__jump {
    flex-shrink: 0;
    margin: 0;
    padding: 0.32rem 0.65rem;
    border-radius: 0.4rem;
    border: 1px solid color-mix(in srgb, var(--app-accent, #3727c1) 72%, rgb(100 116 139));
    background: color-mix(in srgb, var(--app-accent, #3727c1) 18%, var(--app-surface, #fff));
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: color-mix(in srgb, var(--app-accent, #3727c1) 92%, rgb(15 23 42));
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
    box-shadow: 0 1px 0 color-mix(in srgb, var(--app-accent, #3727c1) 22%, transparent);
}

.my-calendar-empty__jump:hover {
    background: color-mix(in srgb, var(--app-accent, #3727c1) 28%, var(--app-surface, #fff));
    border-color: color-mix(in srgb, var(--app-accent, #3727c1) 88%, rgb(100 116 139));
}

.my-calendar-empty__jump:focus-visible {
    outline: 2px solid var(--app-accent, #3727c1);
    outline-offset: 2px;
}

.dark .my-calendar-empty__jump {
    border-color: rgb(129 140 248);
    background: color-mix(in srgb, rgb(129 140 248) 26%, rgb(30 41 59));
    color: rgb(238 242 255);
    box-shadow: 0 1px 0 rgb(0 0 0 / 28%);
}

.dark .my-calendar-empty__jump:hover {
    background: color-mix(in srgb, rgb(129 140 248) 36%, rgb(30 41 59));
    border-color: rgb(165 180 252);
}

@media (max-width: 640px) {
    .my-calendar-empty__row {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
    }

    .my-calendar-empty__next-copy {
        flex: 1 1 auto;
    }

    .my-calendar-empty__jump {
        align-self: flex-start;
    }
}

.my-calendar-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

.my-calendar-grid--day {
    grid-template-columns: 1fr;
}

.my-calendar-grid--week {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.my-calendar-grid--month {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.my-calendar-day {
    min-height: 12rem;
    padding: 0.8rem;
}

.my-calendar-day.is-muted {
    opacity: 0.55;
}

.my-calendar-day-header {
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 0.55rem;
}

.my-calendar-day-items {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.my-calendar-item-time,
.my-calendar-item-title,
.my-calendar-item-meta {
    margin: 0;
    font-size: 0.78rem;
}

.my-calendar-item-title {
    margin-top: 0.2rem;
    font-weight: 700;
}

.my-calendar-item-meta {
    margin-top: 0.15rem;
    color: rgb(107 114 128);
}

.dark .my-calendar-item-meta {
    color: rgb(156 163 175);
}

@media (min-width: 768px) {
    .my-calendar-grid--week {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .my-calendar-grid--month {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .my-calendar-grid--week {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .my-calendar-grid--month {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

/*
 * My Dashboard: Filament Section provides the single card + collapsible header.
 * Table widgets render a second "fi-ta-ctn" surface — flatten it so the section is the only chrome.
 */
.um-my-dashboard .fi-sc-section .fi-section > .fi-section-content-ctn {
    padding: 0;
}

.um-my-dashboard .fi-sc-section .fi-wi-table.fi-wi-widget {
    margin: 0;
    width: 100%;
    max-width: 100%;
}

.um-my-dashboard .fi-sc-section .fi-wi-table .fi-ta-ctn {
    border-radius: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
    --tw-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
}

.dark .um-my-dashboard .fi-sc-section .fi-wi-table .fi-ta-ctn {
    background: transparent;
}

.fi-in-entry-label-ctn {
    margin-bottom: 10px;
}

.fi-in-entry-label{
    font-weight: 600;
}

/* -------------------------------------------------------------------------- */
/* Replia brand tokens (source of truth — surfaces + identity)                 */
/* -------------------------------------------------------------------------- */

:root {
    --brand-dark-blue: #3727c1;
    --brand-light-blue: #408bdf;
    --brand-dark-purple: #3223b5;
    --brand-light-purple: #9b69f3;
    --brand-black: #000000;
    --brand-white: #ffffff;
    --brand-gradient: linear-gradient(135deg, #9b69f3 0%, #3223b5 48%, #408bdf 100%);

    --app-bg: #f8fafc;
    --app-shell: #ffffff;
    --app-sidebar: #f1f5f9;
    --app-surface: #ffffff;
    --app-surface-raised: #f8fafc;
    --app-surface-muted: #e2e8f0;

    --app-border: #cbd5e1;
    --app-border-soft: #e2e8f0;

    --app-text: #0f172a;
    --app-text-strong: #020617;
    --app-text-muted: #475569;
    --app-text-soft: #64748b;

    --app-accent: #3727c1;
    --app-accent-hover: #3223b5;
    --app-accent-soft: rgba(55, 39, 193, 0.1);
    --app-accent-strong: #3223b5;

    --app-focus-ring: rgba(155, 105, 243, 0.35);
}

.dark {
    --app-bg: #0b1120;
    --app-shell: #0f172a;
    --app-sidebar: #0f172a;
    --app-surface: #172033;
    --app-surface-raised: #1e293b;
    --app-surface-muted: #263449;

    --app-border: #334155;
    --app-border-soft: rgba(148, 163, 184, 0.18);

    --app-text: #e5edf7;
    --app-text-strong: #f8fafc;
    --app-text-muted: #b6c3d4;
    --app-text-soft: #8ea0b8;

    --app-accent: #9b69f3;
    --app-accent-hover: #408bdf;
    --app-accent-soft: rgba(155, 105, 243, 0.16);
    --app-accent-strong: #408bdf;

    --app-focus-ring: rgba(64, 139, 223, 0.38);
}

/* -------------------------------------------------------------------------- */
/* Union Matters legacy surfaces (dark marketing/workspace components)         */
/* -------------------------------------------------------------------------- */

@import url("/fonts/filament/filament/inter/index.css");

:root {
    --color-navy-950: #0f172a;
    --color-navy-900: #111827;
    --color-navy-850: #162033;
    --color-navy-800: #1e293b;
    --color-navy-700: #334155;
    --color-red-800: #991b1b;
    --color-red-700: #b91c1c;
    --color-red-600: #dc2626;
    --color-border: #334155;
    --color-border-soft: rgba(148, 163, 184, 0.22);
    --color-text-primary: #f8fafc;
    --color-text-secondary: #cbd5e1;
    --color-text-muted: #94a3b8;
    --color-success: #15803d;
    --color-warning: #d97706;
    --color-danger: #dc2626;
    --color-info: #2563eb;
    --radius-card: 12px;
    --radius-control: 8px;
    --radius-modal: 14px;
    --radius-table: 10px;
    --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.25), 0 8px 24px rgba(0, 0, 0, 0.22);
}

.fi-body,
.fi-layout,
.fi-main,
.fi-main-ctn {
    font-family: "Inter", "Inter var", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
    background: var(--color-navy-900) !important;
    color: var(--color-text-primary) !important;
}

.fi-sidebar {
    background: var(--color-navy-950) !important;
    border-inline-end: 1px solid var(--color-border-soft) !important;
}

.fi-sidebar-nav {
    gap: 4px;
}

.fi-sidebar-item-button,
.fi-sidebar-group-button {
    border-radius: var(--radius-control) !important;
    color: var(--color-text-secondary) !important;
}

.fi-sidebar-item-button:hover,
.fi-sidebar-group-button:hover {
    background: var(--app-accent-soft) !important;
    color: var(--color-text-primary) !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-button {
    background: color-mix(in srgb, var(--app-accent) 16%, transparent) !important;
    border-inline-start: 3px solid var(--app-accent) !important;
    color: var(--color-text-primary) !important;
}

.fi-topbar {
    background: var(--color-navy-900) !important;
    border-bottom: 1px solid var(--color-border-soft) !important;
    min-height: 56px;
}

.fi-page {
    gap: 16px;
}

.fi-header {
    margin-bottom: 8px !important;
}

.fi-header-heading {
    color: var(--color-text-primary) !important;
    font-size: clamp(1.75rem, 2.2vw, 2rem) !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

.fi-header-subheading {
    color: var(--color-text-muted) !important;
    font-size: 0.875rem !important;
}

.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview),
.fi-ta-ctn,
.fi-in-entry,
.fi-modal-window {
    background: var(--color-navy-800) !important;
    border: 1px solid var(--color-border-soft) !important;
    border-radius: var(--radius-card) !important;
    box-shadow: var(--shadow-panel) !important;
}

.fi-modal-window {
    border-radius: var(--radius-modal) !important;
}

.fi-section-header,
.fi-modal-header,
.fi-ta-header {
    background: var(--color-navy-850) !important;
    border-bottom: 1px solid var(--color-border-soft) !important;
}

.fi-section-heading,
.fi-modal-heading,
.fi-ta-header-heading {
    color: var(--color-text-primary) !important;
    font-weight: 650 !important;
}

.fi-btn {
    border-radius: var(--radius-control) !important;
    font-weight: 600 !important;
}

.fi-btn-color-danger {
    background: var(--color-red-800) !important;
    border-color: var(--color-red-700) !important;
    color: #fee2e2 !important;
}

.fi-btn-color-danger:hover {
    background: var(--color-red-700) !important;
}

.fi-btn-color-primary {
    background: var(--app-accent) !important;
    border-color: var(--app-accent) !important;
    color: #ffffff !important;
}

.fi-btn-color-primary:hover {
    background: var(--app-accent-hover) !important;
    border-color: var(--app-accent-hover) !important;
}

.fi-btn-color-gray,
.fi-btn-color-secondary {
    background: var(--color-navy-850) !important;
    border-color: var(--color-border-soft) !important;
    color: var(--color-text-secondary) !important;
}

.fi-btn-color-gray:hover,
.fi-btn-color-secondary:hover {
    background: var(--app-accent-soft) !important;
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--color-border-soft)) !important;
}

.fi-input,
.fi-select-input,
.fi-textarea,
.fi-fo-field-wrp .fi-input-wrp {
    background: var(--color-navy-900) !important;
    border-color: var(--color-border-soft) !important;
    border-radius: var(--radius-control) !important;
    color: var(--color-text-primary) !important;
}

.fi-input:focus,
.fi-select-input:focus,
.fi-textarea:focus,
.fi-fo-field-wrp .fi-input-wrp:focus-within {
    border-color: var(--app-accent) !important;
    box-shadow: 0 0 0 3px var(--app-focus-ring) !important;
}

.fi-fo-field-wrp-label,
.fi-fo-field-wrp-helper-text {
    color: var(--color-text-secondary) !important;
}

.fi-fo-field-wrp-error-message {
    color: #fca5a5 !important;
}

.fi-dropdown-panel,
.fi-select-dropdown,
.fi-ta-filters-dropdown,
.um-meeting-badge-picker__panel {
    background: var(--color-navy-850) !important;
    border: 1px solid var(--color-border-soft) !important;
    border-radius: 10px !important;
    box-shadow: var(--shadow-panel) !important;
}

.fi-dropdown-list-item:hover,
.fi-select-option:hover,
.um-meeting-badge-picker__option:hover {
    background: var(--app-accent-soft) !important;
}

.fi-ta-table {
    color: var(--color-text-secondary) !important;
}

.fi-ta-table thead th {
    background: var(--color-navy-850) !important;
    color: var(--color-text-secondary) !important;
    font-size: 0.78rem !important;
    border-bottom: 1px solid var(--color-border-soft) !important;
}

.fi-ta-table tbody tr {
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
}

.fi-ta-table tbody tr:hover {
    background: var(--app-accent-soft) !important;
}

.fi-ta-table tbody td {
    font-size: 0.84rem !important;
    color: var(--color-text-secondary) !important;
}

html.dark .fi-ta-empty-state {
    background: var(--color-navy-850) !important;
    border: 1px dashed var(--color-border-soft) !important;
    border-radius: var(--radius-card) !important;
    color: var(--color-text-muted) !important;
}

.fi-badge,
.unit-status-chip {
    border-radius: 999px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

.fi-badge-color-primary {
    background: var(--app-accent-soft) !important;
    color: var(--app-accent) !important;
    border: 1px solid color-mix(in srgb, var(--app-accent) 30%, transparent) !important;
}

.fi-badge-color-success {
    background: rgba(21, 128, 61, 0.16) !important;
    color: #86efac !important;
    border: 1px solid rgba(134, 239, 172, 0.25) !important;
}

.fi-badge-color-warning {
    background: rgba(217, 119, 6, 0.14) !important;
    color: #fbbf24 !important;
    border: 1px solid rgba(251, 191, 36, 0.25) !important;
}

.fi-badge-color-gray {
    background: rgba(148, 163, 184, 0.12) !important;
    color: #cbd5e1 !important;
    border: 1px solid rgba(148, 163, 184, 0.25) !important;
}

.fi-tabs-item.fi-active {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
    border-color: color-mix(in srgb, var(--app-accent) 35%, transparent) !important;
}

.fi-tabs-item:hover {
    background: var(--app-accent-soft) !important;
}

html.dark .fi-notification,
html.dark .fi-no-notification {
    border-radius: 12px !important;
    border: 1px solid var(--color-border-soft) !important;
    background: var(--color-navy-800) !important;
    color: var(--color-text-primary) !important;
}

.fi-link {
    color: var(--app-accent) !important;
}

.fi-link:hover {
    color: var(--app-accent-hover) !important;
}

.fi-input:focus-visible,
.fi-btn:focus-visible,
.fi-link:focus-visible,
button:focus-visible,
a:focus-visible {
    outline: 2px solid var(--app-focus-ring) !important;
    outline-offset: 2px;
}

/* Make existing page-level custom cards consistent with dark shell. */
.app-card,
.settings-card,
.settings-item-card,
.system-health-list-item,
.unit-dashboard-panel,
.unit-dashboard-link,
.unit-week-column,
.my-calendar-item {
    background: var(--color-navy-800) !important;
    border-color: var(--color-border-soft) !important;
    color: var(--color-text-secondary) !important;
    border-radius: var(--radius-card) !important;
}

.app-title,
.unit-dashboard-week-label,
.unit-dashboard-metric-value {
    color: var(--color-text-primary) !important;
}

.app-muted,
.unit-dashboard-empty,
.my-calendar-item-meta {
    color: var(--color-text-muted) !important;
}

@media (max-width: 1024px) {
    .fi-header-heading {
        font-size: 1.5rem !important;
    }
}

/* -------------------------------------------------------------------------- */
/* Product Shell + Workspace Architecture                                     */
/* -------------------------------------------------------------------------- */

.fi-layout {
    --sidebar-width: 16.5rem;
}

.fi-sidebar {
    width: var(--sidebar-width) !important;
    padding: 10px 10px 14px !important;
}

.fi-sidebar-header {
    min-height: 52px !important;
    margin-bottom: 8px !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
}

.fi-sidebar-header .fi-logo {
    padding-inline: 8px !important;
}

.fi-sidebar-nav-groups {
    gap: 10px !important;
}

.app-identity-block {
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.58);
    border-radius: 10px;
    padding: 10px;
    margin: 2px 4px 10px;
}

.app-identity-block__eyebrow {
    margin: 0;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-accent);
}

.app-identity-block__title {
    margin: 4px 0 0;
    font-size: 0.83rem;
    font-weight: 650;
    color: var(--color-text-primary);
}

.app-identity-block__meta {
    margin: 3px 0 0;
    font-size: 0.76rem;
    color: var(--color-text-muted);
}

.fi-sidebar-group-label {
    padding-inline: 10px !important;
    margin-bottom: 6px !important;
    color: var(--color-text-muted) !important;
    font-size: 0.67rem !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

.fi-sidebar-item {
    padding-inline: 0 !important;
}

.fi-sidebar-item-button {
    min-height: 34px !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    border-inline-start: 3px solid transparent !important;
}

.fi-sidebar-item-label {
    font-size: 0.82rem !important;
    font-weight: 550 !important;
}

.fi-sidebar-item-icon {
    width: 1rem !important;
    height: 1rem !important;
}

.fi-topbar {
    min-height: 52px !important;
    padding-inline: 16px !important;
}

.fi-topbar .fi-input-wrp {
    border-radius: 7px !important;
    min-height: 34px !important;
}

.fi-main {
    padding-inline: 20px !important;
    padding-bottom: 24px !important;
}

.fi-page {
    max-width: min(1620px, 100%) !important;
    margin-inline: auto !important;
    gap: 16px !important;
}

.fi-header {
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 12px !important;
    margin-bottom: 4px !important;
}

.fi-header-actions {
    gap: 8px !important;
}

.fi-resource .fi-section,
.fi-resource .fi-ta-ctn,
.fi-resource .fi-in,
.fi-resource .fi-fo {
    border-radius: 10px !important;
}

.fi-resource .fi-in .fi-section {
    box-shadow: none !important;
}

.fi-ta {
    gap: 8px !important;
}

.fi-ta-header-toolbar {
    background: var(--color-navy-850) !important;
    border: 1px solid var(--color-border-soft) !important;
    border-radius: 10px !important;
    padding: 8px !important;
}

.fi-ta-table {
    border-collapse: collapse !important;
}

.fi-ta-table thead th {
    height: 42px !important;
}

.fi-ta-table tbody td {
    height: 44px !important;
    padding-block: 8px !important;
}

.fi-ta-empty-state {
    padding: 26px 20px !important;
    text-align: left !important;
}

.fi-ta-empty-state-heading {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--color-text-primary) !important;
}

.fi-ta-empty-state-description {
    font-size: 0.82rem !important;
    color: var(--color-text-muted) !important;
    max-width: 36rem !important;
}

.fi-resource .fi-section-content-ctn {
    padding: 14px !important;
}

.fi-resource .fi-in-entry {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.fi-resource .fi-in-entry-wrp {
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding: 10px 0 !important;
}

.fi-resource .fi-in-entry-wrp:last-child {
    border-bottom: 0;
}

.fi-resource .fi-in-entry-label {
    color: var(--color-text-muted) !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fi-resource .fi-in-entry-content {
    color: var(--color-text-secondary) !important;
    font-size: 0.86rem !important;
}

/* Reusable app components */
.app-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 12px;
}

.app-section {
    display: grid;
    gap: 8px;
}

.app-section__title {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    color: var(--color-text-primary);
    font-weight: 700;
}

.app-section__subtitle {
    margin: 0;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.app-section__eyebrow {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.app-panel {
    background: var(--color-navy-800);
    border: 1px solid var(--color-border-soft);
    border-radius: 12px;
    padding: 14px;
    display: grid;
    gap: 16px;
}

.app-dashboard {
    display: grid;
    gap: 16px;
}

.app-command-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    background: var(--color-navy-850);
    border: 1px solid var(--color-border-soft);
    border-radius: 10px;
    padding: 8px;
}

.app-command-bar__item {
    background: rgba(15, 23, 42, 0.55);
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 8px;
    padding: 8px 10px;
}

.app-command-bar__item--right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.app-command-bar__label {
    margin: 0;
    font-size: 0.69rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 700;
}

.app-command-bar__value {
    margin: 4px 0 0;
    font-size: 0.85rem;
    color: var(--color-text-primary);
    font-weight: 600;
}

.app-command-link {
    color: var(--app-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
}

.app-command-link:hover {
    color: var(--app-accent-hover);
}

.app-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.app-metric-card {
    position: relative;
    overflow: hidden;
    background: var(--color-navy-850);
    border: 1px solid var(--color-border-soft);
    border-radius: 10px;
    padding: 12px;
    transition: border-color 140ms ease, background-color 140ms ease;
}

.app-metric-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: color-mix(in srgb, var(--app-accent) 82%, transparent);
}

.app-metric-card:hover {
    border-color: color-mix(in srgb, var(--app-accent) 32%, var(--color-border-soft));
    background: rgba(30, 41, 59, 0.94);
}

.app-metric-card__label {
    margin: 0;
    font-size: 0.73rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--color-text-muted);
    font-weight: 700;
}

.app-metric-card__value {
    margin: 8px 0 4px;
    font-size: 1.8rem;
    line-height: 1;
    color: var(--color-text-primary);
    font-weight: 700;
}

.app-metric-card__hint {
    margin: 0;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.app-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 12px;
}

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

.app-list__item {
    display: block;
    text-decoration: none;
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid rgba(148, 163, 184, 0.17);
    border-radius: 8px;
    padding: 8px 10px;
    transition: border-color 140ms ease, background-color 140ms ease;
}

.app-list__item:hover {
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--color-border-soft));
    background: var(--app-accent-soft);
}

.app-list__item--risk {
    border-color: color-mix(in srgb, var(--color-danger) 35%, var(--color-border-soft));
}

.app-list__title {
    margin: 0;
    font-size: 0.87rem;
    color: var(--color-text-primary);
    font-weight: 600;
}

.app-list__meta {
    margin: 3px 0 0;
    font-size: 0.79rem;
    color: var(--color-text-muted);
}

.app-empty-state {
    border: 1px dashed rgba(148, 163, 184, 0.3);
    border-radius: 8px;
    padding: 10px;
    background: rgba(15, 23, 42, 0.32);
}

.app-empty-state__title {
    margin: 0;
    font-size: 0.86rem;
    color: var(--color-text-primary);
    font-weight: 650;
}

.app-empty-state__text {
    margin: 4px 0 0;
    font-size: 0.79rem;
    color: var(--color-text-muted);
}

@media (max-width: 1200px) {
    .app-command-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-workspace-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .fi-main {
        padding-inline: 10px !important;
    }

    .app-command-bar,
    .app-metric-grid {
        grid-template-columns: 1fr;
    }
}

/* Case file view rhythm for key resources */
.app-casefile-page .fi-header {
    background: linear-gradient(180deg, rgba(30, 41, 59, 0.95) 0%, rgba(22, 32, 51, 0.85) 100%);
    border: 1px solid var(--color-border-soft);
    border-radius: 12px;
    padding: 14px !important;
}

.app-casefile-page .fi-header-heading {
    font-size: 1.45rem !important;
}

.app-casefile-page .fi-header-subheading {
    font-size: 0.82rem !important;
    color: var(--color-text-secondary) !important;
}

.app-casefile-page .fi-header-actions {
    padding-top: 8px;
    border-top: 1px solid rgba(148, 163, 184, 0.15);
}

.app-casefile-page .fi-section {
    background: var(--color-navy-850) !important;
}

.app-casefile-page .fi-tabs {
    border-bottom-color: rgba(148, 163, 184, 0.16) !important;
}

/* -------------------------------------------------------------------------- */
/* Structural Redesign Overrides (flattened operational workspace)            */
/* -------------------------------------------------------------------------- */

.fi-layout {
    --sidebar-width: 14.25rem;
}

.fi-sidebar {
    padding: 8px 8px 10px !important;
}

.fi-sidebar-header {
    margin-bottom: 6px !important;
    padding-bottom: 6px !important;
}

.app-identity-block {
    border: 0;
    background: transparent;
    margin: 0 2px 8px;
    padding: 8px 6px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 0;
}

.app-identity-block__eyebrow {
    letter-spacing: 0.06em;
}

.fi-sidebar-nav {
    gap: 2px;
}

.fi-sidebar-group-label {
    font-size: 0.62rem !important;
    margin-bottom: 4px !important;
    padding-inline: 8px !important;
}

.fi-sidebar-item-button {
    border-radius: 6px !important;
    min-height: 31px !important;
    padding: 5px 8px !important;
}

.fi-sidebar-item-label {
    font-size: 0.79rem !important;
    font-weight: 520 !important;
}

.fi-topbar {
    min-height: 46px !important;
}

.fi-main {
    padding-top: 12px !important;
    padding-inline: 14px !important;
}

.fi-page {
    max-width: none !important;
}

.fi-header {
    border-bottom: 0;
    padding-bottom: 0 !important;
    margin-bottom: 2px !important;
}

.fi-header-heading {
    font-size: 1.75rem !important;
}

.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview),
.fi-ta-ctn,
.fi-in-entry,
.fi-modal-window {
    box-shadow: none !important;
}

.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview) {
    border-color: rgba(148, 163, 184, 0.14) !important;
}

.fi-ta-header-toolbar {
    border: 0 !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18) !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 6px 2px !important;
}

.fi-ta-ctn {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.fi-ta-table {
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 8px;
    overflow: hidden;
    background: rgba(22, 32, 51, 0.5);
}

.fi-ta-table thead th {
    background: rgba(15, 23, 42, 0.92) !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
    font-size: 0.75rem !important;
}

.fi-ta-table tbody tr {
    border-bottom: 1px solid rgba(148, 163, 184, 0.12) !important;
}

.fi-ta-table tbody tr:hover {
    background: var(--app-accent-soft) !important;
}

.fi-ta-empty-state {
    border: 0 !important;
    border-top: 1px solid rgba(148, 163, 184, 0.15) !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.app-empty-state {
    border: 0;
    border-left: 2px solid rgba(148, 163, 184, 0.28);
    border-radius: 0;
    background: transparent;
    padding: 2px 0 2px 10px;
}

.workspace-shell {
    display: grid;
    gap: 14px;
    width: min(1760px, 100%);
}

.app-dashboard-page .fi-header {
    display: none;
}

.workspace-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
}

.workspace-header__title {
    margin: 0;
    font-size: 1.75rem;
    line-height: 1.1;
    font-weight: 700;
    color: var(--color-text-primary);
}

.workspace-header__subtitle {
    margin: 6px 0 0;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.workspace-header__context {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.workspace-header__context span {
    padding: 4px 8px;
    background: rgba(22, 32, 51, 0.7);
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 6px;
}

.metric-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 8px;
    background: rgba(22, 32, 51, 0.72);
}

.metric-strip__item {
    padding: 10px 12px;
    border-right: 1px solid rgba(148, 163, 184, 0.16);
    position: relative;
}

.metric-strip__item:last-child {
    border-right: 0;
}

.metric-strip__item::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 2px;
    background: color-mix(in srgb, var(--app-accent) 75%, transparent);
}

.metric-strip__label {
    margin: 0;
    font-size: 0.71rem;
    color: var(--color-text-muted);
    font-weight: 600;
}

.metric-strip__value {
    margin: 6px 0 0;
    font-size: 1.4rem;
    line-height: 1;
    font-weight: 700;
    color: var(--color-text-primary);
}

.workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr);
    gap: 14px;
}

.content-surface {
    background: rgba(22, 32, 51, 0.6);
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 10px;
    padding: 12px;
    display: grid;
    gap: 14px;
}

.content-surface--rail {
    background: rgba(15, 23, 42, 0.46);
}

.workspace-section {
    display: grid;
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
}

.workspace-section:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.workspace-section__title {
    margin: 0;
    font-size: 1.02rem;
    color: var(--color-text-primary);
    font-weight: 700;
}

.workspace-section__subtitle {
    margin: 0;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.workspace-section__label {
    margin: 0;
    font-size: 0.86rem;
    color: var(--color-text-secondary);
    font-weight: 650;
}

.case-list {
    display: grid;
}

.case-list__row {
    display: grid;
    gap: 3px;
    text-decoration: none;
    padding: 8px 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.09);
}

.case-list__row:last-child {
    border-bottom: 0;
}

.case-list__row:hover {
    background: var(--app-accent-soft);
}

.case-list__row--risk .case-list__title {
    color: var(--color-danger);
}

.case-list__title {
    margin: 0;
    color: var(--color-text-primary);
    font-size: 0.86rem;
    font-weight: 600;
}

.case-list__meta {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.78rem;
}

@media (max-width: 1200px) {
    .workspace-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .metric-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-strip__item:nth-child(2n) {
        border-right: 0;
    }
}

@media (max-width: 640px) {
    .workspace-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .metric-strip {
        grid-template-columns: 1fr;
    }

    .metric-strip__item {
        border-right: 0;
        border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    }

    .metric-strip__item:last-child {
        border-bottom: 0;
    }
}

/* -------------------------------------------------------------------------- */
/* RepliaOS Shell layout (tokens: see Replia brand block at top of stylesheet) */
/* -------------------------------------------------------------------------- */

.replia-app-shell .fi-layout,
.replia-app-shell .fi-body {
    background: var(--app-bg) !important;
    color: var(--app-text) !important;
}

.replia-shell {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
}

/* Overlay is first in DOM; pin grid slots so main is not auto-placed into the sidebar column. */
.replia-shell__overlay {
    grid-column: 1 / -1;
    grid-row: 1;
}

/* Desktop: sidebar host is a normal grid column (mobile off-canvas rules below). */
.replia-sidebar-root {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    align-self: stretch;
}

.replia-shell__main {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.replia-shell:not(:has(.replia-sidebar-root)) .replia-shell__main {
    grid-column: 1 / -1;
}

.replia-shell__content {
    padding: 16px 20px 24px;
}

.replia-shell__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 35;
}

.replia-sidebar {
    position: sticky;
    top: 0;
    width: 260px;
    max-width: 100%;
    height: 100vh;
    height: 100dvh;
    border-right: 1px solid var(--app-border);
    background: var(--app-surface);
    z-index: 40;
}

.replia-sidebar__inner {
    height: 100%;
    overflow: auto;
    padding: 10px 10px 16px;
}

.replia-sidebar__brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    min-height: 3.85rem;
}

.replia-sidebar__logo {
    display: grid;
    text-decoration: none;
    color: inherit;
}

.replia-sidebar__product {
    font-size: 0.93rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--app-text);
}

.replia-sidebar__tagline {
    margin-top: 2px;
    font-size: 0.74rem;
    color: var(--app-text-muted);
}

.replia-sidebar__mark {
    display: block;
    line-height: 0;
}

.replia-sidebar__logo-img {
    display: block;
    height: 3.75rem;
    width: auto;
    max-width: min(24rem, 100%);
    object-fit: contain;
    object-position: left center;
}

.replia-sidebar__logo-img--org {
    max-height: 4.5rem;
}

html:not(.dark) .replia-sidebar__logo-img--for-dark-ui {
    display: none !important;
}

html.dark .replia-sidebar__logo-img--for-light-ui {
    display: none !important;
}

.replia-sidebar__mobile-close {
    display: none;
    border: 0;
    background: transparent;
    color: var(--app-text-muted);
    font-size: 0.76rem;
}

.replia-sidebar__context {
    margin-bottom: 12px;
    padding: 7px 8px;
    border-radius: 8px;
    background: var(--app-surface-muted);
    border: 1px solid var(--app-border);
}

.replia-sidebar__context p {
    margin: 0;
    font-size: 0.78rem;
    color: var(--app-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-sidebar__nav {
    display: grid;
    gap: 12px;
}

.replia-sidebar-section__title {
    margin: 0 0 5px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-sidebar-section__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 2px;
}

.replia-sidebar-item {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 6px 8px;
    border-radius: 6px;
    text-decoration: none;
    color: var(--app-text-muted);
    border-left: 3px solid transparent;
}

.replia-sidebar-item:hover {
    background: var(--app-surface-muted);
    color: var(--app-text);
}

.replia-sidebar-item--active {
    border-left-color: var(--app-accent);
    background: color-mix(in srgb, var(--app-accent) 12%, var(--app-surface));
    color: var(--app-text);
}

.replia-sidebar-item__icon {
    width: 0.95rem;
    height: 0.95rem;
}

.replia-sidebar-item__label {
    font-size: 0.83rem;
    font-weight: 520;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-sidebar-sub-items {
    list-style: none;
    margin: 0 0 0 14px;
    padding: 0;
    display: grid;
}

.replia-sidebar-sub-item {
    display: block;
    padding: 5px 8px;
    font-size: 0.76rem;
    color: var(--app-text-muted);
    text-decoration: none;
}

.replia-sidebar-sub-item--active {
    color: var(--app-text);
}

.replia-topbar-wrap {
    position: sticky;
    top: 0;
    z-index: 30;
}

.replia-topbar {
    min-height: 58px;
    padding: 8px 14px;
    display: grid;
    grid-template-columns: auto minmax(280px, 1fr) auto;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--app-border);
    background: var(--app-surface);
}

.replia-topbar__left {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.replia-topbar__context {
    min-width: 0;
    flex: 1;
}

.replia-topbar__menu-btn {
    display: none;
    flex-shrink: 0;
}

.replia-topbar__menu-btn.fi-icon-btn {
    margin: 0;
}

.replia-topbar__title {
    margin: 0;
    font-size: 0.85rem;
    color: var(--app-text);
    font-weight: 650;
}

.replia-topbar__subtitle {
    margin: 1px 0 0;
    font-size: 0.73rem;
    color: var(--app-text-muted);
}

.replia-topbar__subtitle--primary {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 650;
    line-height: 1.25;
    color: var(--app-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-command-search {
    position: relative;
}

.replia-command-search .fi-global-search {
    background: var(--app-surface-muted) !important;
    border: 1px solid var(--app-border) !important;
    border-radius: 8px !important;
}

.replia-command-search__hint {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.66rem;
    color: var(--app-text-muted);
    pointer-events: none;
}

.replia-topbar__right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.replia-topbar__create-label--compact {
    display: none;
}

.replia-topbar__create {
    text-decoration: none;
    border-radius: 6px;
    background: var(--app-accent);
    color: #fff;
    padding: 7px 10px;
    font-size: 0.78rem;
    font-weight: 600;
    width: auto;
    inline-size: max-content;
    display: inline-flex;
    align-items: center;
}

.replia-topbar__create:hover {
    background: var(--app-accent-hover);
}

.replia-topbar__logout-form {
    margin: 0;
}

.replia-topbar__logout {
    border: 1px solid var(--app-border);
    border-radius: 6px;
    background: var(--app-surface-muted);
    color: var(--app-text);
    padding: 7px 10px;
    font-size: 0.78rem;
    font-weight: 600;
}

.replia-topbar__logout:hover {
    background: var(--app-surface);
}

.replia-page {
    width: min(1700px, 100%);
    margin: 0 auto;
}

.replia-page .fi-page,
.replia-page .fi-main {
    max-width: none !important;
    padding: 0 !important;
}

.replia-dashboard .fi-header {
    display: none;
}

.replia-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 14px;
}

.replia-page-header__title {
    margin: 0;
    font-size: 1.95rem;
    color: var(--app-text);
    font-weight: 700;
}

.replia-page-header__subtitle {
    margin: 6px 0 0;
    font-size: 0.95rem;
    color: var(--app-text-muted);
}

.replia-page-header__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.replia-quick-action {
    text-decoration: none;
    border: 1px solid var(--app-border);
    background: var(--app-surface);
    color: var(--app-text);
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 0.84rem;
    font-weight: 600;
}

.replia-quick-action:hover {
    border-color: var(--app-accent);
}

.replia-info-rail {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.replia-info-rail span {
    background: var(--app-surface-muted);
    color: var(--app-text-muted);
    border: 1px solid var(--app-border);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.75rem;
}

.replia-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.replia-summary-card {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 10px;
    padding: 12px;
}

.replia-summary-card__label {
    margin: 0;
    font-size: 0.8rem;
    color: var(--app-text-muted);
}

.replia-summary-card__value {
    margin: 8px 0 0;
    font-size: 2rem;
    line-height: 1;
    color: var(--app-text);
    font-weight: 700;
}

.replia-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    gap: 12px;
}

.replia-work-section {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 10px;
    padding: 12px;
    display: grid;
    gap: 12px;
}

.replia-work-section--secondary {
    background: var(--app-surface-muted);
}

.replia-work-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    border-bottom: 1px solid var(--app-border);
    padding-bottom: 8px;
}

.replia-work-section__header h2 {
    margin: 0;
    font-size: 1.02rem;
    color: var(--app-text);
}

.replia-work-section__header a {
    font-size: 0.78rem;
    color: var(--app-text-muted);
    text-decoration: none;
}

.replia-work-block h3 {
    margin: 0 0 6px;
    font-size: 0.86rem;
    color: var(--app-text-muted);
    font-weight: 650;
}

.replia-case-list {
    display: grid;
}

.replia-list-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    text-decoration: none;
    padding: 9px 0;
    border-bottom: 1px solid var(--app-border);
}

.replia-list-item:last-child {
    border-bottom: 0;
}

.replia-list-item__title {
    margin: 0;
    font-size: 0.92rem;
    color: var(--app-text);
    font-weight: 600;
}

.replia-list-item__meta {
    margin: 3px 0 0;
    font-size: 0.8rem;
    color: var(--app-text-muted);
}

.replia-badge {
    border: 1px solid var(--app-border);
    color: var(--app-text-muted);
    font-size: 0.7rem;
    border-radius: 999px;
    padding: 2px 8px;
}

.replia-badge--danger {
    border-color: color-mix(in srgb, var(--app-danger) 45%, var(--app-border));
    color: var(--app-danger);
}

.replia-badge--warning {
    border-color: color-mix(in srgb, var(--app-warning) 45%, var(--app-border));
    color: var(--app-warning);
}

.replia-list-item--risk .replia-list-item__title {
    color: var(--app-danger);
}

@media (max-width: 1100px) {
    .replia-shell {
        grid-template-columns: 1fr;
    }

    .replia-shell__main {
        grid-column: 1;
        grid-row: 1;
    }

    /* Mobile: take Livewire sidebar host out of grid so main/topbar are full-width. */
    .replia-sidebar-root,
    .replia-shell > div:has(> .replia-sidebar) {
        position: absolute;
        width: 0;
        height: 0;
        margin: 0;
        padding: 0;
        overflow: visible;
        border: 0;
        grid-column: 1;
        grid-row: 1;
    }

    .replia-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: 260px;
        transform: translateX(-100%);
        transition: transform 180ms ease;
    }

    .replia-sidebar--open {
        transform: translateX(0);
    }

    .replia-sidebar__mobile-close,
    .replia-topbar__menu-btn {
        display: inline-flex;
    }

    .replia-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .replia-topbar-wrap {
        position: sticky;
        top: 0;
        z-index: 30;
    }

    .replia-topbar {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        padding: 8px 10px;
    }

    .replia-topbar__search {
        display: none;
    }

    .replia-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .replia-page-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .replia-topbar__create-label--full {
        display: none;
    }

    .replia-topbar__create-label--compact {
        display: inline;
    }

    .replia-topbar__create {
        padding: 7px 8px;
        font-size: 0.75rem;
    }
}

@media (max-width: 560px) {
    .replia-summary-grid {
        grid-template-columns: 1fr;
    }
}

/* Replia utility primitives */
.replia-app {
    background: var(--app-bg);
    color: var(--app-text);
}

.replia-surface {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 10px;
}

.replia-card {
    background: var(--app-surface-raised);
    border: 1px solid var(--app-border-soft);
    border-radius: 10px;
    padding: 12px;
}

.replia-empty-state {
    padding: 10px 0 2px 10px;
    border-left: 2px solid var(--app-border);
    color: var(--app-text-muted);
}

.replia-button-primary {
    background: var(--app-accent);
    color: #fff;
    border: 1px solid var(--app-accent);
    border-radius: 8px;
}

.replia-button-secondary {
    background: var(--app-surface-muted);
    color: var(--app-text);
    border: 1px solid var(--app-border);
    border-radius: 8px;
}

.replia-quick-create {
    position: relative;
    display: inline-flex;
}

.replia-quick-create__menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 190px;
    z-index: 60;
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.24);
    padding: 6px;
}

.replia-quick-create__item {
    display: block;
    text-decoration: none;
    color: var(--app-text);
    font-size: 0.82rem;
    border-radius: 6px;
    padding: 8px 9px;
}

.replia-quick-create__item:hover {
    background: var(--app-surface-muted);
}

.replia-sidebar__context p + p {
    margin-top: 3px;
    font-size: 0.72rem;
}

/* Ensure command search has token-driven contrast in both modes */
.replia-global-search .fi-input-wrp {
    background: var(--app-surface-muted) !important;
    border: 1px solid var(--app-border) !important;
    color: var(--app-text) !important;
}

.replia-global-search .fi-input {
    color: var(--app-text) !important;
    font-size: 0.86rem !important;
}

.replia-global-search .fi-input::placeholder {
    color: var(--app-text-soft) !important;
    opacity: 1;
}

.replia-global-search .fi-input-wrp:focus-within,
.replia-command-search .fi-global-search:focus-within {
    border-color: var(--app-accent) !important;
    box-shadow: 0 0 0 3px var(--app-focus-ring) !important;
}

/* Resource/table/forms inherit shell identity */
.replia-app-shell .fi-resource .fi-header-heading {
    color: var(--app-text-strong) !important;
    font-size: 1.7rem !important;
}

.replia-app-shell .fi-resource .fi-header-subheading {
    color: var(--app-text-muted) !important;
    font-size: 0.9rem !important;
}

.replia-app-shell .fi-resource .fi-section,
.replia-app-shell .fi-resource .fi-in,
.replia-app-shell .fi-resource .fi-fo,
.replia-app-shell .fi-resource .fi-ta-table {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
}

.replia-app-shell .fi-resource .fi-section-heading {
    color: var(--app-text-strong) !important;
    font-size: 0.95rem !important;
}

.replia-app-shell .fi-resource .fi-ta-header-toolbar {
    background: var(--app-surface-muted) !important;
    border: 1px solid var(--app-border-soft) !important;
    border-radius: 8px !important;
    padding: 8px !important;
}

.replia-app-shell .fi-resource .fi-ta-table thead th {
    background: var(--app-surface-muted) !important;
    color: var(--app-text-muted) !important;
}

.replia-app-shell .fi-resource .fi-ta-table tbody td {
    color: var(--app-text) !important;
    font-size: 0.85rem !important;
}

.replia-app-shell .fi-resource .fi-ta-table tbody tr:hover {
    background: var(--app-accent-soft) !important;
}

/* Notes tables (title + body columns): enforce ~15% / ~48% split; header width alone does not always constrain cells. */
.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) {
    table-layout: fixed;
    width: 100%;
}

.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-header-cell-title,
.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-cell-title {
    width: 15%;
    max-width: 15%;
}

.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-header-cell-body,
.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-cell-body {
    width: 48%;
}

.replia-app-shell .fi-resource .fi-fo-field-wrp-label {
    color: var(--app-text-muted) !important;
    font-size: 0.82rem !important;
}

.replia-app-shell .fi-resource .fi-input-wrp,
.replia-app-shell .fi-resource .fi-select-input,
.replia-app-shell .fi-resource .fi-textarea {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
}

.replia-app-shell .fi-resource .fi-input:focus,
.replia-app-shell .fi-resource .fi-select-input:focus,
.replia-app-shell .fi-resource .fi-textarea:focus {
    border-color: var(--app-accent) !important;
    box-shadow: 0 0 0 3px var(--app-focus-ring) !important;
}

/* -------------------------------------------------------------------------- */
/* QA correction layer: token-only shell, dashboard, calendar, case file       */
/* -------------------------------------------------------------------------- */

:root {
    --app-shell: #ffffff;
    --app-sidebar: #f1f5f9;
    --app-surface-raised: #ffffff;
    --app-surface-muted: #f1f5f9;
}

.dark {
    --app-shell: #0f172a;
    --app-sidebar: #0f172a;
    --app-surface-raised: #1e293b;
    --app-surface-muted: #162033;
}

.fi-body,
.fi-layout,
.fi-main,
.fi-main-ctn,
.replia-app-shell .fi-layout,
.replia-app-shell .fi-body {
    background: var(--app-bg) !important;
    color: var(--app-text) !important;
}

.fi-sidebar,
.replia-sidebar,
.replia-topbar {
    background: var(--app-sidebar) !important;
    color: var(--app-text) !important;
    border-color: var(--app-border-soft) !important;
}

.fi-topbar,
.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview),
.fi-in-entry,
.fi-modal-window,
.fi-dropdown-panel,
.fi-select-dropdown,
.fi-ta-filters-dropdown {
    background: var(--app-surface) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.fi-section-header,
.fi-modal-header,
.fi-ta-header,
.fi-ta-header-toolbar,
.fi-ta-table thead th {
    background: var(--app-surface-muted) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text-muted) !important;
}

.fi-header-heading,
.fi-section-heading,
.fi-modal-heading,
.fi-ta-header-heading,
.fi-ta-empty-state-heading,
.replia-page-title,
.replia-page-header__title {
    color: var(--app-text-strong) !important;
}

.fi-header-subheading,
.fi-fo-field-wrp-label,
.fi-fo-field-wrp-helper-text,
.fi-in-entry-label,
.fi-ta-empty-state-description,
.replia-page-subtitle,
.replia-page-header__subtitle {
    color: var(--app-text-muted) !important;
}

.fi-ta-table {
    background: var(--app-surface) !important;
    border: 1px solid var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.fi-ta-table tbody td,
.fi-in-entry-content,
.fi-dropdown-list-item,
.fi-select-option,
.fi-pagination,
.fi-ta-text {
    color: var(--app-text) !important;
}

.fi-ta-table tbody tr {
    border-color: var(--app-border-soft) !important;
}

.fi-ta-table tbody tr:hover {
    background: var(--app-surface-muted) !important;
}

.fi-input,
.fi-select-input,
.fi-textarea,
.fi-input-wrp,
.fi-fo-field-wrp .fi-input-wrp {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
}

.fi-input::placeholder,
.fi-textarea::placeholder {
    color: var(--app-text-soft) !important;
}

.fi-link,
.replia-work-section__header a,
.replia-section-header a {
    color: var(--app-accent) !important;
}

.fi-tabs,
.replia-tabs {
    background: var(--app-surface) !important;
    border-color: var(--app-border-soft) !important;
}

.fi-tabs-item {
    color: var(--app-text-muted) !important;
}

.fi-tabs-item.fi-active {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
    border-color: var(--app-accent) !important;
}

.fi-pagination-item.fi-active .fi-pagination-item-btn {
    background: var(--app-accent-soft) !important;
    color: var(--app-accent) !important;
    border-color: color-mix(in srgb, var(--app-accent) 38%, var(--app-border-soft)) !important;
}

.fi-pagination-item:not(.fi-disabled) .fi-pagination-item-btn:hover {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
}

.replia-app-shell .fi-sidebar-item.fi-active .fi-sidebar-item-button {
    background: var(--app-accent-soft) !important;
    border-inline-start: 3px solid var(--app-accent) !important;
    color: var(--app-text-strong) !important;
}

.replia-app-shell .fi-sidebar-item-button:hover,
.replia-app-shell .fi-sidebar-group-button:hover {
    background: var(--app-accent-soft) !important;
}

.fi-badge-color-primary {
    background: var(--app-accent-soft) !important;
    color: var(--app-accent) !important;
    border-color: color-mix(in srgb, var(--app-accent) 32%, var(--app-border)) !important;
}

.fi-badge-color-gray {
    background: var(--app-surface-muted) !important;
    color: var(--app-text-muted) !important;
    border-color: var(--app-border-soft) !important;
}

/* Filament StatsOverviewWidget styles: public/css/filament-stats-overview-overrides.css (loads after theme) */

.replia-page {
    width: min(1700px, 100%);
    margin: 0 auto;
    color: var(--app-text);
}

.replia-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1rem;
}

.replia-page-title,
.replia-page-header__title {
    margin: 0;
    font-size: clamp(1.55rem, 2vw, 2rem);
    line-height: 1.1;
    font-weight: 750;
}

.replia-page-subtitle,
.replia-page-header__subtitle {
    margin: 0.35rem 0 0;
    font-size: 0.95rem;
}

.replia-card,
.replia-section-card,
.replia-dashboard-section,
.replia-summary-card,
.replia-work-section,
.my-calendar-day,
.my-calendar-toolbar,
.my-calendar-agenda,
.replia-modal-card {
    background: var(--app-surface-raised) !important;
    border: 1px solid var(--app-border-soft) !important;
    border-radius: 0.75rem !important;
    color: var(--app-text) !important;
}

.replia-section-card,
.replia-dashboard-section,
.replia-card {
    padding: 0.9rem;
}

.replia-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(20rem, 0.9fr);
    gap: 1rem;
    align-items: start;
}

.replia-dashboard-column {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.replia-dashboard-section {
    display: grid;
    gap: 0.75rem;
}

.replia-section-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    border-bottom: 1px solid var(--app-border-soft);
    padding-bottom: 0.65rem;
}

.replia-section-header h2,
.replia-work-section__header h2 {
    margin: 0;
    color: var(--app-text-strong);
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 700;
}

.replia-section-header p {
    margin: 0.2rem 0 0;
    color: var(--app-text-muted);
    font-size: 0.82rem;
}

.replia-section-header__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
}

.replia-section-header__links a {
    color: var(--app-accent);
    text-decoration: none;
}

.replia-section-header__links a:hover {
    color: var(--app-accent-hover);
    text-decoration: underline;
}

.replia-section-header__links-sep {
    color: var(--app-text-muted);
    font-weight: 500;
}

.replia-list,
.replia-case-list {
    display: grid;
    gap: 0.5rem;
}

.replia-list-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.65rem;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.6rem;
    background: var(--app-surface);
    color: inherit;
    transition:
        background-color 140ms ease,
        border-color 140ms ease,
        box-shadow 140ms ease;
}

.replia-list-item:hover {
    background: var(--app-surface-muted);
    border-color: var(--app-border);
}

.replia-list-item__main {
    min-width: 0;
}

.replia-list-item__title {
    color: var(--app-text-strong);
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-list-item__meta {
    color: var(--app-text-muted);
}

.replia-badge {
    flex: 0 0 auto;
    background: var(--app-surface-muted);
    border-color: var(--app-border-soft);
    color: var(--app-text-muted);
    white-space: nowrap;
}

.replia-badge--danger,
.replia-list-item--risk .replia-list-item__title {
    color: var(--app-danger);
}

.replia-fact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.65rem;
}

.replia-fact {
    border: 1px solid var(--app-border-soft);
    border-radius: 0.6rem;
    background: var(--app-surface);
    padding: 0.65rem 0.75rem;
}

.replia-detail-list {
    display: grid;
    gap: 0.5rem;
}

.replia-detail-list > div,
.replia-form-field {
    display: grid;
    gap: 0.2rem;
}

.replia-form-label,
.replia-detail-label {
    margin: 0;
    color: var(--app-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.replia-form-help,
.replia-detail-muted {
    margin: 0;
    color: var(--app-text-muted);
    font-size: 0.8rem;
}

.replia-detail-value {
    margin: 0;
    color: var(--app-text);
}

.replia-note-body {
    white-space: pre-wrap;
    border-radius: 0.65rem;
    background: var(--app-surface-muted);
    padding: 0.75rem;
}

.replia-media-player {
    display: grid;
    gap: 1rem;
}

.replia-media-player__stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.replia-media-player__stage--video {
    overflow: hidden;
    border-radius: 0.75rem;
    background: #000;
}

.replia-media-player__video {
    display: block;
    width: 100%;
    max-height: 70vh;
    margin-inline: auto;
    object-fit: contain;
    background: #000;
}

.replia-media-player__stage--audio {
    width: 100%;
    max-width: 28rem;
    margin-inline: auto;
    padding: 1.25rem 1rem;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.75rem;
    background: var(--app-surface-muted);
}

.replia-media-player__audio {
    display: block;
    width: 100%;
}

.replia-media-player__hint {
    width: 100%;
    margin: 0.65rem 0 0;
    padding: 0 0.75rem 0.75rem;
}

.replia-media-player__facts {
    padding-top: 0.25rem;
    border-top: 1px solid var(--app-border-soft);
}

.replia-document-viewer__inline-trigger {
    cursor: zoom-in;
    border-radius: 0.75rem;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.replia-document-viewer__inline-trigger:hover {
    box-shadow: 0 0 0 1px var(--app-border-soft);
}

.replia-document-viewer__inline {
    overflow: hidden;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.75rem;
    background: var(--app-surface-muted);
}

.replia-document-viewer__filename {
    margin: 0;
    padding: 0.65rem 0.85rem 0;
}

.replia-document-viewer__pdf-shell {
    overflow: hidden;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.5rem;
    background: var(--app-surface-muted);
}

.replia-document-viewer__pdf-shell--inline {
    padding: 0.35rem;
}

.replia-document-viewer__pdf-shell--modal {
    display: grid;
    gap: 0.65rem;
    border-color: var(--app-border-soft);
    background: var(--app-surface-muted);
}

.replia-document-viewer__pdf-scroll {
    overflow: auto;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.35rem;
    background: var(--app-surface);
}

.replia-document-viewer__stage--inline .replia-document-viewer__pdf-scroll {
    flex: 1;
    width: 100%;
    min-height: min(280px, 35vh);
    max-height: min(420px, 45vh);
}

.replia-document-viewer__stage--modal .replia-document-viewer__pdf-scroll {
    max-height: 72vh;
    background: var(--app-surface-muted);
    padding: 1rem;
}

.replia-document-viewer__pdf-pages {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.replia-document-viewer__pdf-page {
    display: flex;
    justify-content: center;
    width: 100%;
}

.replia-document-viewer__pdf-canvas {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 0.25rem;
    background: var(--app-surface);
}

.replia-document-viewer__pdf-status {
    margin: 0;
    padding: 0.75rem;
    text-align: center;
}

.replia-document-viewer__pdf-status--error {
    color: var(--app-danger, #b91c1c);
}

.replia-document-viewer__toolbar-label {
    padding: 0.35rem 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.2;
}

.replia-document-viewer__stage--inline .replia-document-viewer__image-scroll {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: min(280px, 35vh);
    max-height: min(420px, 45vh);
    padding: 0.75rem;
    overflow: hidden;
}

.replia-document-viewer__image {
    display: block;
    max-width: 100%;
    max-height: min(380px, 40vh);
    object-fit: contain;
    transform-origin: top center;
}

.replia-document-viewer__stage--modal {
    display: grid;
    gap: 0.75rem;
}

.replia-document-viewer__image-shell--modal {
    display: grid;
    gap: 0.65rem;
}

.replia-document-viewer__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.replia-document-viewer__toolbar-btn {
    border: 1px solid var(--app-border-soft);
    border-radius: 0.5rem;
    background: var(--app-surface-muted);
    color: inherit;
    padding: 0.35rem 0.7rem;
    font-size: 0.8125rem;
    line-height: 1.2;
    cursor: pointer;
}

.replia-document-viewer__toolbar-btn:hover {
    border-color: var(--app-border-strong, var(--app-border-soft));
    background: var(--app-surface, #fff);
}

.replia-document-viewer__image-scroll--modal {
    overflow: auto;
    max-height: 72vh;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.5rem;
    background: var(--app-surface-muted);
    padding: 1rem;
}

.replia-document-viewer__image-scroll--modal .replia-document-viewer__image {
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
    margin-inline: auto;
}

.replia-document-viewer__fallback {
    display: grid;
    gap: 0.5rem;
    padding: 1rem;
}

.replia-log-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.replia-log-filter-btn {
    border-radius: 999px;
}

.replia-log-section .fi-section-content {
    display: grid;
    gap: 0.75rem;
}

.replia-log-entry {
    margin-bottom: 0;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.8rem;
    background: var(--app-surface);
    padding: 0.9rem;
}

.replia-log-entry__header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.65rem;
}

.replia-log-entry__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}

.replia-log-entry__timestamp {
    font-size: 0.78rem;
    color: var(--app-text-muted);
}

.replia-log-entry__badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--app-border-soft);
    background: var(--app-surface-muted);
    color: var(--app-text-strong);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    padding: 0.12rem 0.5rem;
    text-transform: capitalize;
}

.replia-log-entry__actor {
    font-size: 0.8rem;
    color: var(--app-text);
}

.replia-log-entry__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.replia-log-entry__reverted-by {
    font-size: 0.75rem;
    color: var(--app-text-muted);
}

.replia-log-entry__body {
    margin-top: 0.55rem;
    display: grid;
    gap: 0.3rem;
}

.replia-log-entry__changes {
    font-size: 0.76rem;
    color: var(--app-text-muted);
}

.replia-log-empty {
    padding: 0.5rem 0.1rem;
}

.app-log-entry.reverted {
    text-decoration: none;
    opacity: 0.78;
}

/* Keep Agendas cards readable in light mode. */
.workflow-agenda-toolbar,
.workflow-agenda-row {
    background: var(--app-surface) !important;
    border: 1px solid var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.replia-empty-state,
.app-empty-state {
    background: var(--app-surface-muted) !important;
    border: 1px dashed var(--app-border) !important;
    border-radius: 0.65rem !important;
    color: var(--app-text-muted) !important;
    padding: 0.75rem !important;
}

.app-empty-state__title {
    color: var(--app-text-strong) !important;
}

.app-empty-state__text {
    color: var(--app-text-muted) !important;
}

.replia-table {
    color: var(--app-text);
}

.my-calendar-toolbar {
    padding: 0.8rem;
}

.my-calendar-filters {
    gap: 0.4rem;
}

.my-calendar-day {
    min-height: 18rem;
    max-height: none;
    padding: 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.my-calendar-day-body {
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    flex: 1 1 auto;
}

.my-calendar-day-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    color: var(--app-text-strong);
}

.my-calendar-day-header span:last-child {
    color: var(--app-text-muted);
    font-size: 0.72rem;
    font-weight: 600;
}

.my-calendar-day-items {
    gap: 0.55rem;
    min-height: 0;
    flex: 1 1 auto;
    display: grid;
    grid-auto-rows: min-content;
}

.my-calendar-day-footer {
    flex: 0 0 auto;
    margin-top: 0.4rem;
}

.my-calendar-item,
.replia-calendar-event {
    min-width: 0;
    text-decoration: none;
}

.my-calendar-item-time,
.my-calendar-item-title,
.my-calendar-item-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-calendar-item-kicker {
    margin: 0;
    color: var(--app-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.my-calendar-item-time {
    color: var(--app-text-muted);
    font-weight: 650;
    font-size: 0.75rem;
}

.my-calendar-item-title {
    color: var(--app-text-strong);
    font-size: 0.84rem;
    font-weight: 700;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.my-calendar-item-meta {
    color: var(--app-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.my-calendar-more-button {
    width: 100%;
    border: 1px dashed var(--app-border);
    border-radius: 0.55rem;
    background: var(--app-surface-muted);
    color: var(--app-accent);
    padding: 0.45rem 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-align: left;
}

/* Month-view: busy days collapse into a compact "X meetings, Y hearings, Z reps available" pill. */
.my-calendar-day-summary {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.6rem 0.65rem;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.55rem;
    background: var(--app-surface-muted);
    color: var(--app-text);
    text-align: left;
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.my-calendar-day-summary:hover,
.my-calendar-day-summary:focus-visible {
    border-color: color-mix(in srgb, var(--app-accent) 35%, var(--app-border));
    background: color-mix(in srgb, var(--app-accent) 6%, var(--app-surface));
}

.my-calendar-day-summary__counts {
    color: var(--app-text-strong);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.25;
}

.my-calendar-day-summary__cta {
    color: var(--app-accent);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.unit-status-chip {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
}

.my-calendar-agenda {
    display: grid;
    gap: 1rem;
    padding: 0.9rem;
}

.my-calendar-agenda-day {
    display: grid;
    gap: 0.5rem;
}

.my-calendar-agenda-day h2 {
    margin: 0;
    color: var(--app-text-strong);
    font-size: 0.95rem;
}

.replia-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: center;
    background: rgba(15, 23, 42, 0.5);
    padding: 1rem;
}

.replia-modal-card {
    width: min(42rem, 100%);
    max-height: min(42rem, 88vh);
    overflow: auto;
    padding: 1rem;
    display: grid;
    gap: 0.75rem;
}

.my-calendar-expanded-list {
    display: grid;
    gap: 0.5rem;
}

.app-casefile-page .fi-header {
    background: var(--app-surface-raised) !important;
    border: 1px solid var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.app-casefile-page .fi-section {
    background: var(--app-surface-raised) !important;
    border-color: var(--app-border-soft) !important;
    /* Match .app-casefile-page .fi-header (12px); was 10px via .fi-resource .fi-section */
    border-radius: 12px !important;
}

.app-casefile-page .fi-section.fi-section-has-header > .fi-section-header {
    border-top-left-radius: 12px !important;
    border-top-right-radius: 12px !important;
}

.app-casefile-page .fi-in {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
    gap: 1rem;
    width: 100% !important;
    max-width: none !important;
}

.app-casefile-page .fi-section-content-ctn {
    width: 100% !important;
    max-width: none !important;
}

.app-casefile-page .fi-in > :only-child {
    grid-column: 1 / -1;
    width: 100% !important;
    max-width: none !important;
}

.app-casefile-page .fi-in-entry-wrp {
    border-bottom-color: var(--app-border-soft) !important;
}

.app-casefile-page .fi-in-entry-label {
    color: var(--app-text-muted) !important;
}

.app-casefile-page .fi-in-entry-content {
    color: var(--app-text) !important;
}

.app-casefile-page .fi-in-entry,
.app-casefile-page .fi-in-entry-wrp,
.app-casefile-page .fi-in-entry-content-ctn {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.app-casefile-page .fi-in-entry {
    border: 0 !important;
    padding: 0 !important;
}

.app-casefile-page .fi-in-entry-wrp {
    border-bottom: 1px solid var(--app-border-soft) !important;
    padding: 0.55rem 0 !important;
}

.app-casefile-page .fi-in-entry-label-ctn {
    margin-bottom: 0.2rem !important;
}

.app-casefile-page .fi-tabs {
    margin-top: 0.75rem;
    padding: 0.35rem;
    border: 1px solid var(--app-border-soft) !important;
    border-radius: 0.75rem;
    background: var(--app-surface-raised) !important;
}

.app-casefile-page--meeting .fi-sc.fi-grid.lg\:fi-grid-cols:has(#infolist\.meeting-details\:\:section) {
    align-items: start;
}

.app-casefile-page--meeting .fi-sc.fi-grid.lg\:fi-grid-cols:has(#infolist\.meeting-details\:\:section) > .fi-grid-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.app-casefile-page--meeting .fi-sc.fi-grid.lg\:fi-grid-cols:has(#infolist\.meeting-details\:\:section) > .fi-grid-col:has(#infolist\.meeting-notice\:\:section),
.app-casefile-page--meeting .fi-sc.fi-grid.lg\:fi-grid-cols:has(#infolist\.meeting-details\:\:section) > .fi-grid-col:has(.replia-meeting-notice-section) {
    align-self: stretch;
    min-height: 0;
    overflow: hidden;
}

.app-casefile-page--meeting #infolist\.meeting-details\:\:section > .fi-section {
    height: 100%;
}

.app-casefile-page--meeting #infolist\.meeting-notice\:\:section,
.app-casefile-page--meeting .replia-meeting-notice-section {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.app-casefile-page--meeting #infolist\.meeting-notice\:\:section > .fi-section,
.app-casefile-page--meeting .replia-meeting-notice-section > .fi-section {
    display: flex;
    flex: 1;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.app-casefile-page--meeting #infolist\.meeting-notice\:\:section .fi-section-content-ctn,
.app-casefile-page--meeting #infolist\.meeting-notice\:\:section .fi-section-content,
.app-casefile-page--meeting .replia-meeting-notice-section .fi-section-content-ctn,
.app-casefile-page--meeting .replia-meeting-notice-section .fi-section-content,
.app-casefile-page--meeting #infolist\.meeting-notice\:\:section .fi-section-content > .fi-grid-col,
.app-casefile-page--meeting .replia-meeting-notice-section .fi-section-content > .fi-grid-col,
.app-casefile-page--meeting #infolist\.meeting-notice\:\:section .fi-sc-component,
.app-casefile-page--meeting .replia-meeting-notice-section .fi-sc-component,
.app-casefile-page--meeting #infolist\.meeting-notice\:\:section .fi-in-entry-wrp,
.app-casefile-page--meeting .replia-meeting-notice-section .fi-in-entry-wrp,
.app-casefile-page--meeting #infolist\.meeting-notice\:\:section .fi-in-entry-content-ctn,
.app-casefile-page--meeting .replia-meeting-notice-section .fi-in-entry-content-ctn {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body > div {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .fi-modal-trigger {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__actions {
    flex-shrink: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__empty {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    margin: 0;
    text-align: center;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__inline-trigger {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__inline {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__inline .replia-document-viewer__filename {
    flex-shrink: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__stage--inline {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__stage--inline {
    overflow: hidden;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__stage--inline .replia-document-viewer__pdf-shell {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__stage--inline .replia-document-viewer__pdf-scroll {
    flex: 1 1 0;
    width: 100%;
    height: 0;
    min-height: 0;
    max-height: none;
    overflow: auto;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__stage--inline .replia-document-viewer__image-scroll {
    flex: 1;
    max-height: none;
    min-height: 0;
}

.app-casefile-page--meeting .replia-meeting-notice-preview__body .replia-document-viewer__stage--inline .replia-document-viewer__image {
    max-height: 100%;
}

@media (max-width: 1100px) {
    .replia-dashboard-grid,
    .app-casefile-page .fi-in {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .replia-page-header,
    .replia-section-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* -------------------------------------------------------------------------- */
/* Visual refinement layer: calmer hierarchy and reduced border noise          */
/* -------------------------------------------------------------------------- */

:root {
    --app-bg: #f8fafc;
    --app-shell: #ffffff;
    --app-sidebar: #f1f5f9;
    --app-surface: #ffffff;
    --app-surface-raised: #ffffff;
    --app-surface-muted: #f6f8fb;
    --app-surface-inset: #eef2f7;
    --app-border: #cbd5e1;
    --app-border-soft: #e5eaf1;
    --app-border-subtle: rgba(148, 163, 184, 0.22);
    --app-shadow-soft: 0 1px 2px rgba(15, 23, 42, 0.04), 0 14px 32px rgba(15, 23, 42, 0.06);
    --app-shadow-panel: 0 10px 30px rgba(15, 23, 42, 0.07);
}

.dark {
    --app-bg: #0b1120;
    --app-shell: #0f172a;
    --app-sidebar: #0f172a;
    --app-surface: #172033;
    --app-surface-raised: #1e293b;
    --app-surface-muted: #263449;
    --app-surface-inset: #111827;
    --app-border: rgba(148, 163, 184, 0.26);
    --app-border-soft: rgba(148, 163, 184, 0.14);
    --app-border-subtle: rgba(148, 163, 184, 0.10);
    --app-shadow-soft: 0 1px 2px rgba(0, 0, 0, 0.16), 0 18px 40px rgba(0, 0, 0, 0.18);
    --app-shadow-panel: 0 18px 42px rgba(0, 0, 0, 0.20);
}

.fi-body,
.fi-layout,
.fi-main,
.fi-main-ctn,
.replia-app-shell .fi-layout,
.replia-app-shell .fi-body {
    background: var(--app-bg) !important;
}

.replia-shell__content {
    padding: 24px 28px 32px;
}

.replia-topbar {
    min-height: 54px;
    background: color-mix(in srgb, var(--app-shell) 92%, var(--app-surface)) !important;
    border-bottom: 1px solid var(--app-border-subtle) !important;
    box-shadow: 0 1px 0 var(--app-border-subtle);
}

.replia-command-search .fi-global-search,
.replia-global-search .fi-input-wrp {
    background: color-mix(in srgb, var(--app-surface-muted) 74%, transparent) !important;
    border-color: var(--app-border-subtle) !important;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--app-surface) 45%, transparent) !important;
}

.replia-topbar__create {
    background: var(--app-accent) !important;
    border: 1px solid color-mix(in srgb, var(--app-accent) 65%, var(--app-border)) !important;
    color: #ffffff !important;
    box-shadow: none;
    padding: 7px 11px;
}

.replia-topbar__create:hover {
    background: var(--app-accent-hover) !important;
    border-color: var(--app-accent-hover) !important;
}

.replia-quick-create__menu {
    background: var(--app-surface-raised);
    border-color: var(--app-border-soft);
    box-shadow: var(--app-shadow-panel);
}

.replia-sidebar {
    background: var(--app-sidebar) !important;
    border-right: 1px solid var(--app-border-subtle) !important;
}

.replia-sidebar__inner {
    padding: 12px 10px 16px;
}

.replia-sidebar__context {
    background: color-mix(in srgb, var(--app-surface-muted) 70%, transparent);
    border-color: var(--app-border-subtle);
}

.replia-sidebar-section__title {
    color: var(--app-text-soft);
    font-size: 0.62rem;
}

.replia-sidebar-item {
    min-height: 32px;
    color: var(--app-text-muted);
    border-left-width: 2px;
}

.replia-sidebar-item__icon {
    opacity: 0.74;
}

.replia-sidebar-item--active {
    background: color-mix(in srgb, var(--app-accent) 10%, transparent);
    color: var(--app-text-strong);
}

.replia-sidebar-item--active .replia-sidebar-item__icon {
    opacity: 0.9;
}

.replia-page-header {
    margin-bottom: 20px;
}

.replia-page-header__title {
    font-size: clamp(1.65rem, 2vw, 2rem);
    letter-spacing: -0.025em;
}

.replia-page-header__subtitle {
    color: var(--app-text-muted);
}

.replia-info-rail {
    margin-bottom: 20px;
}

.replia-info-rail span {
    background: transparent;
    border-color: var(--app-border-subtle);
    color: var(--app-text-muted);
}

.replia-summary-grid {
    gap: 12px;
    margin-bottom: 24px;
}

.replia-summary-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, var(--app-surface-raised), color-mix(in srgb, var(--app-surface-raised) 86%, var(--app-surface-muted))) !important;
    border-color: var(--app-border-subtle) !important;
    box-shadow: var(--app-shadow-soft);
    padding: 16px 18px;
}

.replia-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 2px;
    background: color-mix(in srgb, var(--app-accent) 70%, transparent);
    opacity: 0.75;
}

.replia-summary-card__label {
    font-size: 0.76rem;
    font-weight: 650;
}

.replia-summary-card__value {
    margin-top: 8px;
    font-size: clamp(1.55rem, 2.2vw, 2rem);
    letter-spacing: -0.035em;
}

.replia-dashboard-grid {
    gap: 24px;
}

.replia-dashboard-column {
    gap: 24px;
}

.replia-dashboard-section,
.replia-card,
.replia-section-card,
.replia-work-section {
    border-color: var(--app-border-subtle) !important;
    box-shadow: var(--app-shadow-soft);
}

.replia-dashboard-section {
    padding: 18px;
    gap: 14px;
}

.replia-dashboard-section--primary {
    background: var(--app-surface-raised) !important;
}

.replia-dashboard-section--secondary {
    background: color-mix(in srgb, var(--app-surface-raised) 74%, var(--app-surface-muted)) !important;
    border-color: color-mix(in srgb, var(--app-border-subtle) 65%, transparent) !important;
    box-shadow: none;
}

.replia-section-header {
    padding-bottom: 12px;
    border-bottom-color: var(--app-border-subtle);
}

.replia-section-header h2 {
    font-size: 0.98rem;
    letter-spacing: -0.01em;
}

.replia-section-header p {
    color: var(--app-text-soft);
    font-size: 0.8rem;
}

.replia-section-header a {
    align-self: flex-start;
    color: var(--app-accent) !important;
    font-size: 0.78rem;
    font-weight: 650;
    text-decoration: none;
}

.replia-section-header a:hover {
    color: var(--app-accent-hover) !important;
}

.replia-case-list,
.replia-list {
    gap: 0;
}

.replia-list-item {
    position: relative;
    min-width: 0;
    padding: 12px 2px;
    border: 0;
    border-bottom: 1px solid var(--app-border-subtle);
    border-radius: 0;
    background: transparent;
    transition: background-color 140ms ease, padding-inline 140ms ease;
}

.replia-list-item:last-child {
    border-bottom: 0;
}

.replia-list-item:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 62%, transparent);
    border-color: var(--app-border-subtle);
    border-radius: 8px;
    padding-inline: 10px;
}

.replia-dashboard-section--secondary .replia-list-item {
    padding-block: 10px;
}

.replia-dashboard-section--secondary .replia-list-item:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 46%, transparent);
}

.replia-list-item__main {
    min-width: 0;
    overflow: hidden;
}

.replia-list-item__title {
    max-width: 100%;
    font-size: 0.9rem;
    line-height: 1.35;
    white-space: nowrap;
}

.replia-list-item__meta {
    margin-top: 4px;
    color: var(--app-text-soft);
    font-size: 0.78rem;
    line-height: 1.35;
}

.replia-dashboard-section--secondary .replia-list-item__title {
    font-size: 0.86rem;
    font-weight: 620;
}

.replia-dashboard-section--secondary .replia-list-item__meta {
    font-size: 0.76rem;
}

.replia-badge {
    background: color-mix(in srgb, var(--app-surface-muted) 80%, transparent);
    border: 0;
    color: var(--app-text-muted);
    padding: 2px 8px;
    font-size: 0.68rem;
    font-weight: 650;
}

.replia-badge--danger {
    background: var(--app-danger-soft);
    color: var(--app-danger);
}

.replia-empty-state,
.app-empty-state {
    border: 0 !important;
    border-left: 2px solid var(--app-border-subtle) !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 10px 0 10px 12px !important;
}

.fi-ta-table {
    border-color: var(--app-border-subtle) !important;
    box-shadow: none !important;
}

.fi-ta-table thead th {
    background: color-mix(in srgb, var(--app-surface-muted) 64%, transparent) !important;
}

.fi-ta-table tbody tr {
    border-color: var(--app-border-subtle) !important;
}

.fi-ta-table tbody tr:hover,
.replia-app-shell .fi-resource .fi-ta-table tbody tr:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 58%, transparent) !important;
}

.fi-ta-header-toolbar,
.replia-app-shell .fi-resource .fi-ta-header-toolbar {
    background: transparent !important;
    border-color: transparent !important;
    padding-inline: 0 !important;
}

/* Final UI audit corrections: keep accent and semantic color usage intentional. */
:root {
    --app-success: #15803d;
    --app-success-soft: #dcfce7;
    --app-warning: #b45309;
    --app-warning-soft: #fef3c7;
    --app-danger: #b91c1c;
    --app-danger-soft: #fee2e2;
    --app-info: #1d4ed8;
    --app-info-soft: #dbeafe;
    --app-neutral-chip: #475569;
    --app-neutral-chip-soft: #f1f5f9;
}

.dark {
    --app-success: #86efac;
    --app-success-soft: rgba(34, 197, 94, 0.18);
    --app-warning: #fde68a;
    --app-warning-soft: rgba(245, 158, 11, 0.18);
    --app-danger: #fca5a5;
    --app-danger-soft: rgba(248, 113, 113, 0.16);
    --app-info: #bfdbfe;
    --app-info-soft: rgba(59, 130, 246, 0.18);
    --app-neutral-chip: #cbd5e1;
    --app-neutral-chip-soft: rgba(100, 116, 139, 0.2);
}

.replia-global-search .fi-global-search-results-ctn {
    background: var(--app-surface-raised) !important;
    border: 1px solid var(--app-border-soft) !important;
    box-shadow: var(--app-shadow-panel) !important;
    color: var(--app-text) !important;
}

.replia-global-search .fi-global-search-result-link:hover,
.replia-quick-create__item:hover,
.fi-dropdown-list-item:hover {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
}

.replia-global-search .fi-global-search-result-heading,
.replia-global-search .fi-global-search-result-detail-value {
    color: var(--app-text) !important;
}

.replia-global-search .fi-global-search-result-group-header,
.replia-global-search .fi-global-search-result-detail-label,
.replia-global-search .fi-global-search-no-results-message {
    color: var(--app-text-muted) !important;
}

.replia-quick-create__menu {
    background: var(--app-surface-raised) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.replia-quick-create__item {
    color: var(--app-text-strong) !important;
}

.replia-quick-create__item:focus-visible {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
}

.fi-badge {
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    font-size: 0.68rem !important;
    font-weight: 650 !important;
}

.fi-badge-color-success {
    background: var(--app-success-soft) !important;
    border-color: color-mix(in srgb, var(--app-success) 32%, transparent) !important;
    color: var(--app-success) !important;
}

.fi-badge-color-warning {
    background: var(--app-warning-soft) !important;
    border-color: color-mix(in srgb, var(--app-warning) 32%, transparent) !important;
    color: var(--app-warning) !important;
}

.fi-badge-color-danger {
    background: var(--app-danger-soft) !important;
    border-color: color-mix(in srgb, var(--app-danger) 32%, transparent) !important;
    color: var(--app-danger) !important;
}

.fi-badge-color-info,
.fi-badge-color-blue,
.fi-badge-color-sky,
.fi-badge-color-cyan {
    background: var(--app-info-soft) !important;
    border-color: color-mix(in srgb, var(--app-info) 32%, transparent) !important;
    color: var(--app-info) !important;
}

.fi-badge-color-gray,
.fi-badge-color-slate,
.fi-badge-color-zinc,
.fi-badge-color-neutral,
.fi-badge-color-indigo,
.fi-badge-color-violet,
.fi-badge-color-purple,
.fi-badge-color-fuchsia,
.fi-badge-color-pink,
.fi-badge-color-rose {
    background: var(--app-neutral-chip-soft) !important;
    border-color: color-mix(in srgb, var(--app-neutral-chip) 22%, transparent) !important;
    color: var(--app-neutral-chip) !important;
}

.unit-status-chip--blue,
.unit-status-chip--cyan,
.unit-status-chip--teal {
    border-color: color-mix(in srgb, var(--app-info) 34%, transparent) !important;
    background: var(--app-info-soft) !important;
    color: var(--app-info) !important;
}

.unit-status-chip--green,
.unit-status-chip--emerald,
.unit-status-chip--lime {
    border-color: color-mix(in srgb, var(--app-success) 34%, transparent) !important;
    background: var(--app-success-soft) !important;
    color: var(--app-success) !important;
}

.unit-status-chip--amber,
.unit-status-chip--orange,
.unit-status-chip--yellow {
    border-color: color-mix(in srgb, var(--app-warning) 34%, transparent) !important;
    background: var(--app-warning-soft) !important;
    color: var(--app-warning) !important;
}

.unit-status-chip--red {
    border-color: color-mix(in srgb, var(--app-danger) 34%, transparent) !important;
    background: var(--app-danger-soft) !important;
    color: var(--app-danger) !important;
}

.unit-status-chip--gray,
.unit-status-chip--slate,
.unit-status-chip--zinc,
.unit-status-chip--indigo,
.unit-status-chip--pink {
    border-color: color-mix(in srgb, var(--app-neutral-chip) 22%, transparent) !important;
    background: var(--app-neutral-chip-soft) !important;
    color: var(--app-neutral-chip) !important;
}

.my-calendar-item,
.replia-calendar-event {
    box-shadow: none;
}

.my-calendar-item-kicker,
.my-calendar-item-time,
.my-calendar-item-meta {
    color: var(--app-text-muted) !important;
}

.my-calendar-item-title {
    color: var(--app-text-strong) !important;
}

/* Keep administrative custom cards aligned with the active theme surface. */
.settings-card,
.settings-item-card,
.system-health-list-item,
.system-health-table-wrap {
    background: var(--app-surface-raised) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.settings-item-card,
.system-health-list-item {
    box-shadow: none !important;
}

.settings-card .app-title,
.settings-item-card .app-title,
.system-health-page .app-title {
    color: var(--app-text-strong) !important;
}

.settings-card .app-muted,
.settings-item-card .app-muted,
.system-health-page .app-muted {
    color: var(--app-text-muted) !important;
}

.settings-definition-row {
    border-bottom-color: var(--app-border-soft) !important;
}

.settings-definition-row dt {
    color: var(--app-text-muted) !important;
}

.settings-definition-row dd,
.system-health-table tbody td {
    color: var(--app-text) !important;
}

.system-health-table thead th {
    color: var(--app-text-muted) !important;
}

@media (max-width: 860px) {
    .replia-shell__content {
        padding: 18px 16px 24px;
    }

    .replia-dashboard-grid,
    .replia-dashboard-column {
        gap: 18px;
    }

    .replia-dashboard-section {
        padding: 16px;
    }
}

/* --- Dashboard layout: work queue vs context/reference --- */
.replia-page-header--dashboard {
    margin-bottom: 1.75rem;
}

.replia-dashboard-work-queue {
    margin-bottom: 2rem;
}

.replia-dashboard-section--work-queue {
    padding: 1.35rem 1.35rem 1.15rem;
    gap: 1.1rem;
}

.replia-section-header--queue {
    padding-bottom: 1rem;
    margin-bottom: 0.25rem;
}

.replia-section-header__title {
    font-size: 1.05rem;
    font-weight: 650;
    letter-spacing: -0.02em;
    color: var(--app-text-strong);
}

.replia-section-header__lede {
    margin-top: 0.35rem;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--app-text-soft);
}

.replia-section-header__hint {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--app-text-muted);
}

.replia-section-header__hint--amber {
    color: var(--app-warning, #b45309);
    font-weight: 600;
}

.dark .replia-section-header__hint--amber {
    color: var(--app-warning-soft, #fcd34d);
}

.replia-section-header__link {
    align-self: flex-start;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--app-accent) !important;
    text-decoration: none;
    white-space: nowrap;
}

.replia-section-header__link:hover {
    color: var(--app-accent-hover) !important;
}

.replia-queue-body {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.replia-queue-group {
    padding-top: 1.15rem;
    margin-top: 1.15rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
}

.replia-queue-group:first-of-type {
    padding-top: 0;
    margin-top: 0;
    border-top: 0;
}

.replia-queue-group__label {
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin-bottom: 0.5rem;
}

.replia-queue-group__hint {
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--app-text-soft);
    margin: -0.15rem 0 0.55rem;
}

.replia-queue-empty {
    font-size: 0.875rem;
    color: var(--app-text-soft);
    padding: 0.35rem 0 0.5rem;
}

.replia-dashboard-section--work-queue .replia-list-item {
    padding-block: 0.65rem;
    padding-inline: 0.15rem;
}

.replia-dashboard-section--work-queue .replia-list-item__title {
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.replia-dashboard-section--work-queue .replia-list-item__meta {
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: var(--app-text-muted);
    line-height: 1.35;
    white-space: normal;
}

.replia-dashboard-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(252px, 300px);
    gap: 1.75rem;
    align-items: start;
}

.replia-dashboard-split__main,
.replia-dashboard-split__aside {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
}

.replia-dashboard-context {
    padding: 1rem 1rem 1.1rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 90%, transparent);
    background: color-mix(in srgb, var(--app-surface-muted) 35%, var(--app-surface-raised));
    box-shadow: none;
}

.replia-dashboard-context__heading {
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin: 0 0 0.65rem;
}

.replia-info-rail--stacked {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
}

.replia-info-rail--stacked span {
    display: block;
    padding: 0.35rem 0.5rem;
    border-radius: 0.35rem;
    border: 1px solid var(--app-border-subtle);
    font-size: 0.75rem;
    color: var(--app-text-muted);
    background: color-mix(in srgb, var(--app-surface-raised) 88%, transparent);
}

.replia-dashboard-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.replia-dashboard-shortcuts__pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 85%, transparent);
    padding: 0.2rem 0.55rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--app-text-muted);
    background: color-mix(in srgb, var(--app-surface-raised) 92%, transparent);
    text-decoration: none;
    transition: background-color 120ms ease, border-color 120ms ease;
}

.replia-dashboard-shortcuts__pill:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 55%, transparent);
    border-color: var(--app-border-subtle);
    color: var(--app-text-strong);
}

.replia-dashboard-quick-actions {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid color-mix(in srgb, var(--app-border-subtle) 70%, transparent);
}

.replia-dashboard-quick-actions__link {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--app-accent);
    text-decoration: none;
}

.replia-dashboard-quick-actions__link:hover {
    color: var(--app-accent-hover);
    text-decoration: underline;
}

.replia-summary-grid--compact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0;
}

.replia-summary-card--compact {
    padding: 0.55rem 0.65rem !important;
    box-shadow: none !important;
}

.replia-summary-card--compact::before {
    opacity: 0.45;
}

.replia-summary-card--compact .replia-summary-card__label {
    font-size: 0.65rem;
    font-weight: 600;
    line-height: 1.25;
}

.replia-summary-card--compact .replia-summary-card__value {
    margin-top: 0.2rem;
    font-size: 1.15rem;
}

.replia-badge--compact {
    padding: 0.15rem 0.45rem;
    font-size: 0.625rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    border-radius: 0.3rem;
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: 0.1rem;
}

.replia-badge--muted {
    background: color-mix(in srgb, var(--app-surface-muted) 72%, transparent);
    color: var(--app-text-soft);
}

.replia-badge--today {
    background: color-mix(in srgb, var(--app-accent) 14%, var(--app-surface-muted));
    color: color-mix(in srgb, var(--app-accent) 55%, var(--app-text-strong));
}

@media (max-width: 1024px) {
    .replia-dashboard-split {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .replia-summary-grid--compact {
        grid-template-columns: 1fr 1fr;
    }
}

/* --- Matter workflow summary (view matter) --- */
.replia-workflow-summary {
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 96%, var(--app-surface-muted));
    padding: 1.1rem 1.15rem 1rem;
}

.dark .replia-workflow-summary {
    background: color-mix(in srgb, var(--app-surface-raised) 55%, transparent);
    border-color: color-mix(in srgb, var(--app-border-subtle) 70%, transparent);
}

.replia-workflow-summary__hero {
    display: grid;
    gap: 1rem 1.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .replia-workflow-summary__hero {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
        align-items: start;
    }
}

.replia-workflow-summary__kicker {
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin: 0 0 0.35rem;
}

.replia-workflow-summary__stage-name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.3;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-matter-file-hero .replia-workflow-summary__hero {
    align-items: stretch;
}

.replia-matter-file-hero__cluster {
    min-width: 0;
}

.replia-matter-file-hero__cluster--wide {
    grid-column: 1 / -1;
}

@media (min-width: 640px) {
    .replia-matter-file-hero__cluster--wide {
        grid-column: auto;
    }
}

.replia-matter-file-hero__value {
    margin: 0.15rem 0 0;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-matter-file-hero__value--emphasis {
    color: var(--app-text-strong);
}

.replia-workflow-summary__chips {
    margin: 0.15rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.replia-workflow-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    word-break: break-word;
}

.replia-workflow-chip--status {
    background: color-mix(in srgb, var(--app-accent) 12%, var(--app-surface-muted));
    color: var(--app-text-strong);
    border: 1px solid color-mix(in srgb, var(--app-accent) 22%, transparent);
}

.replia-workflow-chip--resolution {
    background: color-mix(in srgb, var(--app-surface-muted) 80%, transparent);
    color: var(--app-text-muted);
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
    font-weight: 550;
}

.replia-workflow-summary__section {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
}

.replia-workflow-summary__section-title {
    margin: 0 0 0.45rem;
    font-size: 0.7rem;
    font-weight: 650;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-workflow-summary__body {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--app-text-soft);
}

.replia-workflow-summary__body--relaxed {
    color: var(--app-text-muted);
}

.replia-workflow-summary__inline-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--app-text-muted);
    margin-bottom: 0.2rem;
}

.replia-workflow-summary__emphasis {
    display: block;
    font-weight: 650;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-workflow-summary__aside {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: var(--app-text-muted);
}

.replia-workflow-summary__headline {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--app-text-strong);
}

.replia-workflow-summary__fine-print {
    margin: 0.5rem 0 0;
    font-size: 0.72rem;
    line-height: 1.4;
    color: var(--app-text-muted);
}

.replia-workflow-summary__callout {
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.45rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
    background: color-mix(in srgb, var(--app-surface-muted) 40%, transparent);
}

.replia-workflow-summary__callout--warning {
    border-color: color-mix(in srgb, var(--app-warning, #d97706) 28%, var(--app-border-subtle));
    background: color-mix(in srgb, var(--app-warning, #f59e0b) 8%, var(--app-surface-muted));
}

.replia-workflow-summary__callout-title {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--app-text-strong);
}

.replia-workflow-summary__callout-body {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--app-text-soft);
}

.replia-workflow-summary__blockers {
    margin: 0.45rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--app-text-soft);
}

.replia-workflow-summary__blocker-title {
    font-weight: 600;
    color: var(--app-text-strong);
}

.replia-workflow-summary__blocker-meta {
    display: block;
    font-size: 0.72rem;
    color: var(--app-text-muted);
    margin-top: 0.1rem;
}

/* Header stage progress widget — matches workflow card tone */
.replia-stage-progress.matter-stage-progress-widget {
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 96%, var(--app-surface-muted));
}

.dark .replia-stage-progress.matter-stage-progress-widget {
    background: color-mix(in srgb, var(--app-surface-raised) 55%, transparent);
}

.replia-stage-progress__label {
    margin: 0 0 0.55rem;
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-stage-progress__empty {
    margin: 0;
    font-size: 0.875rem;
    color: var(--app-text-muted);
}

.replia-stage-progress__track {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.25rem;
}

.replia-stage-progress__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.replia-stage-progress__chip-text {
    min-width: 0;
    word-break: break-word;
}

.replia-stage-progress__chip--current {
    background: color-mix(in srgb, var(--app-accent) 14%, var(--app-surface-muted));
    color: var(--app-text-strong);
    border-color: color-mix(in srgb, var(--app-accent) 30%, transparent);
}

.replia-stage-progress__chip--done {
    background: color-mix(in srgb, #22c55e 12%, var(--app-surface-muted));
    color: color-mix(in srgb, #15803d 70%, var(--app-text-strong));
    border-color: color-mix(in srgb, #22c55e 25%, transparent);
}

.replia-stage-progress__chip--pending {
    background: color-mix(in srgb, var(--app-surface-muted) 85%, transparent);
    color: var(--app-text-muted);
    border-color: color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
}

.replia-stage-progress__mark {
    font-size: 0.65rem;
    line-height: 1;
    opacity: 0.9;
}

.replia-stage-progress__mark--dot {
    font-size: 0.55rem;
}

.replia-stage-progress__arrow {
    font-size: 0.65rem;
    color: var(--app-text-muted);
    opacity: 0.65;
    user-select: none;
}

/* --- Dashboard second pass: KPI row, needs attention, activity, supervisor --- */
.replia-dashboard-split--stack {
    align-items: start;
}

/* Shared stat card design system (canonical KPI styling) */
.replia-stat-card-row,
.replia-dashboard-kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.replia-stat-card,
.replia-dashboard-kpi-card {
    display: flex;
    flex-direction: column;
    min-height: 6.5rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 94%, var(--app-surface-muted));
    text-decoration: none;
    color: inherit;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.dark .replia-stat-card,
.dark .replia-dashboard-kpi-card {
    background: color-mix(in srgb, var(--app-surface-raised) 52%, transparent);
}

a.replia-stat-card,
a.replia-stat-card--linked {
    cursor: pointer;
}

a.replia-stat-card:hover,
a.replia-dashboard-kpi-card:hover {
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--app-border-subtle));
    background: color-mix(in srgb, var(--app-accent) 6%, var(--app-surface-raised));
}

.replia-stat-card__value,
.replia-dashboard-kpi-card__value {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.1;
    color: var(--app-text-strong);
}

.replia-stat-card__label,
.replia-dashboard-kpi-card__label {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--app-text-strong);
}

.replia-stat-card__meta,
.replia-dashboard-kpi-card__scope {
    margin: 0.2rem 0 0;
    font-size: 0.6875rem;
    line-height: 1.35;
    color: var(--app-text-muted);
}

.replia-stat-card__hint,
.replia-dashboard-kpi-card__hint {
    margin: 0.35rem 0 0;
    font-size: 0.625rem;
    line-height: 1.35;
    color: var(--app-text-soft);
}

.replia-matter-list-stats {
    margin-bottom: 0.25rem;
}

.replia-matter-list-stats__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.replia-matter-list-stats__title {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-soft);
}

.replia-matter-list-stats__gear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 94%, var(--app-surface-muted));
    color: var(--app-text-soft);
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease;
}

.replia-matter-list-stats__gear:hover {
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--app-border-subtle));
    background: color-mix(in srgb, var(--app-accent) 6%, var(--app-surface-raised));
    color: var(--app-text);
}

.replia-dashboard-section--needs-attention {
    margin-bottom: 1.5rem;
}

.replia-needs-attention-body .replia-queue-group--compact:first-of-type {
    padding-top: 0;
    margin-top: 0;
    border-top: 0;
}

.replia-needs-attention-body .replia-queue-group--compact {
    padding-top: 0.85rem;
    margin-top: 0.85rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
}

.replia-needs-attention-all-clear {
    margin: 0;
    padding: 0.5rem 0 0.25rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--app-text-soft);
}

.replia-needs-attention-all-clear a {
    color: var(--app-accent);
    font-weight: 600;
    text-decoration: none;
}

.replia-needs-attention-all-clear a:hover {
    color: var(--app-accent-hover);
    text-decoration: underline;
}

.replia-dashboard-section--compact .replia-case-list .replia-list-item {
    padding-block: 0.5rem;
}

.app-empty-state--inline {
    padding: 0.75rem 0;
}

.app-empty-state--inline .app-empty-state__title {
    font-size: 0.9rem;
}

.app-empty-state--inline .app-empty-state__text {
    font-size: 0.8125rem;
}

.replia-recent-activity-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 0.75rem;
}

.replia-chip-filter {
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 85%, transparent);
    padding: 0.25rem 0.65rem;
    font-size: 0.6875rem;
    font-weight: 650;
    color: var(--app-text-muted);
    background: color-mix(in srgb, var(--app-surface-raised) 90%, transparent);
    cursor: pointer;
}

.replia-chip-filter:hover {
    border-color: var(--app-border-subtle);
    color: var(--app-text-strong);
}

.replia-badge--info {
    background: color-mix(in srgb, #3b82f6 16%, var(--app-surface-raised));
    color: #1d4ed8;
    border: 1px solid color-mix(in srgb, #3b82f6 35%, transparent);
}

.dark .replia-badge--info {
    color: #93c5fd;
}

.replia-matter-file-hero__cta {
    margin-bottom: 0.75rem;
}

.replia-chip-filter--active {
    border-color: color-mix(in srgb, var(--app-accent) 35%, transparent);
    color: var(--app-text-strong);
    background: color-mix(in srgb, var(--app-accent) 10%, var(--app-surface-muted));
}

.replia-supervisor-tools {
    margin-top: 0.25rem;
    margin-bottom: 1.5rem;
    border-radius: 0.65rem;
    border: 1px dashed color-mix(in srgb, var(--app-border-subtle) 90%, transparent);
    background: color-mix(in srgb, var(--app-surface-muted) 25%, transparent);
    padding: 0.35rem 0.85rem 0.85rem;
}

.replia-supervisor-tools__summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--app-text-soft);
    padding: 0.5rem 0;
    list-style: none;
}

.replia-supervisor-tools__summary::-webkit-details-marker {
    display: none;
}

.replia-supervisor-tools__body {
    padding-top: 0.35rem;
}

.replia-supervisor-tools__note {
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
}

.replia-supervisor-tools__heading {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--app-text-strong);
}

.replia-dashboard-section--nested {
    padding: 0.85rem 0 0;
    margin-top: 0.75rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
}

.replia-dashboard-section--nested:first-child {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}

.replia-dashboard-context__scope {
    margin: 0 0 0.65rem;
    font-size: 0.72rem;
    line-height: 1.4;
    color: var(--app-text-soft);
}

.replia-list-item--disabled {
    opacity: 0.55;
    pointer-events: none;
    cursor: default;
}

/* Matter workflow summary — compact strip */
.replia-workflow-summary__strip {
    display: grid;
    gap: 0.85rem 1rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .replia-workflow-summary__strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }
}

.replia-workflow-summary__strip-cell {
    min-width: 0;
}

.replia-workflow-summary__strip-kicker {
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin: 0 0 0.35rem;
}

.replia-workflow-summary__strip-value {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-workflow-summary__strip-value--next {
    font-weight: 600;
    color: var(--app-text-soft);
}

.replia-workflow-summary__details {
    margin-top: 0.85rem;
    padding: 0.5rem 0 0;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 70%, transparent);
}

.replia-workflow-summary__details summary {
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--app-text-muted);
    list-style: none;
}

.replia-workflow-summary__details summary::-webkit-details-marker {
    display: none;
}

.replia-workflow-summary__details-body {
    margin-top: 0.55rem;
    padding-top: 0.35rem;
}

.replia-workflow-summary__section--next {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
}

@media (max-width: 1024px) {
    .replia-stat-card-row,
    .replia-dashboard-kpi-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .replia-stat-card-row,
    .replia-dashboard-kpi-row {
        grid-template-columns: 1fr;
    }
}

/*
 * Filament tables: filter/column/grouping dropdowns are overridden in
 * resources/views/vendor/filament-tables/index.blade.php to use teleport + size (viewport-bound
 * panel with overflow-y when needed). This rule is a fallback so non-teleported panels are not
 * clipped by the table card if theme CSS sets overflow on .fi-ta-ctn.
 */
div.fi-ta > div.fi-ta-ctn {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

/* Mobile: keep resource tabs readable; allow horizontal scroll for wide tables */
@media (max-width: 640px) {
    .fi-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 0.25rem;
        padding-bottom: 0.15rem;
    }

    .fi-tabs-item {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .fi-ta-content-ctn,
    div.fi-ta > div.fi-ta-ctn {
        overflow-x: auto !important;
    }

    .fi-ta-table {
        min-width: 720px;
    }
}

.my-calendar-filter-field {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.my-calendar-filter-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--app-text-muted, #64748b);
}

.my-calendar-filter-hint {
    margin: 0;
    max-width: 28rem;
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--app-text-muted, #64748b);
}

/* Settings remediation: scope + sticky save on long config forms */
.settings-scope-banner {
    border-left: 4px solid var(--app-accent, #3727c1);
}

.onboarding-checklist-page .settings-item-card-inner {
    min-height: auto;
}

#meeting-configuration-form .fi-form-footer-actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding-top: 0.75rem;
    margin-top: 0.5rem;
    background: linear-gradient(to top, var(--app-surface, #fff) 70%, transparent);
}

@media (max-width: 640px) {
    .settings-card-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .fi-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Person profile: slightly tighter relation tab stack on narrow viewports */
.app-casefile-page--person .fi-resource-relation-managers .fi-tabs {
    margin-top: 0.25rem;
}

.app-casefile-page--person .fi-infolist > .fi-section {
    margin-bottom: 0.5rem;
}

/* Person profile: mobile section switcher + wrapped relation tabs (F-01) */
.app-person-profile-section-switcher {
    display: none;
    margin-bottom: 0.75rem;
}

.app-person-profile-section-switcher__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.app-person-profile-section-switcher__select {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid var(--app-border-soft, #334155);
    background: var(--app-surface-raised, #1e293b);
    color: inherit;
    font-size: 0.9375rem;
}

@media (max-width: 640px) {
    .app-person-profile-section-switcher {
        display: block;
    }

    .app-casefile-page--person .fi-resource-relation-managers > .fi-tabs {
        display: none;
    }

    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs:not(:first-child) {
        display: none;
    }

    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs-item {
        min-height: 2.75rem;
        padding: 0.5rem 0.75rem;
    }
}

@media (min-width: 641px) {
    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs {
        flex-wrap: wrap;
        overflow-x: visible;
        gap: 0.35rem;
    }

    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs-item {
        flex: 0 1 auto;
        white-space: normal;
        text-align: center;
        min-height: 2.25rem;
    }
}

.app-person-relation-panel.fi-ta,
.app-person-relation-panel {
    border-radius: 0.75rem;
}

.app-person-relation-panel .fi-ta-header-heading {
    font-size: 0.9375rem;
    font-weight: 600;
}

.app-people-search-results-strip {
    background: var(--app-surface-raised, #1e293b);
}

/* -------------------------------------------------------------------------- */
/* Operational calendar workspace (sched-*)                                   */
/* -------------------------------------------------------------------------- */

.sched-workspace {
    --sched-rail-w: clamp(16rem, 18vw, 20rem);
    --sched-surface: color-mix(in srgb, var(--app-surface-raised, #1e293b) 88%, #0b1220);
    --sched-grid: #1a2332;
    --sched-line: color-mix(in srgb, var(--app-border-soft, #334155) 55%, transparent);
    --sched-accent-scheduled: #7c6cf0;
    --sched-accent-prep: #c4a12f;
    --sched-accent-done: #3d9b6a;
    --sched-accent-adjourned: #64748b;
    --sched-accent-meeting: color-mix(in srgb, var(--app-accent) 70%, #60a5fa);
    --sched-accent-task: #38bdf8;
    --sched-accent-deadline: #a78bfa;
    --sched-accent-overdue: var(--app-danger, #dc2626);
    --sched-accent-availability: #34d399;
    --sched-event-surface-mix: 12%;
    --sched-event-border-mix: 28%;
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    min-height: min(78vh, 52rem);
}

/* Same element carries both classes; .my-calendar-page alone sets column + max-width — override here. */
.sched-workspace.my-calendar-page {
    /* DOM order is surface then rail; reverse on desktop so the filter rail stays on the left. */
    flex-direction: row-reverse;
    align-items: stretch;
    max-width: none;
    width: 100%;
    margin: 0;
    gap: 0;
}

.fi-page.um-calendar-workspace-page {
    gap: 0.35rem;
}

.fi-page.um-calendar-workspace-page .fi-page-header-main-ctn {
    gap: 0.35rem;
}

.fi-page.um-calendar-workspace-page .fi-header {
    margin-bottom: 0.15rem !important;
}

.fi-page.um-calendar-workspace-page .fi-page-content {
    padding-block: 0.15rem 0.5rem;
}

.sched-toolbar__lead {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    min-width: 0;
}

.sched-date-jump-label {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.sched-date-jump {
    border-radius: 0.35rem;
    border: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-grid) 65%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    padding: 0.25rem 0.4rem;
    min-height: 2rem;
}

.sched-filter-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15rem;
    padding: 0.08rem 0.28rem;
    margin-left: 0.25rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    background: color-mix(in srgb, var(--app-accent, #6366f1) 85%, #312e81);
    color: #f8fafc;
}

.sched-worktype-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sched-worktype-btn {
    border: 1px solid var(--sched-line);
    border-radius: 999px;
    background: color-mix(in srgb, var(--sched-grid) 55%, transparent);
    color: var(--app-text-muted, #94a3b8);
    font-size: 0.72rem;
    font-weight: 650;
    padding: 0.28rem 0.55rem;
    cursor: pointer;
}

.sched-worktype-btn.is-on {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 22%, transparent);
    color: var(--app-text, #f8fafc);
    border-color: color-mix(in srgb, var(--app-accent) 45%, var(--sched-line));
}

.sched-day-head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    min-width: 0;
}

.sched-day-head__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    min-width: 0;
}

.sched-day-head__badges {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    flex-shrink: 0;
}

.sched-month-avail-dot {
    display: inline-block;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: var(--sched-accent-availability);
    box-shadow: 0 0 0 1px color-mix(in srgb, #000 35%, transparent);
}

.sched-month-item-count {
    font-size: 0.62rem;
    font-weight: 800;
    color: var(--app-text-muted, #94a3b8);
    letter-spacing: 0.02em;
}

.sched-avail-coverage {
    position: absolute;
    left: 3%;
    right: 3%;
    z-index: 2;
    border-radius: 0.3rem;
    pointer-events: none;
    background: color-mix(in srgb, var(--sched-accent-availability) 22%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sched-accent-availability) 55%, transparent);
    padding: 0.06rem 0.22rem 0.1rem;
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    min-height: 0;
}

.dark .sched-avail-coverage {
    background: color-mix(in srgb, var(--sched-accent-availability) 14%, #0f172a);
}

.sched-avail-coverage__label {
    font-size: 0.58rem;
    font-weight: 750;
    line-height: 1.15;
    color: #064e3b;
    text-shadow: 0 0 0.35rem color-mix(in srgb, #ecfdf5 90%, transparent);
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    word-break: break-word;
}

.dark .sched-avail-coverage__label {
    color: #d1fae5;
    text-shadow: 0 1px 2px rgb(0 0 0 / 0.55);
}

.my-calendar-item-agenda-expand {
    margin-top: 0.35rem;
    align-self: flex-start;
    border: 0;
    padding: 0;
    background: transparent;
    color: color-mix(in srgb, var(--app-accent, #6366f1) 85%, #e0e7ff);
    font-size: 0.72rem;
    font-weight: 650;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.replia-expanded-avail__title {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.replia-expanded-avail__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.replia-expanded-avail__table th,
.replia-expanded-avail__table td {
    border-bottom: 1px solid var(--sched-line, #334155);
    padding: 0.35rem 0.45rem;
    text-align: left;
    vertical-align: top;
}

.replia-expanded-avail__table th {
    font-size: 0.65rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--app-text-muted, #94a3b8);
}

.replia-modal-card--calendar-day {
    width: min(48rem, 100%);
}

.sched-rail {
    flex: 0 0 var(--sched-rail-w);
    width: var(--sched-rail-w);
    border-right: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-surface) 96%, #000);
    color: var(--app-text, #e2e8f0);
    border-radius: 0.45rem 0 0 0.45rem;
}

.sched-rail-backdrop {
    display: none;
}

.sched-rail__head {
    display: none;
}

.sched-rail__head-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.sched-rail__scroll {
    position: sticky;
    top: 0;
    max-height: calc(100vh - 6rem);
    overflow: auto;
    padding: 0.75rem 0.85rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sched-rail__section {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sched-rail__label {
    margin: 0;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.sched-check-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sched-check {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: var(--app-text, #e2e8f0);
    cursor: pointer;
}

.sched-check input {
    accent-color: var(--app-accent, #6366f1);
}

.sched-segmented {
    display: flex;
    border-radius: 0.45rem;
    border: 1px solid var(--sched-line);
    overflow: hidden;
}

.sched-segmented button {
    flex: 1;
    border: 0;
    background: transparent;
    color: var(--app-text-muted, #94a3b8);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.35rem 0.4rem;
    cursor: pointer;
}

.sched-segmented button.is-active {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 22%, transparent);
    color: var(--app-text, #f8fafc);
}

.sched-select {
    width: 100%;
    border-radius: 0.4rem;
    border: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-grid) 70%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    padding: 0.35rem 0.45rem;
}

.sched-mini-cal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
}

.sched-mini-cal__head-text {
    flex: 1;
    min-width: 0;
    text-align: center;
}

.sched-mini-cal__title {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--app-text-strong, #f1f5f9);
}

.sched-mini-cal__selected {
    margin: 0.12rem 0 0;
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--app-text-muted, #94a3b8);
}

.sched-icon-btn {
    border: 0;
    background: transparent;
    color: var(--app-text-muted, #94a3b8);
    font-size: 1.1rem;
    line-height: 1;
    padding: 0.15rem 0.35rem;
    cursor: pointer;
    border-radius: 0.35rem;
}

.sched-icon-btn:hover {
    background: color-mix(in srgb, #fff 6%, transparent);
    color: var(--app-text, #f8fafc);
}

.sched-mini-cal__dow {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.1rem;
    margin: 0.35rem 0 0.2rem;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--app-text-muted, #64748b);
    text-align: center;
}

.sched-mini-cal__week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.15rem;
}

.sched-mini-cal__day {
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--app-text, #e2e8f0);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0;
    cursor: pointer;
}

.sched-mini-cal__day.is-outside {
    opacity: 0.35;
}

.sched-mini-cal__day.is-today {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 55%, transparent);
    color: #fff;
}

.sched-mini-cal__day.is-selected:not(.is-today) {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 22%, transparent);
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--app-accent, #6366f1) 85%, transparent);
    color: var(--app-text-strong, #f1f5f9);
}

.sched-mini-cal__day.is-selected.is-today {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, #fff 70%, transparent);
}

.sched-mini-cal__day:focus-visible {
    outline: 2px solid var(--app-accent, #6366f1);
    outline-offset: 2px;
}

.sched-legend__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: var(--app-text-muted, #94a3b8);
}

.sched-dot {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    margin-right: 0.35rem;
    vertical-align: middle;
}

.sched-dot--scheduled {
    background: var(--sched-accent-scheduled);
}

.sched-dot--prep {
    background: var(--sched-accent-prep);
}

.sched-dot--done {
    background: var(--sched-accent-done);
}

.sched-dot--adjourned {
    background: var(--sched-accent-adjourned);
}

.sched-dot--meeting {
    background: var(--sched-accent-meeting);
}

.sched-dot--task {
    background: var(--sched-accent-task);
}

.sched-dot--deadline {
    background: var(--sched-accent-deadline);
}

.sched-dot--overdue {
    background: var(--sched-accent-overdue);
}

.sched-dot--availability {
    background: var(--sched-accent-availability);
}

.sched-surface {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--sched-grid);
    border-radius: 0.45rem;
    border: 1px solid var(--sched-line);
    box-shadow: none;
    overflow: hidden;
}

.sched-rail-toggle {
    display: none;
    margin: 0.35rem 0.5rem 0;
    align-self: flex-start;
    border: 1px solid var(--sched-line);
    border-radius: 0.4rem;
    background: color-mix(in srgb, var(--app-accent) 12%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    font-weight: 650;
    padding: 0.35rem 0.65rem;
    cursor: pointer;
}

.sched-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-surface) 80%, #0f172a);
}

.sched-toolbar__primary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.sched-toolbar__nav {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.sched-toolbar__range {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--app-text-strong, #f8fafc);
}

.sched-tb-btn {
    border: 1px solid var(--sched-line);
    border-radius: 0.4rem;
    background: color-mix(in srgb, #fff 4%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.3rem 0.55rem;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.sched-tb-btn--ghost {
    background: transparent;
}

.sched-tb-btn--accent {
    background: color-mix(in srgb, var(--app-accent) 35%, #1e1b4b);
    border-color: color-mix(in srgb, var(--app-accent) 55%, var(--sched-line));
    color: #eef2ff;
}

.sched-toolbar__views {
    display: inline-flex;
    border: 1px solid var(--sched-line);
    border-radius: 0.45rem;
    overflow: hidden;
}

.sched-view-btn {
    border: 0;
    background: transparent;
    color: var(--app-text-muted, #94a3b8);
    font-size: 0.75rem;
    font-weight: 650;
    padding: 0.32rem 0.65rem;
    cursor: pointer;
}

.sched-view-btn.is-active {
    background: color-mix(in srgb, var(--app-accent) 28%, transparent);
    color: #eef2ff;
}

.sched-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.sched-time-grid {
    flex: 1 1 auto;
    min-height: 24rem;
    display: flex;
    flex-direction: column;
    border: 0;
    border-radius: 0;
    margin: 0;
    overflow: hidden;
    background: color-mix(in srgb, var(--sched-grid) 92%, #000);
}

.sched-time-grid__head {
    display: grid;
    grid-template-columns: 3.25rem repeat(auto-fit, minmax(0, 1fr));
    border-bottom: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-surface) 75%, transparent);
}

.sched-time-grid__corner {
    border-right: 1px solid var(--sched-line);
}

.sched-time-grid__col-head {
    padding: 0.45rem 0.35rem;
    text-align: center;
    border-left: 1px solid var(--sched-line);
    color: var(--app-text-muted, #94a3b8);
}

.sched-time-grid__col-head.is-today {
    color: #c7d2fe;
    background: color-mix(in srgb, var(--app-accent) 12%, transparent);
}

.sched-time-grid__dow {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.sched-time-grid__dom {
    display: block;
    font-size: 1rem;
    font-weight: 750;
    color: var(--app-text-strong, #f8fafc);
}

.sched-time-grid__body {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: 3.25rem 1fr;
    min-height: 32rem;
    max-height: min(68vh, 44rem);
    overflow: auto;
}

.sched-time-grid__gutter {
    position: relative;
    border-right: 1px solid var(--sched-line);
    background: color-mix(in srgb, #000 25%, transparent);
}

.sched-time-grid__hour {
    position: absolute;
    left: 0.35rem;
    right: 0.35rem;
    transform: translateY(-50%);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--app-text-muted, #64748b);
    white-space: nowrap;
}

.sched-time-grid__columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    position: relative;
}

.sched-time-grid__col {
    border-left: 1px solid var(--sched-line);
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sched-time-grid__col.is-today {
    background: color-mix(in srgb, var(--app-accent) 5%, transparent);
}

.sched-allday-strip {
    border-bottom: 1px solid var(--sched-line);
    padding: 0.35rem 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    background: color-mix(in srgb, #000 18%, transparent);
}

.sched-allday-strip .my-calendar-item {
    width: 100%;
    max-width: 100%;
    min-height: 2.5rem;
}

.sched-allday-strip .my-calendar-item--compact {
    min-height: 2.65rem;
}

.sched-time-grid__canvas {
    position: relative;
    flex: 1 1 auto;
    min-height: 36rem;
    overflow-x: auto;
    overflow-y: auto;
}

/* Refined week/day: canvas is a positioning context; do not clip timed cards vertically */
.sched-time-grid--week-refine .sched-time-grid__canvas.sched-week-canvas,
.sched-time-grid--day-refine .sched-time-grid__canvas.sched-week-canvas {
    overflow-x: hidden;
    overflow-y: visible;
    isolation: isolate;
}

.sched-time-grid__canvas--wide-lanes {
    min-width: 100%;
}

.sched-time-grid__gridline {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--sched-line);
    pointer-events: none;
}

.sched-now-line {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: color-mix(in srgb, #38bdf8 80%, var(--app-accent));
    z-index: 4;
    pointer-events: none;
}

.sched-now-line__label {
    position: absolute;
    left: 0.15rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.62rem;
    font-weight: 700;
    color: #e0f2fe;
    background: #0c4a6e;
    padding: 0.08rem 0.28rem;
    border-radius: 0.25rem;
}

.sched-block-wrap {
    position: absolute;
    z-index: 2;
    padding: 0.08rem;
    box-sizing: border-box;
    min-width: 4.75rem;
}

.sched-block-wrap .my-calendar-item--compact {
    height: 100%;
    min-height: 2.25rem;
}

.sched-month-grid.my-calendar-grid--month {
    padding: 0 0.5rem 0.5rem;
    gap: 0.35rem;
}

.sched-month-cell {
    border: 1px solid var(--sched-line);
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--sched-surface) 70%, #0f172a);
    padding: 0.45rem 0.5rem;
    min-height: 9.5rem;
}

.sched-month-cell.is-muted {
    opacity: 0.45;
}

.sched-month-cell.is-today {
    outline: 1px solid color-mix(in srgb, var(--app-accent) 55%, transparent);
}

.sched-day-head span:last-child {
    font-size: 0.68rem;
    color: var(--app-text-muted, #94a3b8);
}

.sched-muted-pad {
    margin: 0.5rem 0.75rem 1rem;
    font-size: 0.82rem;
    color: var(--app-text-muted, #94a3b8);
}

.my-calendar-item {
    position: relative;
    display: flex;
    gap: 0;
    overflow: hidden;
}

.my-calendar-item__accent-bar {
    width: 3px;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--app-accent) 45%, #334155);
}

.my-calendar-item__body {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.35rem 0.45rem 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

.my-calendar-item--compact .my-calendar-item-kicker,
.my-calendar-item--compact .my-calendar-item-time {
    font-size: 0.62rem;
}

.my-calendar-item--compact .my-calendar-item-title {
    font-size: 0.74rem;
    font-weight: 650;
    line-height: 1.25;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.my-calendar-item--compact .my-calendar-item-meta--secondary {
    font-size: 0.65rem;
    color: var(--app-text-muted, #94a3b8);
    line-height: 1.25;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.my-calendar-item--compact .my-calendar-item-time--inline {
    font-size: 0.62rem;
    color: var(--app-text-muted, #94a3b8);
    margin-top: 0.05rem;
    line-height: 1.2;
}

.my-calendar-item-time__stack {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    line-height: 1.15;
}

.my-calendar-item-time__stack .my-calendar-item-time__line {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.my-calendar-item--compact .my-calendar-item-loc {
    color: var(--app-text-muted, #a1b4cf);
}

.my-calendar-item-kind-pill {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
    background: color-mix(in srgb, #fff 5%, transparent);
    padding: 0.08rem 0.28rem;
    border-radius: 0.25rem;
}

.dark .my-calendar-item-kind-pill {
    background: color-mix(in srgb, #fff 6%, transparent);
}

.my-calendar-item__foot--compact {
    margin-top: 0.2rem;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.my-calendar-item--compact .my-calendar-item__body {
    padding: 0.28rem 0.38rem 0.32rem;
}

.my-calendar-item__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-top: 0.1rem;
}

.my-calendar-item-count {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--app-text-muted, #94a3b8);
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.my-calendar-item-state {
    font-size: 0.65rem;
    font-weight: 650;
    color: var(--app-text-muted, #94a3b8);
}

.sched-accent--scheduled {
    --sched-event-color: var(--sched-accent-scheduled);
}

.sched-accent--prep {
    --sched-event-color: var(--sched-accent-prep);
}

.sched-accent--done {
    --sched-event-color: var(--sched-accent-done);
}

.sched-accent--adjourned {
    --sched-event-color: var(--sched-accent-adjourned);
}

.sched-accent--meeting {
    --sched-event-color: var(--sched-accent-meeting);
}

.sched-accent--task {
    --sched-event-color: var(--sched-accent-task);
}

.sched-accent--deadline {
    --sched-event-color: var(--sched-accent-deadline);
}

.sched-accent--overdue {
    --sched-event-color: var(--sched-accent-overdue);
}

.sched-accent--availability {
    --sched-event-color: var(--sched-accent-availability);
}

.sched-accent--scheduled .my-calendar-item__accent-bar,
.sched-accent--prep .my-calendar-item__accent-bar,
.sched-accent--done .my-calendar-item__accent-bar,
.sched-accent--adjourned .my-calendar-item__accent-bar,
.sched-accent--meeting .my-calendar-item__accent-bar,
.sched-accent--task .my-calendar-item__accent-bar,
.sched-accent--deadline .my-calendar-item__accent-bar,
.sched-accent--overdue .my-calendar-item__accent-bar,
.sched-accent--availability .my-calendar-item__accent-bar {
    background: var(--sched-event-color);
}

/* Canonical soft event surface — all calendar densities */
.sched-workspace .my-calendar-item[class*='sched-accent--'] {
    background: color-mix(
        in srgb,
        var(--sched-event-color) var(--sched-event-surface-mix),
        var(--app-surface)
    );
    border: 1px solid color-mix(
        in srgb,
        var(--sched-event-color) var(--sched-event-border-mix),
        var(--app-border-soft)
    );
    border-radius: 0.55rem;
    color: var(--app-text);
    box-shadow: none;
}

.sched-workspace .my-calendar-item--month-chip[class*='sched-accent--'] {
    border-radius: 0.25rem;
}

.sched-workspace .my-calendar-item--compact[class*='sched-accent--'] {
    border-radius: 0.35rem;
}

.sched-workspace .my-calendar-item--sched-slot[class*='sched-accent--'] {
    border-radius: 0.28rem;
}

.sched-workspace a.my-calendar-item[class*='sched-accent--'] {
    color: var(--app-text);
}

.my-calendar-item--compact {
    box-shadow: none;
}

@media (max-width: 768px) {
    .sched-view-btn--desktop-only {
        display: none !important;
    }

    .sched-toolbar {
        gap: 0.35rem;
    }

    .sched-toolbar__primary {
        flex-wrap: wrap;
    }
}

@media (max-width: 900px) {
    .sched-workspace {
        flex-direction: column;
    }

    .sched-workspace.my-calendar-page {
        flex-direction: column;
    }

    .sched-toolbar {
        position: sticky;
        top: 0;
        z-index: 30;
    }

    .sched-surface {
        position: relative;
        z-index: 1;
        min-height: min(52vh, 28rem);
    }

    .sched-rail-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 35;
        background: rgba(15, 23, 42, 0.45);
    }

    .sched-rail__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        padding: 0.65rem 0.85rem 0;
        flex-shrink: 0;
    }

    .sched-rail {
        position: fixed;
        z-index: 40;
        left: 0;
        top: 0;
        bottom: 0;
        max-width: min(18rem, 88vw);
        transform: translateX(-102%);
        transition: transform 0.18s ease;
        box-shadow: 0 0 0 1px var(--sched-line);
        border-radius: 0;
        display: flex;
        flex-direction: column;
        pointer-events: none;
    }

    .sched-rail.is-open {
        transform: translateX(0);
        pointer-events: auto;
    }

    .sched-rail.is-open .sched-rail__scroll {
        max-height: none;
        flex: 1 1 auto;
        min-height: 0;
    }

    .sched-rail-toggle {
        display: inline-flex;
    }

    .sched-surface {
        border-radius: 0.45rem;
    }
}

@media (min-width: 901px) {
    .sched-rail-toggle {
        display: none;
    }
}

html.sched-rail-open {
    overflow: hidden;
}

@media (min-width: 901px) {
    html.sched-rail-open {
        overflow: auto;
    }
}

.fi-body:has(.sched-workspace) .fi-main-ctn {
    max-width: 100%;
}

/* Calendar view modes: density, 24h day, week overflow, availability summary */
.fi-page.um-calendar-workspace-page .sched-surface {
    min-height: 0;
    flex: 1 1 auto;
}

.sched-time-grid--day {
    flex: 1 1 auto;
    min-height: 0;
}

.sched-time-grid--day .sched-time-grid__body {
    max-height: none;
    min-height: min(72rem, calc(100vh - 11rem));
}

.sched-time-grid--day .sched-time-grid__canvas--day {
    min-height: calc(24 * 3rem);
}

.sched-time-grid__columns--day {
    grid-template-columns: 1fr;
}

.sched-allday-strip--week {
    max-height: 5rem;
    overflow-y: auto;
    flex-shrink: 0;
}

.sched-allday-strip--day {
    max-height: 8.5rem;
    overflow-y: auto;
    flex-shrink: 0;
}

.sched-timed-overflow {
    position: absolute;
    left: 0.2rem;
    right: 0.2rem;
    bottom: 0.3rem;
    z-index: 6;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.sched-timed-overflow .sched-overflow-btn {
    pointer-events: auto;
}

.sched-overflow-btn {
    border: 1px solid var(--sched-line);
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--app-accent) 25%, #0f172a);
    color: #eef2ff;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
    cursor: pointer;
}

.sched-avail-summary {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    width: 100%;
    text-align: left;
    border: 1px solid color-mix(in srgb, var(--sched-accent-availability) 45%, var(--sched-line));
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--sched-accent-availability) 12%, var(--app-surface));
    padding: 0.35rem 0.45rem;
    cursor: pointer;
    color: var(--app-text);
}

.sched-avail-summary__kicker {
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--sched-accent-availability) 70%, var(--app-text-muted));
}

.sched-avail-summary__headline {
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.25;
    color: var(--app-text-strong);
}

.sched-avail-summary__sub {
    font-size: 0.68rem;
    color: var(--app-text-muted);
    line-height: 1.2;
}

.sched-avail-summary__hint {
    font-size: 0.62rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--sched-accent-availability) 65%, var(--app-text-muted));
    margin-top: 0.1rem;
}

.sched-avail-summary--month {
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    padding: 0.22rem 0.35rem;
    margin-bottom: 0.15rem;
}

.sched-avail-summary__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--sched-accent-availability);
    flex-shrink: 0;
}

.sched-avail-summary__text {
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.2;
    color: var(--app-text-strong);
}

.sched-month-avail-hint {
    display: block;
    width: 100%;
    margin: 0 0 0.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    font-size: 0.62rem;
    font-weight: 650;
    color: var(--app-text-muted, #94a3b8);
    cursor: pointer;
}

.sched-month-avail-hint:hover {
    color: color-mix(in srgb, var(--sched-accent-availability) 75%, var(--app-text-muted));
    text-decoration: underline;
}

.sched-month-avail-hint:focus-visible {
    outline: 2px solid var(--sched-accent-availability);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.sched-month-avail-hint--head {
    width: 100%;
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 0.62rem;
    font-weight: 650;
    line-height: 1.25;
    color: #a7f3d0;
}

.sched-month-avail-hint--head:hover {
    color: #6ee7b7;
}

.my-calendar-day-items--month {
    gap: 0.2rem;
    display: flex;
    flex-direction: column;
}

.my-calendar-item--month-chip {
    border-radius: 0.25rem;
    min-height: 1.65rem;
    padding: 0.1rem 0;
}

.my-calendar-item--month-chip .my-calendar-item__accent-bar {
    width: 2px;
}

.my-calendar-item--month-chip .my-calendar-item__body {
    padding: 0.18rem 0.28rem 0.2rem;
}

.my-calendar-item-month-line {
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    min-width: 0;
}

.my-calendar-item-month-kind {
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--app-text-muted, #94a3b8);
    flex-shrink: 0;
}

.my-calendar-item-month-title {
    font-size: 0.68rem;
    font-weight: 650;
    color: var(--app-text-strong, #f8fafc);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-calendar-item-month-time {
    margin: 0.05rem 0 0;
    font-size: 0.6rem;
    color: var(--app-text-muted, #94a3b8);
}

.my-calendar-item-title--agenda {
    font-size: 0.92rem;
    font-weight: 700;
}

.my-calendar-item-title--day {
    font-size: 0.9rem;
    font-weight: 700;
}

.my-calendar-item-time--day {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--app-text-muted, #94a3b8);
}

.my-calendar-item-meeting-assignees {
    margin: 0.12rem 0 0.05rem;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1.3;
    color: var(--app-text-strong, #f8fafc);
}

.my-calendar-item-meeting-assignees__rep {
    color: var(--app-text-muted, #94a3b8);
    font-weight: 550;
}

.my-calendar-item__foot--day {
    flex-wrap: wrap;
    gap: 0.35rem;
}

.my-calendar-item-title--day-slot {
    margin-top: 0;
    font-size: 0.72rem;
    line-height: 1.15;
    font-weight: 700;
}

.my-calendar-item-day-slot-meta {
    margin: 0.08rem 0 0;
    font-size: 0.64rem;
    line-height: 1.2;
    font-weight: 550;
    color: var(--app-text-muted, #64748b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-calendar-item-day-slot-meta--muted {
    font-weight: 450;
    opacity: 0.9;
}

.my-calendar-item-meta--inline {
    font-size: 0.72rem;
}

.my-calendar-item-agenda-lines {
    margin: 0.15rem 0 0;
    padding-left: 1rem;
    font-size: 0.72rem;
    color: var(--app-text-muted, #94a3b8);
    line-height: 1.35;
}

.sched-agenda--dense .my-calendar-agenda-day {
    margin-bottom: 1rem;
}

/* Day list/agenda cards — not timed canvas slots (% height + min-height fights the grid). */
.sched-density--day:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) {
    min-height: 3rem;
}

/* %height timed slots: agenda-style min-height breaks the slot box and paints for hours down the grid. */
.sched-block-wrap--day-full .my-calendar-item.sched-density--day:not(.my-calendar-item--compact),
.sched-block-wrap--week-full .my-calendar-item.sched-density--day:not(.my-calendar-item--compact) {
    max-height: 100%;
    height: 100%;
}

.my-calendar-item--availability_summary .my-calendar-item__accent-bar {
    background: var(--sched-accent-availability);
}

/* -------------------------------------------------------------------------- */
/* Week + Day refine: header band + full-width pills, body scroll (day = 24h) */
/* -------------------------------------------------------------------------- */

.sched-time-grid--week-refine,
.sched-time-grid--day-refine {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.4rem;
    overflow: hidden;
}

.dark .sched-time-grid--week-refine,
.dark .sched-time-grid--day-refine {
    background: color-mix(in srgb, var(--sched-grid) 88%, #0f172a);
    border-color: var(--sched-line);
}

.sched-week-shell {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.sched-week-header-row {
    display: grid;
    flex-shrink: 0;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
}

.dark .sched-week-header-row {
    background: color-mix(in srgb, var(--sched-surface) 92%, #0f172a);
    border-bottom-color: var(--sched-line);
}

.sched-week-corner-top {
    border-right: 1px solid #e2e8f0;
    min-height: 5.25rem;
}

.sched-time-grid--day-refine .sched-day-corner-top {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 0.35rem;
}

.sched-day-corner-tz {
    font-size: 0.62rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

.dark .sched-day-corner-tz {
    color: var(--app-text-muted, #94a3b8);
}

.dark .sched-week-corner-top {
    border-right-color: var(--sched-line);
}

.sched-week-day-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.45rem 0.28rem 0.4rem;
    border-left: 1px solid #edf2f7;
    text-align: center;
    min-width: 0;
}

.dark .sched-week-day-head {
    border-left-color: var(--sched-line);
}

.sched-week-day-head.is-today .sched-week-dom {
    color: #4f46e5;
}

.dark .sched-week-day-head.is-today .sched-week-dom {
    color: #c7d2fe;
}

.sched-week-dow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.sched-week-dom {
    font-size: 1.1rem;
    font-weight: 750;
    color: #0f172a;
    line-height: 1.1;
}

.dark .sched-week-dom {
    color: #f8fafc;
}

.sched-week-allstrip {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    margin-top: 0.2rem;
    max-height: 4.75rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: 0.1rem;
}

.sched-week-body-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.sched-week-body-grid {
    display: grid;
    min-height: 40rem;
}

/* Must match week visible hours: MyCalendar SCHEDULE_END_HOUR − SCHEDULE_START_HOUR (15). */
.sched-time-grid--week-refine .sched-week-body-grid:not(.sched-week-body-grid--day-24h) {
    min-height: calc(15 * 6rem);
}

/* Full 24h day needs more vertical canvas than the default week band. */
.sched-week-body-grid--day-24h {
    min-height: min(120rem, calc(100vh - 9rem));
}

/* Must match week visible hours count (15) — see MyCalendar SCHEDULE_* constants. */
.sched-time-grid--week-refine .sched-week-canvas {
    min-height: calc(15 * 6rem);
}

.sched-time-grid--day-refine .sched-week-canvas {
    min-height: calc(24 * 3.75rem);
}

.sched-week-gutter {
    position: relative;
    border-right: 1px solid #e2e8f0;
    background: #fafafa;
}

.dark .sched-week-gutter {
    border-right-color: var(--sched-line);
    background: color-mix(in srgb, #000 12%, transparent);
}

.sched-week-day-col {
    border-left: 1px solid #eef2f7;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.dark .sched-week-day-col {
    border-left-color: color-mix(in srgb, var(--sched-line) 70%, transparent);
}

.sched-week-day-col.is-today {
    background: color-mix(in srgb, #6366f1 7%, #fff);
}

.dark .sched-week-day-col.is-today {
    background: color-mix(in srgb, var(--app-accent) 10%, transparent);
}

.sched-week-canvas {
    position: relative;
    flex: 1 1 auto;
    min-height: 42rem;
    /* Horizontal clip only; vertical hidden was painting gridlines over event edges and clipping tails */
    overflow-x: hidden;
    overflow-y: visible;
    isolation: isolate;
}

/* Hour rules stay under timed blocks; now line above blocks but below overflow UI */
.sched-time-grid--week-refine .sched-week-canvas .sched-time-grid__gridline,
.sched-time-grid--day-refine .sched-week-canvas .sched-time-grid__gridline {
    z-index: 1;
}

.sched-time-grid--week-refine .sched-week-canvas > .sched-now-line,
.sched-time-grid--day-refine .sched-week-canvas > .sched-now-line {
    z-index: 40;
}

.sched-time-grid--week-refine .sched-week-canvas > .sched-timed-overflow,
.sched-time-grid--day-refine .sched-week-canvas > .sched-timed-overflow {
    z-index: 50;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full {
    overflow: hidden;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot),
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item__body {
    overflow: hidden;
    max-height: 100%;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item__body {
    min-height: 0;
    padding: 0.18rem 0.3rem 0.2rem;
    gap: 0.04rem;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-title--day,
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-time--day,
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-meeting-assignees {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-title--day-slot,
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-day-slot-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sched-block-wrap--week-full,
.sched-block-wrap--day-full {
    overflow: visible;
    box-sizing: border-box;
    padding: 0.12rem 0.25rem;
}

/* Timed events: minimal gutter so % height matches real duration; inline-size CQ only (see comment on container-type). */
.sched-block-wrap--week-full.sched-block-wrap--timed,
.sched-block-wrap--day-full.sched-block-wrap--timed {
    /* Inline-size only: block-axis (min-height) queries mis-fire vs % slot heights in Chrome. */
    container-type: inline-size;
    container-name: sched-timed-slot;
    padding: 0.03rem 0.05rem;
    overflow: hidden;
}

.sched-block-wrap--week-full .my-calendar-item:not(.my-calendar-item--sched-slot),
.sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--sched-slot) {
    overflow: hidden;
    border-radius: 0.45rem;
    max-height: 100%;
}

.sched-block-wrap--week-full .my-calendar-item--sched-slot,
.sched-block-wrap--day-full .my-calendar-item--sched-slot {
    /* Kill agenda-card padding from `.replia-calendar-event` — it eats %-height slots and clips all text. */
    padding: 0;
    margin: 0;
    height: 100%;
    max-height: 100%;
    min-height: 0 !important;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 0.28rem;
}

/* Short week/day slots: keep a readable minimum height; min-height:0 collapsed cards to empty outlines. */
.sched-block-wrap--week-full .my-calendar-item--compact,
.sched-block-wrap--day-full .my-calendar-item--compact {
    min-height: max(1.35rem, min(2.25rem, 100%));
}

.sched-block-wrap--week-full .my-calendar-item__body,
.sched-block-wrap--day-full .my-calendar-item__body {
    overflow: hidden;
}

.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-title,
.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-meta--secondary,
.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-loc,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-title,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-meta--secondary,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-loc {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-title,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-title {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: unset;
}

.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-time--inline,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-time--inline {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: unset;
}

/* -------------------------------------------------------------------------- */
/* Timed grid slots (week + day canvas): dense soft card + accent bar */
/* -------------------------------------------------------------------------- */

.my-calendar-item--sched-slot {
    /* Also strip `.replia-calendar-event` card padding when slot is not under `.sched-block-wrap`. */
    padding: 0;
    margin: 0;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    box-shadow: none;
}

.my-calendar-item--sched-slot .my-calendar-item__accent-bar {
    display: block;
    width: 2px;
}

.my-calendar-item--sched-slot .my-calendar-item__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0.05rem;
    padding: 0.18rem 0.24rem 0.2rem;
    overflow: hidden;
}

.sched-block-wrap--week-full .my-calendar-item--sched-slot .my-calendar-item__body,
.sched-block-wrap--day-full .my-calendar-item--sched-slot .my-calendar-item__body {
    min-height: 0;
    overflow: hidden;
}

.sched-time-grid--week-refine .sched-week-day-col a.my-calendar-item--sched-slot,
.sched-time-grid--day-refine .sched-week-day-col a.my-calendar-item--sched-slot {
    color: var(--app-text);
    text-decoration: none;
}

.sched-time-grid--week-refine .sched-week-day-col a.my-calendar-item--sched-slot:focus-visible,
.sched-time-grid--day-refine .sched-week-day-col a.my-calendar-item--sched-slot:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--sched-event-color) 65%, var(--app-accent));
    outline-offset: 2px;
}

/* Default: one horizontal row; cross-axis start (not center) so short % slots do not clip in Chrome. */
.my-calendar-item--sched-slot .sched-slot-stack {
    min-width: 0;
    flex: 0 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    overflow: hidden;
}

.my-calendar-item--sched-slot .sched-slot-title-line {
    flex: 1 1 0;
    min-width: 38%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: var(--app-text-strong) !important;
    font-weight: 650;
    font-size: max(0.58rem, 9.5px);
    line-height: 1.12;
    letter-spacing: 0.01em;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.my-calendar-item--sched-slot .sched-slot-time-line {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 62%;
    margin: 0;
    padding: 0;
    color: var(--app-text-muted) !important;
    font-size: max(0.52rem, 8.5px);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.my-calendar-item--sched-slot .sched-slot-time-line::before {
    content: ' · ';
    font-weight: 500;
    opacity: 0.88;
}

/* Week grid only: day columns are always wide — these rules must not apply there or line-clamp !important
   fights day-refine `display: block` and Chrome clips glyphs. */
@container sched-timed-slot (min-width: 6.75rem) and (max-width: 10.5rem) {
    .sched-time-grid--week-refine .my-calendar-item--sched-slot .my-calendar-item__body {
        padding: 0.12rem 0.2rem 0.14rem;
        gap: 0.04rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-stack {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.06rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-title-line {
        flex: 0 1 auto;
        margin: 0;
        padding: 0.06rem 0 0;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-box-align: start;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        white-space: normal;
        overflow: hidden;
        text-overflow: unset;
        font-size: 0.62rem;
        line-height: 1.32;
        font-weight: 650;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line {
        flex: 0 0 auto;
        display: block;
        font-size: max(0.52rem, 8.5px);
        white-space: nowrap;
        max-width: none;
        overflow: visible;
        text-overflow: clip;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line::before {
        content: none !important;
    }
}

@container sched-timed-slot (min-width: 10.5rem) {
    .sched-time-grid--week-refine .my-calendar-item--sched-slot .my-calendar-item__body {
        padding: 0.24rem 0.3rem 0.26rem;
        gap: 0.08rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-stack {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.08rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-title-line {
        flex: 0 1 auto;
        margin: 0;
        padding: 0.08rem 0 0;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-box-align: start;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        white-space: normal;
        overflow: hidden;
        font-size: 0.76rem;
        line-height: 1.32;
        font-weight: 650;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line {
        flex: 0 0 auto;
        display: block;
        font-size: 0.64rem;
        line-height: 1.15;
        white-space: nowrap;
        max-width: none;
        overflow: visible;
        text-overflow: clip;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line::before {
        content: none !important;
    }
}

/* Day refined grid: % height for 30m is ~30px — single-line title + time (no line-clamp / -webkit-box). */
.sched-time-grid--day-refine .my-calendar-item--sched-slot .my-calendar-item__body {
    padding: 0.12rem 0.2rem 0.1rem;
    gap: 0.04rem;
    min-height: 0;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-stack {
    flex: 0 0 auto;
    flex-shrink: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.03rem;
    overflow: visible;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-title-line {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 0;
    font-size: max(0.58rem, 9.5px);
    line-height: 1.22;
    font-weight: 650;
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    word-break: normal;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-time-line {
    flex: 0 0 auto;
    max-width: 100%;
    margin: 0;
    font-size: max(0.52rem, 8.5px);
    line-height: 1.18;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-time-line::before {
    content: none !important;
}

.sched-avail-summary--week-pill {
    width: 100%;
    text-align: left;
    border: 1px solid color-mix(in srgb, var(--sched-accent-availability) 45%, var(--sched-line));
    border-radius: 0.45rem;
    padding: 0.35rem 0.45rem;
    background: color-mix(in srgb, var(--sched-accent-availability) 12%, var(--app-surface));
    color: var(--app-text);
    cursor: pointer;
    line-height: 1.25;
}

.sched-avail-summary__week-text {
    font-size: 0.65rem;
    font-weight: 650;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    line-height: 1.28;
    word-break: break-word;
}

.sched-time-grid--week-refine .sched-week-allstrip a.my-calendar-item--compact,
.sched-time-grid--day-refine .sched-week-allstrip a.my-calendar-item--compact {
    text-decoration: none;
}

.sched-time-grid--week-refine .sched-time-grid__gridline,
.sched-time-grid--day-refine .sched-time-grid__gridline {
    background: color-mix(in srgb, #94a3b8 22%, transparent);
}

.dark .sched-time-grid--week-refine .sched-time-grid__gridline,
.dark .sched-time-grid--day-refine .sched-time-grid__gridline {
    background: var(--sched-line);
}

/* Hearing preparation checklist (view widget) */
.hearing-prep-checklist {
    border: 1px solid color-mix(in srgb, var(--app-border, #e2e8f0) 80%, transparent);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    background: var(--app-surface, #fff);
}

.hearing-prep-checklist__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.hearing-prep-checklist__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    color: var(--app-text, #0f172a);
}

.hearing-prep-checklist__meta {
    margin: 0.2rem 0 0;
    font-size: 0.8125rem;
    color: var(--app-text-muted, #64748b);
}

.hearing-prep-checklist__badge {
    flex-shrink: 0;
    font-size: 0.75rem;
    font-weight: 650;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: color-mix(in srgb, #c4a12f 18%, transparent);
    color: #8a6d1f;
}

.hearing-prep-checklist__badge--complete {
    background: color-mix(in srgb, var(--app-success, #15803d) 18%, transparent);
    color: var(--app-success, #15803d);
}

.hearing-prep-checklist__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.hearing-prep-checklist__item {
    border-radius: 0.5rem;
    padding: 0.35rem 0.5rem;
    margin: 0 -0.5rem;
}

.hearing-prep-checklist__item--done {
    background: color-mix(in srgb, var(--app-success, #15803d) 10%, transparent);
}

.hearing-prep-checklist__row {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.hearing-prep-checklist__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 0.1rem;
    width: 1.125rem;
    height: 1.125rem;
    padding: 0;
    border: 2px solid var(--app-border, #cbd5e1);
    border-radius: 0.25rem;
    background: var(--app-surface, #fff);
    color: #fff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.hearing-prep-checklist__check--done {
    border-color: var(--app-success, #15803d);
    background-color: var(--app-success, #15803d);
}

.hearing-prep-checklist__check-icon {
    width: 0.875rem;
    height: 0.875rem;
}

.hearing-prep-checklist__check:disabled,
.hearing-prep-checklist__text-button:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.hearing-prep-checklist__text-button {
    flex: 1;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: inherit;
}

.hearing-prep-checklist__item-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 550;
    color: var(--app-text, #0f172a);
}

.hearing-prep-checklist__item-description {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: var(--app-text-muted, #64748b);
}

.hearing-prep-checklist__item--done .hearing-prep-checklist__item-label {
    color: var(--app-success, #15803d);
}

.hearing-prep-checklist__item--done .hearing-prep-checklist__item-description {
    color: color-mix(in srgb, var(--app-success, #15803d) 55%, var(--app-text-muted, #64748b));
}

.hearing-prep-checklist__empty,
.hearing-prep-checklist__readonly {
    margin: 0;
    font-size: 0.875rem;
    color: var(--app-text-muted, #64748b);
}

.hearing-prep-checklist__readonly {
    margin-top: 0.75rem;
}

/* Global Livewire request progress (top of viewport) */
.replia-top-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 80;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    transition: opacity 120ms ease;
}

.replia-top-progress--active {
    opacity: 1;
}

.replia-top-progress__bar {
    height: 100%;
    width: 0;
    background: var(--livewire-progress-bar-color, var(--primary-500, #3727c1));
    box-shadow: 0 0 8px color-mix(in srgb, var(--livewire-progress-bar-color, var(--primary-500, #3727c1)) 45%, transparent);
    transition: width 200ms ease;
}

.replia-top-progress__bar--animating {
    width: 35%;
    animation: replia-top-progress-indeterminate 1.1s ease-in-out infinite;
}

@keyframes replia-top-progress-indeterminate {
    0% {
        transform: translateX(-100%);
        width: 35%;
    }

    50% {
        width: 65%;
    }

    100% {
        transform: translateX(220%);
        width: 35%;
    }
}

/* Message template merge field chip picker */
.replia-merge-tag-target-btn--active {
    background: rgb(var(--primary-500, 55 39 193) / 1);
    color: #fff;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.08);
}

.dark .replia-merge-tag-target-btn--active {
    background: rgb(var(--primary-400, 129 113 224) / 1);
    color: #fff;
}

.replia-merge-tag-helper__header {
    padding: 1rem 1rem 1rem;
    border-bottom: 1px solid rgb(0 0 0 / 0.08);
}

.dark .replia-merge-tag-helper__header {
    border-bottom-color: rgb(255 255 255 / 0.1);
}

.replia-merge-tag-helper__header-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.replia-merge-tag-helper__title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.3;
    color: rgb(17 24 39 / 1);
}

.dark .replia-merge-tag-helper__title {
    color: rgb(243 244 246 / 1);
}

.replia-merge-tag-helper__lede {
    margin: 0.625rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-helper__lede {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-helper__toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.375rem;
}

.replia-merge-tag-helper__toolbar-label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-helper__toolbar-label {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-footer {
    padding: 0.875rem 1rem 1rem;
    border-top: 1px solid rgb(0 0 0 / 0.08);
    background: rgb(249 250 251 / 0.9);
}

.dark .replia-merge-tag-footer {
    border-top-color: rgb(255 255 255 / 0.1);
    background: rgb(17 24 39 / 0.8);
}

.replia-merge-tag-footer__title {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    color: rgb(31 41 55 / 1);
}

.dark .replia-merge-tag-footer__title {
    color: rgb(229 231 235 / 1);
}

.replia-merge-tag-footer__body {
    margin: 0.5rem 0 0;
    font-size: 0.75rem;
    line-height: 1.55;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-footer__body {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-categories {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.replia-merge-tag-category {
    padding-bottom: 0.25rem;
}

.replia-merge-tag-category--divider {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgb(0 0 0 / 0.08);
}

.dark .replia-merge-tag-category--divider {
    border-top-color: rgb(255 255 255 / 0.1);
}

.replia-merge-tag-category__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.625rem;
}

.replia-merge-tag-category__title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.3;
    color: rgb(17 24 39 / 1);
}

.dark .replia-merge-tag-category__title {
    color: rgb(243 244 246 / 1);
}

.replia-merge-tag-category__count {
    flex-shrink: 0;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1.2;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-category__count {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-category__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.replia-merge-tag-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    border-radius: 9999px;
    border: 1px solid rgb(0 0 0 / 0.08);
    background: rgb(249 250 251 / 1);
    padding: 0.3rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25;
    color: rgb(55 65 81 / 1);
    transition:
        background-color 120ms ease,
        border-color 120ms ease,
        color 120ms ease,
        box-shadow 120ms ease;
}

.replia-merge-tag-chip:hover:not(:disabled) {
    border-color: rgb(var(--primary-500, 55 39 193) / 0.45);
    background: rgb(var(--primary-500, 55 39 193) / 0.08);
    color: rgb(var(--primary-600, 45 32 160) / 1);
}

.replia-merge-tag-chip:focus-visible {
    outline: 2px solid rgb(var(--primary-500, 55 39 193) / 0.5);
    outline-offset: 2px;
}

.replia-merge-tag-chip:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.replia-merge-tag-chip--inserted {
    border-color: rgb(var(--primary-500, 55 39 193) / 0.55);
    background: rgb(var(--primary-500, 55 39 193) / 0.14);
    color: rgb(var(--primary-700, 37 26 130) / 1);
    box-shadow: 0 0 0 1px rgb(var(--primary-500, 55 39 193) / 0.2);
}

.dark .replia-merge-tag-chip {
    border-color: rgb(255 255 255 / 0.12);
    background: rgb(255 255 255 / 0.06);
    color: rgb(229 231 235 / 1);
}

.dark .replia-merge-tag-chip:hover:not(:disabled) {
    border-color: rgb(var(--primary-400, 129 113 224) / 0.5);
    background: rgb(var(--primary-400, 129 113 224) / 0.12);
    color: rgb(233 229 255 / 1);
}

.dark .replia-merge-tag-chip--inserted {
    border-color: rgb(var(--primary-400, 129 113 224) / 0.55);
    background: rgb(var(--primary-400, 129 113 224) / 0.18);
    color: rgb(237 233 254 / 1);
}

/* Reports dashboards */
.replia-reports {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.replia-reports-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.replia-reports-toolbar__nav {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.92);
    backdrop-filter: blur(8px);
}

.replia-reports-toolbar__filters-toggle {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    background: transparent;
    color: rgb(71 85 105 / 1);
    cursor: pointer;
    flex-shrink: 0;
}

.replia-reports-toolbar__filters-toggle:hover,
.replia-reports-toolbar__filters-toggle--active {
    border-color: rgb(var(--primary-600, 55 39 193) / 1);
    background: rgb(var(--primary-600, 55 39 193) / 0.1);
    color: rgb(var(--primary-700, 45 31 154) / 1);
}

.replia-reports-toolbar__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.65);
}

.replia-reports-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.replia-reports-tabs__tab {
    border: 1px solid rgb(0 0 0 / 0.1);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    background: transparent;
    color: rgb(71 85 105 / 1);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.replia-reports-tabs__tab:hover {
    background: rgb(0 0 0 / 0.04);
}

.replia-reports-tabs__tab--active {
    border-color: rgb(var(--primary-600, 55 39 193) / 1);
    background: rgb(var(--primary-600, 55 39 193) / 1);
    color: rgb(255 255 255 / 1);
    font-size: 0.9rem;
    font-weight: 700;
    padding: 0.5rem 1rem;
    box-shadow:
        0 1px 3px rgb(var(--primary-600, 55 39 193) / 0.35),
        0 0 0 1px rgb(var(--primary-600, 55 39 193) / 0.2);
}

.replia-reports-tabs__tab--active:hover {
    background: rgb(var(--primary-700, 45 31 154) / 1);
    border-color: rgb(var(--primary-700, 45 31 154) / 1);
}

.replia-reports-toolbar__group {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 10rem;
}

.replia-reports-toolbar__group--units {
    min-width: 14rem;
    flex: 1 1 14rem;
}

.replia-reports-toolbar__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(71 85 105 / 1);
}

.replia-reports-toolbar__select,
.replia-reports-toolbar__input {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.875rem;
    background: #fff;
}

.replia-reports-toolbar__hint {
    font-size: 0.7rem;
    color: rgb(100 116 139 / 1);
    margin: 0;
}

.replia-reports-toolbar__actions {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
    flex-wrap: wrap;
}

.replia-reports-unit-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.replia-reports-unit-chips__chip {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 500;
    background: rgb(248 250 252 / 1);
    color: rgb(51 65 85 / 1);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.replia-reports-unit-chips__chip--active {
    border-color: color-mix(in srgb, var(--app-accent, #3727c1) 88%, rgb(100 116 139));
    background: color-mix(in srgb, var(--app-accent, #3727c1) 22%, rgb(248 250 252));
    color: color-mix(in srgb, var(--app-accent, #3727c1) 92%, rgb(15 23 42));
    font-weight: 600;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--app-accent, #3727c1) 30%, transparent);
}

.replia-reports-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.85);
}

.replia-reports-filter-bar__group {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 10rem;
}

.replia-reports-filter-bar__group--wide {
    min-width: 14rem;
    flex: 1 1 14rem;
}

.replia-reports-filter-bar__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(71 85 105 / 1);
}

.replia-reports-filter-bar__select,
.replia-reports-filter-bar__input {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.875rem;
    background: #fff;
}

.replia-reports-filter-bar__select--multi {
    min-height: 5.5rem;
}

.replia-reports-filter-bar__hint {
    font-size: 0.7rem;
    color: rgb(100 116 139 / 1);
    margin: 0;
}

.replia-reports-filter-bar__actions {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
}

.replia-reports-kpis {
    margin-top: 0.25rem;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.replia-stat-card-row--primary {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.replia-stat-card-row--secondary {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.replia-stat-card--primary {
    min-height: 7.25rem;
    border-color: color-mix(in srgb, var(--app-accent) 18%, var(--app-border-subtle));
}

.replia-stat-card--primary .replia-stat-card__value {
    font-size: 2rem;
}

.replia-stat-card--secondary {
    min-height: 5.25rem;
    padding: 0.65rem 0.85rem;
}

.replia-stat-card--secondary .replia-stat-card__value {
    font-size: 1.35rem;
}

.replia-reports-secondary-kpis {
    margin: 0 0 1rem;
}

.replia-reports-secondary-kpis summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--app-text-muted);
    margin-bottom: 0.5rem;
}

.replia-reports-tabs--flat {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.35rem;
    flex: 1 1 auto;
    min-width: 0;
    padding-bottom: 0.15rem;
}

.replia-reports-view-mode {
    display: inline-flex;
    border: 1px solid rgb(0 0 0 / 0.1);
    border-radius: 0.5rem;
    overflow: hidden;
    flex-shrink: 0;
}

.replia-reports-view-mode__btn {
    border: 0;
    background: transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(100 116 139 / 1);
    cursor: pointer;
}

.replia-reports-view-mode__btn--active {
    background: rgb(37 99 235 / 0.12);
    color: rgb(37 99 235 / 1);
}

.replia-reports-nav-groups {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    flex: 1 1 auto;
    min-width: 0;
}

.replia-reports-nav-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.replia-reports-nav-group__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgb(100 116 139 / 1);
}

.replia-stat-card__comparison {
    margin: 0.25rem 0 0;
    font-size: 0.75rem;
    font-weight: 600;
}

.replia-stat-card__comparison--up { color: rgb(22 163 74 / 1); }
.replia-stat-card__comparison--down { color: rgb(220 38 38 / 1); }
.replia-stat-card__comparison--flat { color: rgb(100 116 139 / 1); }

.replia-reports-heatmap__scroll {
    overflow-x: auto;
    max-width: 100%;
}

.replia-reports-heatmap__table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.replia-reports-heatmap__corner,
.replia-reports-heatmap__row-header {
    position: sticky;
    left: 0;
    z-index: 2;
    background: rgb(248 250 252 / 1);
    font-weight: 600;
    text-align: left;
    padding: 0.45rem 0.65rem;
    white-space: nowrap;
}

.replia-reports-heatmap__col-header {
    min-width: 2.25rem;
    padding: 0.45rem 0.5rem;
    text-align: center;
    font-weight: 600;
    white-space: nowrap;
}

.replia-reports-heatmap__period-label {
    padding: 0.2rem 0.5rem 0.45rem;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(100 116 139 / 1);
    white-space: nowrap;
}

.replia-reports-heatmap__cell {
    min-width: 2.25rem;
    text-align: center;
    padding: 0.45rem 0.55rem;
    white-space: nowrap;
    background: rgb(37 99 235 / calc(var(--heatmap-intensity, 0) / 100));
    color: rgb(15 23 42 / 1);
}

.replia-reports-explorer__controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.replia-reports-explorer__controls label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.replia-reports-drilldown {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.replia-reports-drilldown__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 0.45);
}

.replia-reports-drilldown__panel {
    position: relative;
    z-index: 1;
    width: min(960px, 100%);
    max-height: 80vh;
    overflow: auto;
    padding: 1rem;
}

.replia-reports-drilldown__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.replia-reports-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.replia-reports-body--split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 1280px) {
    .replia-reports-body--split {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
        align-items: start;
    }
}

.replia-reports-charts {
    margin-top: 0.25rem;
}

.replia-reports-charts__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 768px) {
    .replia-reports-charts__grid {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    }

    .replia-reports-charts__grid--hero {
        grid-template-columns: 1fr;
    }

    .replia-reports-charts__grid--pair {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .replia-reports-charts__grid--dense {
        grid-template-columns: 1fr;
    }
}

.replia-reports-chart-card {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.85);
    min-height: 320px;
}

.replia-reports-chart-card--full {
    grid-column: 1 / -1;
}

.replia-reports-chart-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
}

.replia-reports-chart-card__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.replia-reports-chart-card__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.replia-reports-chart-card__control {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.replia-reports-chart-card__control-label {
    font-size: 0.7rem;
    font-weight: 600;
    color: rgb(100 116 139 / 1);
}

.replia-reports-chart-card__select {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 0.45rem;
    padding: 0.3rem 0.45rem;
    font-size: 0.75rem;
    background: #fff;
    max-width: 11rem;
}

.replia-reports-chart-card__select--narrow {
    max-width: 4.5rem;
}

.replia-reports-chart-card__hint {
    margin: 0 1rem 0.35rem;
    font-size: 0.6875rem;
    color: var(--app-text-soft);
}

.replia-reports-chart-card__body {
    flex: 1 1 auto;
    min-height: 200px;
}

.replia-reports-chart-card--explorer {
    min-height: auto;
    margin-top: 0.5rem;
}

.replia-reports-explorer__saved {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.replia-reports-explorer__saved label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.replia-reports-table--compact {
    font-size: 0.8125rem;
}

.replia-reports-table--compact th,
.replia-reports-table--compact td {
    padding: 0.35rem 0.5rem;
}

.replia-reports-chart-card__body--heatmap {
    min-height: auto;
}

.replia-reports-chart-card__body .fi-wi-chart .fi-section-header {
    display: none;
}

.replia-reports-chart-card__body .fi-wi-widget {
    min-height: 260px;
}

.replia-reports-chart-card__body .fi-wi-chart {
    min-height: 240px;
}

.replia-reports-charts .fi-wi-widget {
    min-height: 280px;
}

.replia-reports-charts .fi-wi-chart {
    min-height: 240px;
}

.replia-reports-section {
    padding: 1rem 1.1rem;
}

.replia-reports-section__title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.75rem;
}

.replia-reports-table-wrap {
    overflow-x: auto;
}

.replia-reports-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.replia-reports-table th,
.replia-reports-table td {
    border-bottom: 1px solid rgb(0 0 0 / 0.08);
    padding: 0.5rem 0.65rem;
    text-align: left;
}

.replia-reports-table th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: rgb(100 116 139 / 1);
}

.replia-reports-table__num {
    text-align: right;
    white-space: nowrap;
}

.replia-reports-table__link {
    color: rgb(var(--primary-600, 55 39 193) / 1);
    text-decoration: none;
}

.replia-reports-table__link:hover {
    text-decoration: underline;
}

.replia-reports-table__link--count {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.replia-reports-table__share-col {
    width: 9rem;
    min-width: 7rem;
}

.replia-reports-share-bar {
    position: relative;
    height: 1.25rem;
    border-radius: 0.35rem;
    background: rgb(0 0 0 / 0.06);
    overflow: hidden;
}

.replia-reports-share-bar__fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 0.35rem;
    background: rgb(var(--primary-500, 79 63 209) / 0.55);
    max-width: 100%;
}

.replia-reports-share-bar__label {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    padding: 0 0.35rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: rgb(30 41 59 / 1);
}

.replia-reports-more {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.replia-reports-more__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: rgb(51 65 85 / 1);
    cursor: pointer;
}

.replia-reports-accordion {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.replia-reports-accordion__item {
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.65rem;
    background: rgb(255 255 255 / 0.7);
    overflow: hidden;
}

.replia-reports-accordion__summary {
    padding: 0.65rem 0.85rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.replia-reports-accordion__summary::-webkit-details-marker {
    display: none;
}

.replia-reports-accordion__body {
    padding: 0 0.85rem 0.85rem;
}

.replia-reports-export-modal {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.replia-reports-export-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(15 23 42 / 0.45);
}

.replia-reports-export-modal__panel {
    position: relative;
    z-index: 1;
    width: min(100%, 34rem);
    max-height: calc(100vh - 2rem);
    overflow: auto;
    padding: 1rem 1.1rem;
}

.replia-reports-export-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.replia-reports-export-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
}

.replia-reports-export-modal__close {
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--app-text-muted);
}

.replia-reports-export-modal__body {
    display: grid;
    gap: 0.85rem;
}

.replia-reports-export-modal__fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.replia-reports-export-modal__fieldset legend {
    margin-bottom: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 650;
}

.replia-reports-export-modal__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.45rem;
}

.replia-reports-export-modal__row-label {
    font-size: 0.8125rem;
}

.replia-reports-export-modal__checkbox,
.replia-reports-export-modal__radio {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
    font-size: 0.8125rem;
}

.replia-reports-export-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1rem;
}

.replia-page-header__eyebrow {
    font-size: 0.8rem;
    margin: 0 0 0.25rem;
}

.replia-page-header__link {
    color: rgb(var(--primary-600, 55 39 193) / 1);
    text-decoration: none;
}

.dark .replia-reports-chart-card {
    background: rgb(15 23 42 / 0.85);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-chart-card__select {
    background: rgb(15 23 42 / 1);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-chart-card__control-label {
    color: rgb(148 163 184 / 1);
}

.dark .replia-reports-toolbar__nav {
    background: rgb(15 23 42 / 0.92);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-toolbar__filters {
    background: rgb(15 23 42 / 0.65);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-toolbar__filters-toggle {
    color: rgb(203 213 225 / 1);
    border-color: rgb(255 255 255 / 0.12);
}

.dark .replia-reports-heatmap__corner,
.dark .replia-reports-heatmap__row-header {
    background: rgb(15 23 42 / 1);
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-toolbar {
    background: transparent;
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-tabs__tab {
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(203 213 225 / 1);
}

.dark .replia-reports-tabs__tab--active {
    border-color: rgb(var(--primary-500, 99 102 241) / 1);
    background: rgb(var(--primary-500, 99 102 241) / 1);
    color: rgb(255 255 255 / 1);
    box-shadow:
        0 1px 4px rgb(0 0 0 / 0.35),
        0 0 0 1px rgb(var(--primary-400, 129 140 248) / 0.25);
}

.dark .replia-reports-tabs__tab--active:hover {
    background: rgb(var(--primary-600, 55 39 193) / 1);
    border-color: rgb(var(--primary-600, 55 39 193) / 1);
}

.dark .replia-reports-toolbar__select,
.dark .replia-reports-toolbar__input {
    background: rgb(15 23 42 / 1);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-unit-chips__chip {
    background: rgb(255 255 255 / 0.04);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(226 232 240 / 1);
}

.dark .replia-reports-unit-chips__chip--active {
    border-color: color-mix(in srgb, var(--app-accent, #8171e0) 75%, rgb(255 255 255));
    background: color-mix(in srgb, var(--app-accent, #3727c1) 32%, rgb(30 41 59));
    color: rgb(237 233 254 / 1);
    font-weight: 600;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--app-accent, #3727c1) 45%, transparent);
}

.dark .replia-reports-share-bar {
    background: rgb(255 255 255 / 0.08);
}

.dark .replia-reports-share-bar__label {
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-accordion__item {
    background: rgb(255 255 255 / 0.03);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-charts .fi-wi-chart {
    background: rgb(255 255 255 / 0.02);
    border-radius: 0.5rem;
}

.dark .replia-reports-filter-bar {
    background: rgb(255 255 255 / 0.04);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-filter-bar__select,
.dark .replia-reports-filter-bar__input {
    background: rgb(15 23 42 / 1);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(241 245 249 / 1);
}

/* Intake field mapping + publish embed (mirrors resources/css/intake-field-mapping.css) */
.fi-intake-field-mapping-wrap {
        margin-top: 0;
    }

    .fi-intake-field-mapping-wrap .fi-fo-field-wrp-label,
    .fi-intake-publish-embed-wrap .fi-fo-field-wrp-label {
        display: none;
    }

    .fi-intake-field-mapping-section .fi-section-header {
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }

    .fi-intake-field-mapping-section .fi-section-header-description {
        margin-top: 0.125rem !important;
        line-height: 1.35 !important;
    }

    .fi-intake-field-mapping-section .fi-section-content-ctn {
        padding: 10px !important;
    }

    .fi-intake-field-mapping {
        display: flex;
        flex-direction: column;
        gap: 0.625rem;
    }

    .fi-intake-field-mapping__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.375rem;
    }

    @media (min-width: 768px) {
        .fi-intake-field-mapping__stats {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
    }

    .fi-intake-field-mapping__stat {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        padding: 0.375rem 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
    }

    .dark .fi-intake-field-mapping__stat {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-field-mapping__stat--mapped {
        border-color: rgb(191 219 254);
        background: rgb(239 246 255);
    }

    .dark .fi-intake-field-mapping__stat--mapped {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.25);
    }

    .fi-intake-field-mapping__stat--layout {
        border-color: rgb(233 213 255);
        background: rgb(250 245 255);
    }

    .dark .fi-intake-field-mapping__stat--layout {
        border-color: rgb(168 85 247 / 0.35);
        background: rgb(88 28 135 / 0.2);
    }

    .fi-intake-field-mapping__stat-label {
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__stat-label {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__stat-value {
        font-size: 0.9375rem;
        font-weight: 700;
        line-height: 1.2;
        color: rgb(17 24 39);
        font-variant-numeric: tabular-nums;
    }

    .dark .fi-intake-field-mapping__stat-value {
        color: rgb(243 244 246);
    }

    .fi-intake-field-mapping__group-title {
        margin: 0 0 0.25rem;
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__group-title {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__list {
        margin: 0;
        padding: 0;
        list-style: none;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        overflow: hidden;
    }

    .dark .fi-intake-field-mapping__list {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(3 7 18 / 0.35);
    }

    .fi-intake-field-mapping__item {
        padding: 0.5rem 0.75rem;
    }

    .fi-intake-field-mapping__item + .fi-intake-field-mapping__item {
        border-top: 1px solid rgb(243 244 246);
    }

    .dark .fi-intake-field-mapping__item + .fi-intake-field-mapping__item {
        border-top-color: rgb(255 255 255 / 0.08);
    }

    .fi-intake-field-mapping__item-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.375rem;
        align-items: center;
    }

    @media (min-width: 640px) {
        .fi-intake-field-mapping__item-grid {
            grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) auto;
            gap: 0.5rem 0.75rem;
        }
    }

    .fi-intake-field-mapping__item-col--primary {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        min-width: 0;
    }

    .fi-intake-field-mapping__item-col--type {
        display: flex;
        align-items: center;
    }

    @media (min-width: 640px) {
        .fi-intake-field-mapping__item-col--type {
            justify-content: flex-end;
        }
    }

    .fi-intake-field-mapping__item-name {
        font-size: 0.8125rem;
        font-weight: 600;
        line-height: 1.25;
        color: rgb(17 24 39);
        word-break: break-word;
    }

    .dark .fi-intake-field-mapping__item-name {
        color: rgb(243 244 246);
    }

    .fi-intake-field-mapping__item-id,
    .fi-intake-field-mapping__mapping-line {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem 0.375rem;
        min-width: 0;
    }

    .fi-intake-field-mapping__detail-label {
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__detail-label {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__code {
        display: inline-block;
        width: fit-content;
        max-width: 100%;
        border-radius: 0.375rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(243 244 246);
        padding: 0.125rem 0.375rem;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 0.75rem;
        font-weight: 600;
        color: rgb(31 41 55);
        word-break: break-all;
    }

    .dark .fi-intake-field-mapping__code {
        border-color: rgb(255 255 255 / 0.12);
        background: rgb(255 255 255 / 0.06);
        color: rgb(229 231 235);
    }

    .fi-intake-field-mapping__type-badge {
        flex-shrink: 0;
        display: inline-flex;
        border-radius: 0.375rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        padding: 0.125rem 0.5rem;
        font-size: 0.6875rem;
        font-weight: 600;
        color: rgb(75 85 99);
        white-space: nowrap;
    }

    .dark .fi-intake-field-mapping__type-badge {
        border-color: rgb(255 255 255 / 0.12);
        background: rgb(255 255 255 / 0.04);
        color: rgb(209 213 219);
    }

    .fi-intake-field-mapping__mapping-value {
        display: inline-flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem;
        font-size: 0.8125rem;
        line-height: 1.3;
        color: rgb(55 65 81);
    }

    .dark .fi-intake-field-mapping__mapping-value {
        color: rgb(209 213 219);
    }

    .fi-intake-field-mapping__mapping-sep {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__category-badge {
        display: inline-flex;
        border-radius: 0.375rem;
        border: 1px solid rgb(191 219 254);
        background: rgb(239 246 255);
        padding: 0.125rem 0.5rem;
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: rgb(29 78 216);
    }

    .dark .fi-intake-field-mapping__category-badge {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.35);
        color: rgb(191 219 254);
    }

    .fi-intake-field-mapping__mapping-muted {
        font-size: 0.8125rem;
        font-style: italic;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__mapping-muted {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__required-badge {
        display: inline-flex;
        width: fit-content;
        border-radius: 0.375rem;
        border: 1px solid rgb(167 243 208);
        background: rgb(236 253 245);
        padding: 0.125rem 0.5rem;
        font-size: 0.6875rem;
        font-weight: 600;
        color: rgb(4 120 87);
    }

    .dark .fi-intake-field-mapping__required-badge {
        border-color: rgb(16 185 129 / 0.35);
        background: rgb(6 78 59 / 0.35);
        color: rgb(167 243 208);
    }

    .fi-intake-field-mapping__group--layout {
        padding: 0.5rem 0.625rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(233 213 255);
        background: rgb(250 245 255 / 0.6);
    }

    .dark .fi-intake-field-mapping__group--layout {
        border-color: rgb(168 85 247 / 0.3);
        background: rgb(88 28 135 / 0.15);
    }

    .fi-intake-field-mapping__layout-list {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .fi-intake-field-mapping__layout-item {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.375rem;
        font-size: 0.8125rem;
        color: rgb(75 85 99);
    }

    .dark .fi-intake-field-mapping__layout-item {
        color: rgb(209 213 219);
    }

    .fi-intake-field-mapping__layout-name {
        font-weight: 500;
        color: rgb(55 65 81);
    }

    .dark .fi-intake-field-mapping__layout-name {
        color: rgb(229 231 235);
    }

    .fi-intake-field-mapping__layout-sep {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__type-badge--layout {
        border-color: rgb(233 213 255);
        background: rgb(250 245 255);
        color: rgb(107 33 168);
    }

    .dark .fi-intake-field-mapping__type-badge--layout {
        border-color: rgb(168 85 247 / 0.35);
        background: rgb(88 28 135 / 0.25);
        color: rgb(233 213 255);
    }

    /* Publish & embed */
    .fi-intake-publish-embed {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .fi-intake-publish-embed__notice {
        margin: 0;
        font-size: 0.875rem;
        line-height: 1.5;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-publish-embed__notice {
        color: rgb(156 163 175);
    }

    .fi-intake-publish-embed__panel {
        display: flex;
        flex-direction: column;
        gap: 0.625rem;
        padding: 0.875rem 1rem;
        border-radius: 0.75rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
    }

    .dark .fi-intake-publish-embed__panel {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-publish-embed__panel-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        flex-wrap: wrap;
    }

    .fi-intake-publish-embed__panel-label {
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-publish-embed__panel-label {
        color: rgb(156 163 175);
    }

    .fi-intake-publish-embed__value-bar {
        display: flex;
        align-items: stretch;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        overflow: hidden;
    }

    .dark .fi-intake-publish-embed__value-bar {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(3 7 18 / 0.5);
    }

    .fi-intake-publish-embed__bar-action {
        display: flex;
        flex-shrink: 0;
        align-items: center;
        justify-content: center;
        padding: 0.5rem 0.625rem;
        border-left: 1px solid rgb(229 231 235);
    }

    .dark .fi-intake-publish-embed__bar-action {
        border-left-color: rgb(255 255 255 / 0.1);
    }

    .fi-intake-copy-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        padding: 0.375rem 0.75rem;
        font-size: 0.75rem;
        font-weight: 600;
        line-height: 1;
        color: rgb(55 65 81);
        cursor: pointer;
        transition: background-color 0.15s ease, border-color 0.15s ease;
    }

    .fi-intake-copy-btn:hover {
        background: rgb(243 244 246);
        border-color: rgb(209 213 219);
    }

    .dark .fi-intake-copy-btn {
        border-color: rgb(255 255 255 / 0.12);
        background: rgb(255 255 255 / 0.06);
        color: rgb(229 231 235);
    }

    .dark .fi-intake-copy-btn:hover {
        background: rgb(255 255 255 / 0.1);
    }

    .fi-intake-copy-btn--icon {
        width: 2rem;
        height: 2rem;
        padding: 0;
        border-color: transparent;
        background: transparent;
    }

    .fi-intake-copy-btn--icon:hover {
        background: rgb(243 244 246);
        border-color: rgb(229 231 235);
    }

    .dark .fi-intake-copy-btn--icon {
        background: transparent;
        border-color: transparent;
        color: rgb(229 231 235);
    }

    .dark .fi-intake-copy-btn--icon:hover {
        background: rgb(255 255 255 / 0.1);
        border-color: rgb(255 255 255 / 0.12);
    }

    .fi-intake-copy-btn__icon {
        display: block;
    }

    .fi-intake-publish-embed__open-link {
        display: inline-flex;
        align-items: center;
        font-size: 0.75rem;
        font-weight: 600;
        color: rgb(37 99 235);
        text-decoration: none;
    }

    .fi-intake-publish-embed__open-link:hover {
        text-decoration: underline;
    }

    .dark .fi-intake-publish-embed__open-link {
        color: rgb(147 197 253);
    }

    .fi-intake-publish-embed__value {
        flex: 1;
        min-width: 0;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 0.8125rem;
        line-height: 1.5;
        color: rgb(31 41 55);
        word-break: break-all;
        user-select: all;
    }

    .dark .fi-intake-publish-embed__value {
        color: rgb(229 231 235);
    }

    .fi-intake-publish-embed__value--url {
        padding: 0.625rem 0.75rem;
    }

    .fi-intake-publish-embed__code {
        flex: 1;
        min-width: 0;
        margin: 0;
        padding: 0.75rem;
        overflow-x: auto;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 0.75rem;
        line-height: 1.5;
        color: rgb(31 41 55);
        white-space: pre-wrap;
        word-break: break-all;
        user-select: all;
    }

    .dark .fi-intake-publish-embed__code {
        color: rgb(229 231 235);
    }

    /* Compact status strip */
    .fi-intake-status-strip {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem 0.375rem;
        margin-bottom: 0.75rem;
        padding: 0.5rem 0.75rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
        font-size: 0.8125rem;
        line-height: 1.4;
        color: rgb(55 65 81);
    }

    .dark .fi-intake-status-strip {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
        color: rgb(209 213 219);
    }

    .fi-intake-status-strip__sep {
        color: rgb(156 163 175);
        user-select: none;
    }

    .fi-intake-status-strip__token--warnings {
        font-weight: 600;
        color: rgb(194 65 12);
        text-decoration: none;
    }

    .fi-intake-status-strip__token--warnings:hover {
        text-decoration: underline;
    }

    .dark .fi-intake-status-strip__token--warnings {
        color: rgb(251 146 60);
    }

    /* Form builder */
    .fi-intake-form-builder .fi-fo-builder-item {
        padding: 0.375rem 0.5rem;
    }

    .fi-intake-form-builder .fi-fo-builder-item-header {
        min-height: 0;
        padding-block: 0.25rem;
    }

    .fi-intake-form-builder .fi-fo-builder-item-content-has-preview {
        padding-top: 0.25rem;
        padding-bottom: 0.375rem;
    }

    .fi-intake-form-builder .fi-fo-builder-item-preview {
        padding: 0;
    }

    .fi-intake-block-preview__title {
        font-size: 0.8125rem;
        font-weight: 600;
        color: rgb(31 41 55);
        line-height: 1.35;
    }

    .dark .fi-intake-block-preview__title {
        color: rgb(229 231 235);
    }

    .fi-intake-block-preview__subtitle {
        margin-top: 0.125rem;
        font-size: 0.75rem;
        line-height: 1.35;
        color: rgb(107 114 128);
    }

    .fi-intake-block-preview__subtitle--unmapped {
        color: rgb(194 65 12);
    }

    .dark .fi-intake-block-preview__subtitle--unmapped {
        color: rgb(251 146 60);
    }

    .fi-intake-block-preview-inline {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        min-width: 0;
    }

    .fi-intake-block-preview-inline__subtitle {
        display: block;
        font-size: 0.75rem;
        font-weight: 500;
        color: rgb(107 114 128);
        line-height: 1.3;
    }

    /* Vertical workflow */
    .fi-intake-workflow-vertical {
        margin: 0 0 0.75rem;
        padding: 0.75rem 0.875rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
        list-style: none;
    }

    .dark .fi-intake-workflow-vertical {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-workflow-vertical__step {
        position: relative;
        padding: 0.375rem 0 0.375rem 1rem;
        border-left: 2px solid rgb(191 219 254);
    }

    .fi-intake-workflow-vertical__step:last-child {
        border-left-color: transparent;
    }

    .dark .fi-intake-workflow-vertical__step {
        border-left-color: rgb(59 130 246 / 0.35);
    }

    .fi-intake-workflow-vertical__step::before {
        content: '';
        position: absolute;
        left: -0.3125rem;
        top: 0.625rem;
        width: 0.5rem;
        height: 0.5rem;
        border-radius: 9999px;
        background: rgb(37 99 235);
    }

    .fi-intake-workflow-vertical__label {
        display: block;
        font-size: 0.8125rem;
        font-weight: 600;
        color: rgb(31 41 55);
        line-height: 1.35;
    }

    .dark .fi-intake-workflow-vertical__label {
        color: rgb(229 231 235);
    }

    .fi-intake-workflow-vertical__detail {
        display: block;
        margin-top: 0.125rem;
        font-size: 0.75rem;
        color: rgb(107 114 128);
        line-height: 1.35;
    }

    .fi-intake-form-builder [x-sortable-handle] {
        cursor: grab;
        color: rgb(156 163 175);
        touch-action: none;
    }

    .fi-intake-form-builder [x-sortable-handle]:hover {
        color: rgb(75 85 99);
    }

    .fi-intake-form-builder [x-sortable-handle]:active {
        cursor: grabbing;
        color: rgb(37 99 235);
    }

    .dark .fi-intake-form-builder [x-sortable-handle] {
        color: rgb(107 114 128);
    }

    .dark .fi-intake-form-builder [x-sortable-handle]:hover {
        color: rgb(209 213 219);
    }

    .fi-intake-builder-preview {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        padding: 0.875rem 1rem;
        border-radius: 0.75rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        max-height: none;
        overflow: visible;
    }

    .dark .fi-intake-builder-preview {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(3 7 18 / 0.45);
    }

    .fi-intake-builder-preview__title {
        margin: 0;
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-builder-preview__title {
        color: rgb(156 163 175);
    }

    .fi-intake-builder-preview__empty {
        margin: 0;
        font-size: 0.8125rem;
        color: rgb(107 114 128);
    }

    .fi-intake-builder-preview__form {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .fi-intake-builder-preview__section-heading {
        margin: 0.25rem 0 0;
        font-size: 0.9375rem;
        font-weight: 700;
        color: rgb(17 24 39);
        border-bottom: 1px solid rgb(243 244 246);
        padding-bottom: 0.375rem;
    }

    .dark .fi-intake-builder-preview__section-heading {
        color: rgb(243 244 246);
        border-bottom-color: rgb(255 255 255 / 0.08);
    }

    .fi-intake-builder-preview__help-text {
        margin: 0;
        font-size: 0.8125rem;
        color: rgb(107 114 128);
    }

    .fi-intake-builder-preview__field {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .fi-intake-builder-preview__field-label {
        font-size: 0.8125rem;
        font-weight: 600;
        color: rgb(31 41 55);
    }

    .dark .fi-intake-builder-preview__field-label {
        color: rgb(229 231 235);
    }

    .fi-intake-builder-preview__required {
        color: rgb(220 38 38);
    }

    .fi-intake-builder-preview__field-help {
        margin: 0;
        font-size: 0.75rem;
        color: rgb(107 114 128);
    }

    .fi-intake-builder-preview__field-control {
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
        padding: 0.5rem 0.625rem;
        min-height: 2.25rem;
        display: flex;
        align-items: center;
    }

    .dark .fi-intake-builder-preview__field-control {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-builder-preview__field-control--textarea {
        min-height: 4rem;
        align-items: flex-start;
    }

    .fi-intake-builder-preview__placeholder {
        font-size: 0.8125rem;
        color: rgb(156 163 175);
    }

    /* Summary bar */
    .fi-intake-summary-bar__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.375rem;
    }

    @media (min-width: 768px) {
        .fi-intake-summary-bar__stats {
            grid-template-columns: repeat(5, minmax(0, 1fr));
        }
    }

    .fi-intake-summary-bar__stat {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        padding: 0.375rem 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
    }

    .dark .fi-intake-summary-bar__stat {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-summary-bar__stat--mapped {
        border-color: rgb(191 219 254);
        background: rgb(239 246 255);
    }

    .dark .fi-intake-summary-bar__stat--mapped {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.25);
    }

    .fi-intake-summary-bar__stat--warnings.fi-intake-summary-bar__stat--has-warnings {
        border-color: rgb(254 215 170);
        background: rgb(255 247 237);
    }

    .dark .fi-intake-summary-bar__stat--warnings.fi-intake-summary-bar__stat--has-warnings {
        border-color: rgb(251 146 60 / 0.35);
        background: rgb(124 45 18 / 0.25);
    }

    .fi-intake-summary-bar__stat-label {
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .fi-intake-summary-bar__stat-value {
        font-size: 0.9375rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        color: rgb(17 24 39);
    }

    .dark .fi-intake-summary-bar__stat-value {
        color: rgb(243 244 246);
    }

    /* Workflow strip */
    .fi-intake-workflow-strip__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 0.25rem;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .fi-intake-workflow-strip__step {
        display: flex;
        align-items: flex-start;
        gap: 0.5rem;
        position: relative;
        min-width: 0;
        flex: 1 1 9rem;
    }

    .fi-intake-workflow-strip__marker {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 1.375rem;
        height: 1.375rem;
        border-radius: 9999px;
        border: 1px solid rgb(191 219 254);
        background: rgb(239 246 255);
        font-size: 0.6875rem;
        font-weight: 700;
        color: rgb(29 78 216);
    }

    .dark .fi-intake-workflow-strip__marker {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.35);
        color: rgb(191 219 254);
    }

    .fi-intake-workflow-strip__content {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        min-width: 0;
    }

    .fi-intake-workflow-strip__label {
        font-size: 0.75rem;
        font-weight: 600;
        line-height: 1.3;
        color: rgb(31 41 55);
    }

    .dark .fi-intake-workflow-strip__label {
        color: rgb(229 231 235);
    }

    .fi-intake-workflow-strip__detail {
        font-size: 0.6875rem;
        line-height: 1.35;
        color: rgb(107 114 128);
    }

    .fi-intake-workflow-strip__connector {
        display: none;
    }

    /* Field mapping diagnostic */
    .fi-intake-field-mapping-diagnostic {
        display: flex;
        flex-direction: column;
        gap: 0.625rem;
    }

    .fi-intake-field-mapping-diagnostic__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.375rem;
    }

    @media (min-width: 768px) {
        .fi-intake-field-mapping-diagnostic__stats {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
    }

    .fi-intake-field-mapping-diagnostic__warnings {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 0.375rem;
    }

    .fi-intake-field-mapping-diagnostic__warning {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.375rem;
        padding: 0.375rem 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(254 215 170);
        background: rgb(255 247 237);
        font-size: 0.8125rem;
        color: rgb(154 52 18);
    }

    .dark .fi-intake-field-mapping-diagnostic__warning {
        border-color: rgb(251 146 60 / 0.35);
        background: rgb(124 45 18 / 0.2);
        color: rgb(254 215 170);
    }

    .fi-intake-field-mapping-diagnostic__ok {
        margin: 0;
        font-size: 0.8125rem;
        color: rgb(4 120 87);
    }

    .dark .fi-intake-field-mapping-diagnostic__ok {
        color: rgb(167 243 208);
    }
}
workflow-agenda-page {
    display: grid;
    gap: 1rem;
}

.workflow-agenda-toolbar {
    display: grid;
    gap: 0.875rem;
}

.workflow-agenda-toolbar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
}

.workflow-agenda-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--app-text-muted, #475569);
    margin-bottom: 0.35rem;
}

.workflow-agenda-multi {
    min-height: 110px;
}

.workflow-agenda-actions {
    display: flex;
    justify-content: flex-end;
}

.workflow-agenda-list {
    display: grid;
    gap: 0.75rem;
}

.workflow-agenda-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    text-decoration: none;
}

.workflow-agenda-main {
    min-width: 0;
}

.workflow-agenda-matter-number {
    color: var(--app-text, #0f172a);
    font-size: 0.98rem;
    font-weight: 700;
}

.workflow-agenda-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 0.25rem;
    color: var(--app-text-muted, #475569);
    font-size: 0.8rem;
}

.workflow-agenda-side {
    display: grid;
    justify-items: end;
    gap: 0.25rem;
}

.workflow-agenda-stage {
    color: var(--app-text, #334155);
    font-size: 0.76rem;
    font-weight: 600;
}

.workflow-agenda-date {
    color: var(--app-text-muted, #475569);
    font-size: 0.76rem;
}

.replia-inline-date-field {
    max-width: 20rem;
}

.replia-inline-date-input {
    border-color: var(--app-border, rgb(203 213 225));
    background: var(--app-surface-muted, rgb(248 250 252));
    color: var(--app-text, #0f172a);
}

.replia-inline-date-input:focus {
    border-color: var(--app-accent, #3727c1);
    box-shadow: 0 0 0 1px var(--app-accent, #3727c1);
}
.app-card {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(255 255 255);
    padding: 1rem;
}

.dark .app-card {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.app-muted {
    color: rgb(107 114 128);
}

.dark .app-muted {
    color: rgb(156 163 175);
}

.app-title {
    font-size: 1rem;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .app-title {
    color: rgb(243 244 246);
}

.app-open-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid rgb(148 163 184 / 40%);
    border-radius: 0.5rem;
    background: rgb(100 116 139 / 14%);
    padding: 0.1rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: rgb(51 65 85);
}

.dark .app-open-chip {
    border-color: rgb(148 163 184 / 32%);
    background: rgb(100 116 139 / 22%);
    color: rgb(226 232 240);
}

.app-section-title {
    margin-bottom: 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgb(107 114 128);
}

.dark .app-section-title {
    color: rgb(156 163 175);
}

.app-log-entry.reverted {
    text-decoration: line-through;
    opacity: 0.7;
}

/* Welcome card: name + role (matches Filament account widget rhythm). */
.fi-account-widget-user-name .fi-account-widget-user-role {
    margin-left: 0.35rem;
    font-weight: 500;
    color: rgb(107 114 128);
}

.dark .fi-account-widget-user-name .fi-account-widget-user-role {
    color: rgb(156 163 175);
}

/* Always display status color options as colored buttons. */
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='gray']) label { background: rgb(107 114 128) !important; border-color: rgb(107 114 128) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='slate']) label { background: rgb(100 116 139) !important; border-color: rgb(100 116 139) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='zinc']) label { background: rgb(113 113 122) !important; border-color: rgb(113 113 122) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='red']) label { background: rgb(239 68 68) !important; border-color: rgb(239 68 68) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='orange']) label { background: rgb(249 115 22) !important; border-color: rgb(249 115 22) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='amber']) label { background: rgb(245 158 11) !important; border-color: rgb(245 158 11) !important; color: rgb(17 24 39) !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='yellow']) label { background: rgb(234 179 8) !important; border-color: rgb(234 179 8) !important; color: rgb(17 24 39) !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='lime']) label { background: rgb(132 204 22) !important; border-color: rgb(132 204 22) !important; color: rgb(17 24 39) !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='green']) label { background: rgb(34 197 94) !important; border-color: rgb(34 197 94) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='emerald']) label { background: rgb(16 185 129) !important; border-color: rgb(16 185 129) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='teal']) label { background: rgb(20 184 166) !important; border-color: rgb(20 184 166) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='cyan']) label { background: rgb(6 182 212) !important; border-color: rgb(6 182 212) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='blue']) label { background: rgb(59 130 246) !important; border-color: rgb(59 130 246) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='indigo']) label { background: rgb(99 102 241) !important; border-color: rgb(99 102 241) !important; color: white !important; }
.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input[value='pink']) label { background: rgb(236 72 153) !important; border-color: rgb(236 72 153) !important; color: white !important; }

.status-color-toggle .fi-fo-toggle-buttons-btn-ctn:has(input:checked) label {
    box-shadow: 0 0 0 2px rgb(255 255 255 / 65%) inset, 0 0 0 1px rgb(17 24 39 / 20%);
}

/* Settings page layout tokens (avoid per-page inline styling). */
.settings-page {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
    overflow-x: clip;
}

.settings-card {
    padding: 1.25rem;
    border-radius: 0.9rem;
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}

.settings-card-actions {
    margin-top: 0.85rem;
    display: flex;
    justify-content: flex-end;
}

.settings-definition-grid {
    margin-top: 0.75rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem 1.4rem;
}

.settings-definition-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid rgb(229 231 235);
    padding-bottom: 0.4rem;
}

.dark .settings-definition-row {
    border-bottom-color: rgb(55 65 81);
}

.settings-definition-row dt {
    font-size: 0.9rem;
    color: rgb(107 114 128);
}

.dark .settings-definition-row dt {
    color: rgb(156 163 175);
}

.settings-definition-row dd {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .settings-definition-row dd {
    color: rgb(243 244 246);
}

.settings-items-grid {
    margin-top: 0.9rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.9rem;
}

.settings-item-card {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.9rem;
    min-width: 0;
    max-width: 100%;
}

.dark .settings-item-card {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.settings-item-card-inner {
    min-height: 8rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.8rem;
}

.settings-item-card--version .settings-item-card-inner {
    min-height: 11rem;
}

.settings-item-card--version .settings-definition-grid {
    margin-top: 1rem;
    gap: 0.9rem 1.6rem;
    grid-template-columns: 1fr;
}

.settings-item-card--version .settings-definition-row {
    padding-bottom: 0.55rem;
    min-width: 0;
}

.settings-item-card--version .settings-definition-row dt {
    min-width: 8.5rem;
    flex-shrink: 0;
}

.settings-item-card--version .settings-definition-row dd {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    min-width: 0;
    flex: 1 1 auto;
    text-align: end;
}

/* System Version: one outer card only; full width so metadata is not squeezed. */
.settings-card--system .settings-item-card--version {
    border: 0;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.dark .settings-card--system .settings-item-card--version {
    background: transparent;
}

.settings-card--system .settings-items-grid {
    grid-template-columns: 1fr;
}

/* System Health page: mirror settings/version visual rhythm. */
.system-health-page {
    max-width: 1120px;
}

.system-health-subtitle {
    margin-top: 0.35rem;
    margin-bottom: 0.95rem;
    font-size: 0.86rem;
}

.system-health-stat-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.system-health-definition-grid {
    margin-top: 0;
    gap: 0.5rem;
}

.system-health-list {
    display: grid;
    gap: 0.65rem;
}

.system-health-list-item {
    padding: 0.75rem 0.85rem;
    overflow: hidden;
}

.system-health-item-title {
    font-size: 0.9rem;
    margin-bottom: 0.45rem;
}

.system-health-error-details {
    width: 100%;
}

.system-health-error-summary {
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    color: rgb(107 114 128);
    margin-bottom: 0.45rem;
}

.dark .system-health-error-summary {
    color: rgb(156 163 175);
}

.system-health-error-text {
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.77rem;
    line-height: 1.35;
    color: rgb(31 41 55);
    max-width: 100%;
}

.dark .system-health-error-text {
    color: rgb(229 231 235);
}

.system-health-error-textarea {
    width: 100%;
    min-height: 9rem;
    margin: 0;
    border: 1px solid rgb(209 213 219);
    border-radius: 0.6rem;
    background: rgb(249 250 251);
    padding: 0.65rem 0.75rem;
    resize: vertical;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.77rem;
    line-height: 1.35;
    color: rgb(31 41 55);
}

.dark .system-health-error-textarea {
    border-color: rgb(75 85 99);
    background: rgb(17 24 39);
    color: rgb(229 231 235);
}

.system-health-error-actions {
    margin-top: 0.65rem;
    display: flex;
    justify-content: flex-end;
}

.system-health-table-wrap {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    overflow: auto;
    padding: 0.45rem 0.55rem;
}

.dark .system-health-table-wrap {
    border-color: rgb(55 65 81);
}

.system-health-table thead th {
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.7rem 0.8rem;
    white-space: nowrap;
}

.system-health-table tbody td {
    padding: 0.65rem 0.8rem;
    vertical-align: top;
}

.system-health-table thead th + th,
.system-health-table tbody td + td {
    border-left: 1px solid rgb(229 231 235);
}

.dark .system-health-table thead th + th,
.dark .system-health-table tbody td + td {
    border-left-color: rgb(55 65 81);
}

.system-health-detail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.85rem;
}

@media (min-width: 768px) {
    .settings-card--system .settings-items-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .settings-card--system .settings-item-card--version {
        grid-column: 1 / -1;
    }
}

@media (min-width: 768px) {
    .settings-definition-grid {
        grid-template-columns: 1fr 1fr;
    }

    .settings-item-card--version .settings-definition-grid {
        grid-template-columns: 1fr;
    }

    .settings-items-grid {
        grid-template-columns: 1fr 1fr;
    }

    .system-health-stat-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1280px) {
    .settings-items-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .system-health-stat-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .system-health-detail-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
    }
}

/* Unit Dashboard — same layout system as Settings (filament-app.css). */
.unit-dashboard-page {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.unit-dashboard-metrics {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.unit-dashboard-columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 1100px) {
    .unit-dashboard-columns--triple {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.unit-dashboard-panel {
    padding: 1.25rem;
    border-radius: 0.9rem;
}

.unit-dashboard-panel-title {
    margin-bottom: 0.75rem;
}

.unit-dashboard-toolbar-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.unit-dashboard-week-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.unit-dashboard-week-label {
    margin: 0;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .unit-dashboard-week-label {
    color: rgb(243 244 246);
}

.unit-dashboard-nav-button {
    border: 1px solid rgb(209 213 219);
    border-radius: 0.6rem;
    background: rgb(255 255 255);
    padding: 0.28rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: rgb(55 65 81);
}

.unit-dashboard-nav-button--subtle {
    font-weight: 500;
}

.dark .unit-dashboard-nav-button {
    border-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(229 231 235);
}

.unit-dashboard-filter-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.unit-dashboard-unit-select {
    border: 1px solid rgb(209 213 219);
    border-radius: 0.6rem;
    background: rgb(255 255 255);
    padding: 0.3rem 0.55rem;
    font-size: 0.85rem;
}

.dark .unit-dashboard-unit-select {
    border-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(243 244 246);
}

.unit-dashboard-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.unit-dashboard-link {
    display: block;
    text-decoration: none;
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.85rem 1rem;
    color: inherit;
}

.dark .unit-dashboard-link {
    border-color: rgb(55 65 81);
    background: rgb(31 41 55);
}

.unit-dashboard-link:hover {
    border-color: rgb(251 191 36);
    background: rgb(255 251 235);
}

.dark .unit-dashboard-link:hover {
    border-color: rgb(245 158 11 / 50%);
    background: rgb(55 48 33 / 40%);
}

.unit-dashboard-link-title {
    font-size: 0.95rem;
}

.unit-dashboard-link--meeting {
    padding: 0.65rem 0.75rem;
}

.unit-dashboard-link-meta {
    margin-top: 0.25rem;
    font-size: 0.8rem;
}

.unit-dashboard-empty {
    border: 1px dashed rgb(209 213 219);
    border-radius: 0.75rem;
    padding: 1rem;
    font-size: 0.9rem;
    color: rgb(107 114 128);
    background: rgb(249 250 251);
}

.dark .unit-dashboard-empty {
    border-color: rgb(75 85 99);
    color: rgb(156 163 175);
    background: rgb(17 24 39);
}

.unit-dashboard-calendars {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    max-width: 100%;
}

.unit-week-calendar {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.5rem;
    max-width: 100%;
}

.unit-week-column {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.75rem;
    min-height: 20rem;
}

.unit-dashboard-panel {
    min-width: 0;
    max-width: 100%;
}

.dark .unit-week-column {
    border-color: rgb(55 65 81);
    background: rgb(31 41 55);
}

.unit-week-day-title {
    margin: 0 0 0.5rem;
    font-size: 0.88rem;
    font-weight: 700;
}

.unit-week-day-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.unit-week-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.unit-week-item-title {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
}

.unit-week-item-meta,
.unit-week-item-note,
.unit-week-empty {
    margin: 0;
    font-size: 0.77rem;
}

.unit-status-chip {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    padding: 0.1rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 600;
}

.unit-status-chip--gray { border-color: rgb(100 116 139 / 35%); background: rgb(100 116 139 / 14%); color: rgb(51 65 85); }
.unit-status-chip--slate { border-color: rgb(100 116 139 / 35%); background: rgb(100 116 139 / 14%); color: rgb(51 65 85); }
.unit-status-chip--zinc { border-color: rgb(113 113 122 / 35%); background: rgb(113 113 122 / 14%); color: rgb(63 63 70); }
.unit-status-chip--red { border-color: rgb(239 68 68 / 35%); background: rgb(239 68 68 / 14%); color: rgb(185 28 28); }
.unit-status-chip--orange { border-color: rgb(249 115 22 / 35%); background: rgb(249 115 22 / 14%); color: rgb(194 65 12); }
.unit-status-chip--amber { border-color: rgb(245 158 11 / 35%); background: rgb(245 158 11 / 14%); color: rgb(180 83 9); }
.unit-status-chip--yellow { border-color: rgb(234 179 8 / 35%); background: rgb(234 179 8 / 14%); color: rgb(161 98 7); }
.unit-status-chip--lime { border-color: rgb(132 204 22 / 35%); background: rgb(132 204 22 / 14%); color: rgb(77 124 15); }
.unit-status-chip--green { border-color: rgb(34 197 94 / 35%); background: rgb(34 197 94 / 14%); color: rgb(21 128 61); }
.unit-status-chip--emerald { border-color: rgb(16 185 129 / 35%); background: rgb(16 185 129 / 14%); color: rgb(6 95 70); }
.unit-status-chip--teal { border-color: rgb(20 184 166 / 35%); background: rgb(20 184 166 / 14%); color: rgb(15 118 110); }
.unit-status-chip--cyan { border-color: rgb(6 182 212 / 35%); background: rgb(6 182 212 / 14%); color: rgb(14 116 144); }
.unit-status-chip--blue { border-color: rgb(59 130 246 / 35%); background: rgb(59 130 246 / 14%); color: rgb(29 78 216); }
.unit-status-chip--indigo { border-color: rgb(99 102 241 / 35%); background: rgb(99 102 241 / 14%); color: rgb(67 56 202); }
.unit-status-chip--pink { border-color: rgb(236 72 153 / 35%); background: rgb(236 72 153 / 14%); color: rgb(190 24 93); }

.dark .unit-status-chip--gray,
.dark .unit-status-chip--slate { border-color: rgb(148 163 184 / 32%); background: rgb(100 116 139 / 22%); color: rgb(226 232 240); }
.dark .unit-status-chip--zinc { border-color: rgb(161 161 170 / 32%); background: rgb(113 113 122 / 22%); color: rgb(228 228 231); }
.dark .unit-status-chip--red { border-color: rgb(248 113 113 / 34%); background: rgb(239 68 68 / 22%); color: rgb(252 165 165); }
.dark .unit-status-chip--orange { border-color: rgb(251 146 60 / 34%); background: rgb(249 115 22 / 22%); color: rgb(253 186 116); }
.dark .unit-status-chip--amber { border-color: rgb(251 191 36 / 34%); background: rgb(245 158 11 / 22%); color: rgb(253 230 138); }
.dark .unit-status-chip--yellow { border-color: rgb(250 204 21 / 34%); background: rgb(234 179 8 / 22%); color: rgb(254 240 138); }
.dark .unit-status-chip--lime { border-color: rgb(163 230 53 / 34%); background: rgb(132 204 22 / 22%); color: rgb(217 249 157); }
.dark .unit-status-chip--green { border-color: rgb(74 222 128 / 34%); background: rgb(34 197 94 / 22%); color: rgb(134 239 172); }
.dark .unit-status-chip--emerald { border-color: rgb(52 211 153 / 34%); background: rgb(16 185 129 / 22%); color: rgb(110 231 183); }
.dark .unit-status-chip--teal { border-color: rgb(45 212 191 / 34%); background: rgb(20 184 166 / 22%); color: rgb(153 246 228); }
.dark .unit-status-chip--cyan { border-color: rgb(34 211 238 / 34%); background: rgb(6 182 212 / 22%); color: rgb(165 243 252); }
.dark .unit-status-chip--blue { border-color: rgb(96 165 250 / 34%); background: rgb(59 130 246 / 22%); color: rgb(147 197 253); }
.dark .unit-status-chip--indigo { border-color: rgb(129 140 248 / 34%); background: rgb(99 102 241 / 22%); color: rgb(199 210 254); }
.dark .unit-status-chip--pink { border-color: rgb(244 114 182 / 34%); background: rgb(236 72 153 / 22%); color: rgb(251 207 232); }

@media (min-width: 768px) {
    .unit-dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .unit-week-calendar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .unit-week-calendar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .unit-dashboard-metrics--triple {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .unit-week-calendar {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

/* Meeting list: allow status/resolution badge popovers to extend past the cell. */
.fi-ta-cell-overflow-visible {
    overflow: visible !important;
}

.um-meeting-badge-picker__trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.um-meeting-badge-picker__badge {
    max-width: 12rem;
    justify-content: flex-start;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.um-meeting-badge-picker__icon {
    width: 0.72rem;
    height: 0.72rem;
    color: rgb(107 114 128);
}

.dark .um-meeting-badge-picker__icon {
    color: rgb(156 163 175);
}

.um-meeting-badge-picker__panel {
    position: absolute;
    right: 0;
    z-index: 70;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px;
    border-radius: 10px;
    background: rgb(255 255 255);
    border: 1px solid rgb(229 231 235);
    box-shadow: 0 12px 30px rgb(0 0 0 / 35%);
    max-width: 14rem;
}

.dark .um-meeting-badge-picker__panel {
    background: rgb(17 24 39);
    border-color: rgb(55 65 81);
}

.um-meeting-badge-picker__caret {
    position: absolute;
    top: -6px;
    left: 1.25rem;
    z-index: 1;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid rgb(255 255 255);
}

.dark .um-meeting-badge-picker__caret {
    border-bottom-color: rgb(17 24 39);
}

.um-meeting-badge-picker__option {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    border-radius: 0.5rem;
    padding: 0.2rem 0.15rem;
    transition: background-color 120ms ease;
}

.um-meeting-badge-picker__option:hover {
    background-color: rgb(243 244 246);
}

.dark .um-meeting-badge-picker__option:hover {
    background-color: rgb(55 65 81);
}

.um-meeting-rep-picker__trigger {
    max-width: 100%;
}

.um-meeting-rep-picker__label {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.um-meeting-rep-picker__panel {
    min-width: 18rem;
    max-width: 18rem;
    padding: 0;
    gap: 0;
    overflow: hidden;
}

.um-meeting-rep-picker__search {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.5rem;
    border-bottom: 1px solid rgb(229 231 235);
    background: inherit;
}

.dark .um-meeting-rep-picker__search {
    border-bottom-color: rgb(55 65 81);
}

.um-meeting-rep-picker__search-input {
    display: block;
    width: 100%;
    border-radius: 0.5rem;
    border: none;
    background: rgb(255 255 255);
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: rgb(3 7 18);
    box-shadow: inset 0 0 0 1px rgb(3 7 18 / 0.1);
}

.dark .um-meeting-rep-picker__search-input {
    background: rgb(255 255 255 / 0.05);
    color: rgb(255 255 255);
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.2);
}

.um-meeting-rep-picker__unassigned {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 0.5rem;
    border: 0;
    border-bottom: 1px dashed rgb(209 213 219);
    background: rgb(249 250 251);
    padding: 0.625rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: rgb(75 85 99);
    cursor: pointer;
    transition: background-color 120ms ease;
}

.um-meeting-rep-picker__unassigned:hover {
    background: rgb(243 244 246);
}

.dark .um-meeting-rep-picker__unassigned {
    border-bottom-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(209 213 219);
}

.dark .um-meeting-rep-picker__unassigned:hover {
    background: rgb(55 65 81);
}

.um-meeting-rep-picker__unassigned-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    opacity: 0.8;
}

.um-meeting-rep-picker__list {
    display: flex;
    max-height: 16rem;
    flex-direction: column;
    overflow-y: auto;
}

.um-meeting-rep-picker__option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0.375rem 0.5rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 120ms ease;
}

.um-meeting-rep-picker__option:hover {
    background-color: rgb(243 244 246);
}

.dark .um-meeting-rep-picker__option:hover {
    background-color: rgb(55 65 81);
}

.um-meeting-rep-picker__option-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.um-meeting-rep-picker__calendar-icon {
    width: 0.875rem;
    height: 0.875rem;
}

.um-meeting-rep-picker__badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1rem;
    white-space: nowrap;
}

.um-meeting-rep-picker__badge--gray {
    background: rgb(243 244 246);
    color: rgb(75 85 99);
}

.um-meeting-rep-picker__badge--success {
    background: rgb(220 252 231);
    color: rgb(21 128 61);
}

.um-meeting-rep-picker__badge--warning {
    background: rgb(254 243 199);
    color: rgb(180 83 9);
}

.um-meeting-rep-picker__badge--danger {
    background: rgb(254 226 226);
    color: rgb(185 28 28);
}

.dark .um-meeting-rep-picker__badge--gray {
    background: rgb(55 65 81);
    color: rgb(209 213 219);
}

.dark .um-meeting-rep-picker__badge--success {
    background: rgb(20 83 45 / 0.35);
    color: rgb(134 239 172);
}

.dark .um-meeting-rep-picker__badge--warning {
    background: rgb(120 53 15 / 0.35);
    color: rgb(252 211 77);
}

.dark .um-meeting-rep-picker__badge--danger {
    background: rgb(127 29 29 / 0.35);
    color: rgb(252 165 165);
}

.um-meeting-rep-picker__mark {
    border-radius: 0.125rem;
    background: rgb(var(--primary-500) / 0.2);
    color: inherit;
    padding: 0;
}

.dark .um-meeting-rep-picker__mark {
    background: rgb(255 255 255 / 0.12);
}

.um-meeting-rep-picker__empty {
    padding: 0.75rem;
    font-size: 0.875rem;
    color: rgb(107 114 128);
}

.dark .um-meeting-rep-picker__empty {
    color: rgb(156 163 175);
}

.um-matter-status-entry {
    position: relative;
    overflow: visible;
}

.um-meeting-badge-picker--matter {
    position: relative;
    display: inline-flex;
    overflow: visible;
}

.um-meeting-badge-picker__panel--matter {
    top: calc(100% + 0.4rem);
    left: 0;
    right: auto;
    min-width: 13rem;
    max-width: 16rem;
}

.um-process-card {
    display: grid;
    gap: 1rem;
}

.um-process-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 1fr;
}

.um-process-stat {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.75rem;
    background: rgb(249 250 251);
    padding: 0.7rem 0.8rem;
}

.dark .um-process-stat {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.um-process-label {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgb(107 114 128);
}

.dark .um-process-label {
    color: rgb(156 163 175);
}

.um-process-value {
    margin: 0.3rem 0 0;
    font-size: 0.88rem;
    color: rgb(17 24 39);
}

.dark .um-process-value {
    color: rgb(243 244 246);
}

.um-process-section {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.8rem;
    background: rgb(249 250 251);
    padding: 0.8rem;
}

.dark .um-process-section {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.um-process-list {
    margin-top: 0.55rem;
    display: grid;
    gap: 0.5rem;
}

.um-process-item {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.7rem;
    background: rgb(255 255 255);
    padding: 0.55rem 0.65rem;
}

.dark .um-process-item {
    border-color: rgb(55 65 81);
    background: rgb(31 41 55);
}

.um-process-item-title {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 600;
    color: rgb(17 24 39);
}

.dark .um-process-item-title {
    color: rgb(243 244 246);
}

.um-process-item-meta {
    margin: 0.22rem 0 0;
    font-size: 0.76rem;
    color: rgb(75 85 99);
}

.dark .um-process-item-meta {
    color: rgb(156 163 175);
}

.um-process-empty {
    margin: 0;
    border: 1px dashed rgb(209 213 219);
    border-radius: 0.65rem;
    background: rgb(255 255 255);
    padding: 0.6rem 0.7rem;
    font-size: 0.8rem;
    color: rgb(107 114 128);
}

.dark .um-process-empty {
    border-color: rgb(75 85 99);
    background: rgb(31 41 55);
    color: rgb(156 163 175);
}

@media (min-width: 768px) {
    .um-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Public home page */
.home-shell {
    min-height: 100vh;
    background: #0b1120;
    color: #e5edf7;
    font-family: "Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

/* Filament sidebar / topbar: organization logo left of app name */
.fi-logo:has(.um-panel-brand) {
    display: flex;
    align-items: center;
    min-width: 0;
}

.um-panel-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    height: 100%;
}

.um-panel-brand-logo {
    height: 100%;
    width: auto;
    max-width: 28rem;
    object-fit: contain;
    flex-shrink: 0;
}

.um-panel-brand-name {
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.2;
    color: inherit;
    white-space: nowrap;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.um-panel-brand--default {
    gap: 0;
    height: 100%;
    align-items: center;
}

.um-panel-brand-logo--for-dark-ui,
.um-panel-brand-logo--for-light-ui {
    height: 100%;
    max-height: 100%;
    width: auto;
    max-width: 28rem;
    object-fit: contain;
    object-position: left center;
}

/* Login / simple pages: fi-logo sets height via inline style — fill that box */
.fi-simple-header .fi-logo:has(.um-panel-brand--default) {
    min-height: 3.75rem;
}

.fi-simple-header .um-panel-brand--default {
    min-height: 3.75rem;
}

/* Filament v4 primary actions on auth/simple pages (fi-color-*), not fi-btn-color-primary */
.fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined),
.dark .fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined) {
    background: var(--brand-dark-blue, #3727c1) !important;
    background-image: none !important;
    border-color: var(--brand-dark-purple, #3223b5) !important;
    color: var(--brand-white, #fff) !important;
    --btn-border-color: var(--brand-dark-purple, #3223b5) !important;
}

.fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):hover,
.fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):focus-visible,
.dark .fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):hover,
.dark .fi-simple-page .fi-btn.fi-color.fi-color-primary:not(.fi-outlined):focus-visible {
    background: var(--brand-dark-purple, #3223b5) !important;
    border-color: var(--brand-light-blue, #408bdf) !important;
    color: var(--brand-white, #fff) !important;
}

html:not(.dark) .um-panel-brand-logo--for-dark-ui {
    display: none !important;
}

html.dark .um-panel-brand-logo--for-light-ui {
    display: none !important;
}

.home-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem 1rem 3rem;
}

.home-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid rgb(30 41 59);
    padding-bottom: 0.85rem;
}

.home-brand {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: rgb(248 250 252);
}

.home-login-link {
    border: 1px solid rgb(51 65 85);
    border-radius: 0.6rem;
    background: rgb(15 23 42);
    color: rgb(226 232 240);
    padding: 0.5rem 0.9rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}

.home-login-link:hover {
    border-color: rgb(71 85 105);
    background: rgb(30 41 59);
}

.home-hero {
    margin-top: 2.2rem;
    background: linear-gradient(145deg, #172033 0%, #0f172a 52%, color-mix(in srgb, #3223b5 12%, #0f172a) 100%);
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 0.85rem;
    padding: 2rem;
    position: relative;
    overflow: hidden;
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--brand-gradient, linear-gradient(135deg, #9b69f3 0%, #3223b5 48%, #408bdf 100%));
    opacity: 0.92;
}

.home-eyebrow {
    margin: 0 0 0.7rem;
    color: rgb(148 163 184);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.home-title {
    font-size: clamp(2rem, 5vw, 3rem);
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0;
    color: rgb(248 250 252);
}

.home-subtitle {
    margin: 1rem 0 0;
    max-width: 50rem;
    color: rgb(148 163 184);
    font-size: 1rem;
    line-height: 1.7;
}

.home-actions {
    margin-top: 1.3rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.home-primary-button {
    border: 1px solid #3727c1;
    border-radius: 0.7rem;
    background: linear-gradient(135deg, #9b69f3 0%, #3223b5 52%, #408bdf 100%);
    color: #ffffff;
    padding: 0.65rem 1rem;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.92rem;
}

.home-primary-button:hover {
    filter: brightness(1.06);
    border-color: #3223b5;
    color: #ffffff;
}

.home-secondary-text {
    font-size: 0.9rem;
    color: rgb(100 116 139);
}

/* Imports page table layout */
.imports-history-table {
    border: 1px solid rgb(229 231 235);
    border-radius: 0.9rem;
    overflow: hidden;
}

.dark .imports-history-table {
    border-color: rgb(55 65 81);
}

.imports-history-head,
.imports-history-row {
    display: grid;
    grid-template-columns: minmax(12rem, 2fr) minmax(8rem, 1fr) minmax(10rem, 1fr) minmax(8rem, 0.8fr) minmax(12rem, 1.2fr) minmax(11rem, 1fr);
    gap: 0.75rem;
    align-items: center;
    padding: 0.8rem 1rem;
}

.imports-actions-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.imports-history-head {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: rgb(107 114 128);
    background: rgb(249 250 251);
}

.dark .imports-history-head {
    color: rgb(156 163 175);
    background: rgb(17 24 39);
}

.imports-history-row {
    border-top: 1px solid rgb(229 231 235);
    font-size: 0.9rem;
}

.dark .imports-history-row {
    border-top-color: rgb(55 65 81);
}

.imports-file-cell {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.imports-failed-rows {
    color: rgb(220 38 38);
    font-weight: 600;
}

.imports-empty-state {
    border: 1px dashed rgb(209 213 219);
    border-radius: 0.8rem;
    background: rgb(249 250 251);
    color: rgb(107 114 128);
    padding: 1rem;
    font-size: 0.9rem;
}

.dark .imports-empty-state {
    border-color: rgb(75 85 99);
    background: rgb(17 24 39);
    color: rgb(156 163 175);
}

@media (max-width: 1024px) {
    .imports-history-head {
        display: none;
    }

    .imports-history-row {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }
}

/* My Calendar page */
.my-calendar-page {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.my-calendar-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.my-calendar-toolbar-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.my-calendar-nav {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.my-calendar-view-toggle {
    display: inline-flex;
    border: 1px solid var(--app-border-soft, rgb(209 213 219));
    border-radius: 0.7rem;
    overflow: hidden;
}

.dark .my-calendar-view-toggle {
    border-color: var(--app-border-soft, rgb(75 85 99));
}

.my-calendar-view-button {
    border: 0;
    background: var(--app-surface, rgb(255 255 255));
    color: var(--app-text-muted, rgb(55 65 81));
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
}

.my-calendar-view-button.is-active {
    background: var(--app-accent-soft);
    color: var(--app-accent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--app-accent) 35%, transparent);
}

.dark .my-calendar-view-button {
    background: var(--app-surface-raised, rgb(31 41 55));
    color: var(--app-text-muted, rgb(229 231 235));
}

.dark .my-calendar-view-button.is-active {
    background: var(--app-accent-soft);
    color: var(--app-accent-strong, var(--app-accent));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--app-accent) 40%, transparent);
}

.my-calendar-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem;
}

.my-calendar-filters > .my-calendar-filter-field {
    flex: 1 1 11rem;
    min-width: min(100%, 11rem);
}

.my-calendar-filter-field .unit-dashboard-unit-select {
    width: 100%;
}

/* Empty range: full-width inline strip between toolbar and grid (not a card) */
.my-calendar-empty {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.3rem 0 0.45rem;
    border: none;
    border-top: 1px solid color-mix(in srgb, var(--app-border, rgb(226 232 240)) 75%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--app-border, rgb(226 232 240)) 45%, transparent);
    border-radius: 0;
    background: transparent;
}

.dark .my-calendar-empty {
    border-top-color: color-mix(in srgb, rgb(55 65 81) 65%, transparent);
    border-bottom-color: color-mix(in srgb, rgb(55 65 81) 40%, transparent);
    background: transparent;
}

.my-calendar-empty__head {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin-bottom: 0.28rem;
}

.my-calendar-empty__primary {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.01em;
    color: var(--app-text-strong, rgb(15 23 42));
}

.dark .my-calendar-empty__primary {
    color: rgb(243 244 246);
}

.my-calendar-empty__hint {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.35;
    font-weight: 400;
    color: var(--app-text-muted, rgb(100 116 139));
}

.my-calendar-empty__hint--secondary {
    margin: 0.15rem 0 0;
}

.my-calendar-empty__row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 0.6rem;
    row-gap: 0.35rem;
}

.my-calendar-empty__next-copy {
    margin: 0;
    flex: 1 1 14rem;
    min-width: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--app-text, rgb(51 65 85));
}

.dark .my-calendar-empty__next-copy {
    color: rgb(226 232 240);
}

.my-calendar-empty__next-label {
    font-weight: 700;
    color: var(--app-text-strong, rgb(30 41 59));
    margin-right: 0.15rem;
}

.dark .my-calendar-empty__next-label {
    color: rgb(248 250 252);
}

.my-calendar-empty__when {
    font-weight: 600;
    color: var(--app-text-strong, rgb(30 41 59));
}

.dark .my-calendar-empty__when {
    color: rgb(241 245 249);
}

.my-calendar-empty__dash {
    font-weight: 500;
    color: var(--app-text-muted, rgb(148 163 184));
}

.my-calendar-empty__event-title {
    font-weight: 600;
    color: var(--app-text-strong, rgb(15 23 42));
    word-break: break-word;
}

.dark .my-calendar-empty__event-title {
    color: rgb(248 250 252);
}

.my-calendar-empty__event-meta {
    font-weight: 400;
    color: var(--app-text-muted, rgb(100 116 139));
    word-break: break-word;
}

.my-calendar-empty__jump {
    flex-shrink: 0;
    margin: 0;
    padding: 0.32rem 0.65rem;
    border-radius: 0.4rem;
    border: 1px solid color-mix(in srgb, var(--app-accent, #3727c1) 72%, rgb(100 116 139));
    background: color-mix(in srgb, var(--app-accent, #3727c1) 18%, var(--app-surface, #fff));
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: color-mix(in srgb, var(--app-accent, #3727c1) 92%, rgb(15 23 42));
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
    box-shadow: 0 1px 0 color-mix(in srgb, var(--app-accent, #3727c1) 22%, transparent);
}

.my-calendar-empty__jump:hover {
    background: color-mix(in srgb, var(--app-accent, #3727c1) 28%, var(--app-surface, #fff));
    border-color: color-mix(in srgb, var(--app-accent, #3727c1) 88%, rgb(100 116 139));
}

.my-calendar-empty__jump:focus-visible {
    outline: 2px solid var(--app-accent, #3727c1);
    outline-offset: 2px;
}

.dark .my-calendar-empty__jump {
    border-color: rgb(129 140 248);
    background: color-mix(in srgb, rgb(129 140 248) 26%, rgb(30 41 59));
    color: rgb(238 242 255);
    box-shadow: 0 1px 0 rgb(0 0 0 / 28%);
}

.dark .my-calendar-empty__jump:hover {
    background: color-mix(in srgb, rgb(129 140 248) 36%, rgb(30 41 59));
    border-color: rgb(165 180 252);
}

@media (max-width: 640px) {
    .my-calendar-empty__row {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
    }

    .my-calendar-empty__next-copy {
        flex: 1 1 auto;
    }

    .my-calendar-empty__jump {
        align-self: flex-start;
    }
}

.my-calendar-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

.my-calendar-grid--day {
    grid-template-columns: 1fr;
}

.my-calendar-grid--week {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.my-calendar-grid--month {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.my-calendar-day {
    min-height: 12rem;
    padding: 0.8rem;
}

.my-calendar-day.is-muted {
    opacity: 0.55;
}

.my-calendar-day-header {
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 0.55rem;
}

.my-calendar-day-items {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.my-calendar-item-time,
.my-calendar-item-title,
.my-calendar-item-meta {
    margin: 0;
    font-size: 0.78rem;
}

.my-calendar-item-title {
    margin-top: 0.2rem;
    font-weight: 700;
}

.my-calendar-item-meta {
    margin-top: 0.15rem;
    color: rgb(107 114 128);
}

.dark .my-calendar-item-meta {
    color: rgb(156 163 175);
}

@media (min-width: 768px) {
    .my-calendar-grid--week {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .my-calendar-grid--month {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .my-calendar-grid--week {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .my-calendar-grid--month {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

/*
 * My Dashboard: Filament Section provides the single card + collapsible header.
 * Table widgets render a second "fi-ta-ctn" surface — flatten it so the section is the only chrome.
 */
.um-my-dashboard .fi-sc-section .fi-section > .fi-section-content-ctn {
    padding: 0;
}

.um-my-dashboard .fi-sc-section .fi-wi-table.fi-wi-widget {
    margin: 0;
    width: 100%;
    max-width: 100%;
}

.um-my-dashboard .fi-sc-section .fi-wi-table .fi-ta-ctn {
    border-radius: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
    --tw-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
}

.dark .um-my-dashboard .fi-sc-section .fi-wi-table .fi-ta-ctn {
    background: transparent;
}

.fi-in-entry-label-ctn {
    margin-bottom: 10px;
}

.fi-in-entry-label{
    font-weight: 600;
}

/* -------------------------------------------------------------------------- */
/* Replia brand tokens (source of truth — surfaces + identity)                 */
/* -------------------------------------------------------------------------- */

:root {
    --brand-dark-blue: #3727c1;
    --brand-light-blue: #408bdf;
    --brand-dark-purple: #3223b5;
    --brand-light-purple: #9b69f3;
    --brand-black: #000000;
    --brand-white: #ffffff;
    --brand-gradient: linear-gradient(135deg, #9b69f3 0%, #3223b5 48%, #408bdf 100%);

    --app-bg: #f8fafc;
    --app-shell: #ffffff;
    --app-sidebar: #f1f5f9;
    --app-surface: #ffffff;
    --app-surface-raised: #f8fafc;
    --app-surface-muted: #e2e8f0;

    --app-border: #cbd5e1;
    --app-border-soft: #e2e8f0;

    --app-text: #0f172a;
    --app-text-strong: #020617;
    --app-text-muted: #475569;
    --app-text-soft: #64748b;

    --app-accent: #3727c1;
    --app-accent-hover: #3223b5;
    --app-accent-soft: rgba(55, 39, 193, 0.1);
    --app-accent-strong: #3223b5;

    --app-focus-ring: rgba(155, 105, 243, 0.35);
}

.dark {
    --app-bg: #0b1120;
    --app-shell: #0f172a;
    --app-sidebar: #0f172a;
    --app-surface: #172033;
    --app-surface-raised: #1e293b;
    --app-surface-muted: #263449;

    --app-border: #334155;
    --app-border-soft: rgba(148, 163, 184, 0.18);

    --app-text: #e5edf7;
    --app-text-strong: #f8fafc;
    --app-text-muted: #b6c3d4;
    --app-text-soft: #8ea0b8;

    --app-accent: #9b69f3;
    --app-accent-hover: #408bdf;
    --app-accent-soft: rgba(155, 105, 243, 0.16);
    --app-accent-strong: #408bdf;

    --app-focus-ring: rgba(64, 139, 223, 0.38);
}

/* -------------------------------------------------------------------------- */
/* Union Matters legacy surfaces (dark marketing/workspace components)         */
/* -------------------------------------------------------------------------- */

@import url("/fonts/filament/filament/inter/index.css");

:root {
    --color-navy-950: #0f172a;
    --color-navy-900: #111827;
    --color-navy-850: #162033;
    --color-navy-800: #1e293b;
    --color-navy-700: #334155;
    --color-red-800: #991b1b;
    --color-red-700: #b91c1c;
    --color-red-600: #dc2626;
    --color-border: #334155;
    --color-border-soft: rgba(148, 163, 184, 0.22);
    --color-text-primary: #f8fafc;
    --color-text-secondary: #cbd5e1;
    --color-text-muted: #94a3b8;
    --color-success: #15803d;
    --color-warning: #d97706;
    --color-danger: #dc2626;
    --color-info: #2563eb;
    --radius-card: 12px;
    --radius-control: 8px;
    --radius-modal: 14px;
    --radius-table: 10px;
    --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.25), 0 8px 24px rgba(0, 0, 0, 0.22);
}

.fi-body,
.fi-layout,
.fi-main,
.fi-main-ctn {
    font-family: "Inter", "Inter var", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
    background: var(--color-navy-900) !important;
    color: var(--color-text-primary) !important;
}

.fi-sidebar {
    background: var(--color-navy-950) !important;
    border-inline-end: 1px solid var(--color-border-soft) !important;
}

.fi-sidebar-nav {
    gap: 4px;
}

.fi-sidebar-item-button,
.fi-sidebar-group-button {
    border-radius: var(--radius-control) !important;
    color: var(--color-text-secondary) !important;
}

.fi-sidebar-item-button:hover,
.fi-sidebar-group-button:hover {
    background: var(--app-accent-soft) !important;
    color: var(--color-text-primary) !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-button {
    background: color-mix(in srgb, var(--app-accent) 16%, transparent) !important;
    border-inline-start: 3px solid var(--app-accent) !important;
    color: var(--color-text-primary) !important;
}

.fi-topbar {
    background: var(--color-navy-900) !important;
    border-bottom: 1px solid var(--color-border-soft) !important;
    min-height: 56px;
}

.fi-page {
    gap: 16px;
}

.fi-header {
    margin-bottom: 8px !important;
}

.fi-header-heading {
    color: var(--color-text-primary) !important;
    font-size: clamp(1.75rem, 2.2vw, 2rem) !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

.fi-header-subheading {
    color: var(--color-text-muted) !important;
    font-size: 0.875rem !important;
}

.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview),
.fi-ta-ctn,
.fi-in-entry,
.fi-modal-window {
    background: var(--color-navy-800) !important;
    border: 1px solid var(--color-border-soft) !important;
    border-radius: var(--radius-card) !important;
    box-shadow: var(--shadow-panel) !important;
}

.fi-modal-window {
    border-radius: var(--radius-modal) !important;
}

.fi-section-header,
.fi-modal-header,
.fi-ta-header {
    background: var(--color-navy-850) !important;
    border-bottom: 1px solid var(--color-border-soft) !important;
}

.fi-section-heading,
.fi-modal-heading,
.fi-ta-header-heading {
    color: var(--color-text-primary) !important;
    font-weight: 650 !important;
}

.fi-btn {
    border-radius: var(--radius-control) !important;
    font-weight: 600 !important;
}

.fi-btn-color-danger {
    background: var(--color-red-800) !important;
    border-color: var(--color-red-700) !important;
    color: #fee2e2 !important;
}

.fi-btn-color-danger:hover {
    background: var(--color-red-700) !important;
}

.fi-btn-color-primary {
    background: var(--app-accent) !important;
    border-color: var(--app-accent) !important;
    color: #ffffff !important;
}

.fi-btn-color-primary:hover {
    background: var(--app-accent-hover) !important;
    border-color: var(--app-accent-hover) !important;
}

.fi-btn-color-gray,
.fi-btn-color-secondary {
    background: var(--color-navy-850) !important;
    border-color: var(--color-border-soft) !important;
    color: var(--color-text-secondary) !important;
}

.fi-btn-color-gray:hover,
.fi-btn-color-secondary:hover {
    background: var(--app-accent-soft) !important;
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--color-border-soft)) !important;
}

.fi-input,
.fi-select-input,
.fi-textarea,
.fi-fo-field-wrp .fi-input-wrp {
    background: var(--color-navy-900) !important;
    border-color: var(--color-border-soft) !important;
    border-radius: var(--radius-control) !important;
    color: var(--color-text-primary) !important;
}

.fi-input:focus,
.fi-select-input:focus,
.fi-textarea:focus,
.fi-fo-field-wrp .fi-input-wrp:focus-within {
    border-color: var(--app-accent) !important;
    box-shadow: 0 0 0 3px var(--app-focus-ring) !important;
}

.fi-fo-field-wrp-label,
.fi-fo-field-wrp-helper-text {
    color: var(--color-text-secondary) !important;
}

.fi-fo-field-wrp-error-message {
    color: #fca5a5 !important;
}

.fi-dropdown-panel,
.fi-select-dropdown,
.fi-ta-filters-dropdown,
.um-meeting-badge-picker__panel {
    background: var(--color-navy-850) !important;
    border: 1px solid var(--color-border-soft) !important;
    border-radius: 10px !important;
    box-shadow: var(--shadow-panel) !important;
}

.fi-dropdown-list-item:hover,
.fi-select-option:hover,
.um-meeting-badge-picker__option:hover {
    background: var(--app-accent-soft) !important;
}

.fi-ta-table {
    color: var(--color-text-secondary) !important;
}

.fi-ta-table thead th {
    background: var(--color-navy-850) !important;
    color: var(--color-text-secondary) !important;
    font-size: 0.78rem !important;
    border-bottom: 1px solid var(--color-border-soft) !important;
}

.fi-ta-table tbody tr {
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
}

.fi-ta-table tbody tr:hover {
    background: var(--app-accent-soft) !important;
}

.fi-ta-table tbody td {
    font-size: 0.84rem !important;
    color: var(--color-text-secondary) !important;
}

html.dark .fi-ta-empty-state {
    background: var(--color-navy-850) !important;
    border: 1px dashed var(--color-border-soft) !important;
    border-radius: var(--radius-card) !important;
    color: var(--color-text-muted) !important;
}

.fi-badge,
.unit-status-chip {
    border-radius: 999px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

.fi-badge-color-primary {
    background: var(--app-accent-soft) !important;
    color: var(--app-accent) !important;
    border: 1px solid color-mix(in srgb, var(--app-accent) 30%, transparent) !important;
}

.fi-badge-color-success {
    background: rgba(21, 128, 61, 0.16) !important;
    color: #86efac !important;
    border: 1px solid rgba(134, 239, 172, 0.25) !important;
}

.fi-badge-color-warning {
    background: rgba(217, 119, 6, 0.14) !important;
    color: #fbbf24 !important;
    border: 1px solid rgba(251, 191, 36, 0.25) !important;
}

.fi-badge-color-gray {
    background: rgba(148, 163, 184, 0.12) !important;
    color: #cbd5e1 !important;
    border: 1px solid rgba(148, 163, 184, 0.25) !important;
}

.fi-tabs-item.fi-active {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
    border-color: color-mix(in srgb, var(--app-accent) 35%, transparent) !important;
}

.fi-tabs-item:hover {
    background: var(--app-accent-soft) !important;
}

html.dark .fi-notification,
html.dark .fi-no-notification {
    border-radius: 12px !important;
    border: 1px solid var(--color-border-soft) !important;
    background: var(--color-navy-800) !important;
    color: var(--color-text-primary) !important;
}

.fi-link {
    color: var(--app-accent) !important;
}

.fi-link:hover {
    color: var(--app-accent-hover) !important;
}

.fi-input:focus-visible,
.fi-btn:focus-visible,
.fi-link:focus-visible,
button:focus-visible,
a:focus-visible {
    outline: 2px solid var(--app-focus-ring) !important;
    outline-offset: 2px;
}

/* Make existing page-level custom cards consistent with dark shell. */
.app-card,
.settings-card,
.settings-item-card,
.system-health-list-item,
.unit-dashboard-panel,
.unit-dashboard-link,
.unit-week-column,
.my-calendar-item {
    background: var(--color-navy-800) !important;
    border-color: var(--color-border-soft) !important;
    color: var(--color-text-secondary) !important;
    border-radius: var(--radius-card) !important;
}

.app-title,
.unit-dashboard-week-label,
.unit-dashboard-metric-value {
    color: var(--color-text-primary) !important;
}

.app-muted,
.unit-dashboard-empty,
.my-calendar-item-meta {
    color: var(--color-text-muted) !important;
}

@media (max-width: 1024px) {
    .fi-header-heading {
        font-size: 1.5rem !important;
    }
}

/* -------------------------------------------------------------------------- */
/* Product Shell + Workspace Architecture                                     */
/* -------------------------------------------------------------------------- */

.fi-layout {
    --sidebar-width: 16.5rem;
}

.fi-sidebar {
    width: var(--sidebar-width) !important;
    padding: 10px 10px 14px !important;
}

.fi-sidebar-header {
    min-height: 52px !important;
    margin-bottom: 8px !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
}

.fi-sidebar-header .fi-logo {
    padding-inline: 8px !important;
}

.fi-sidebar-nav-groups {
    gap: 10px !important;
}

.app-identity-block {
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.58);
    border-radius: 10px;
    padding: 10px;
    margin: 2px 4px 10px;
}

.app-identity-block__eyebrow {
    margin: 0;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-accent);
}

.app-identity-block__title {
    margin: 4px 0 0;
    font-size: 0.83rem;
    font-weight: 650;
    color: var(--color-text-primary);
}

.app-identity-block__meta {
    margin: 3px 0 0;
    font-size: 0.76rem;
    color: var(--color-text-muted);
}

.fi-sidebar-group-label {
    padding-inline: 10px !important;
    margin-bottom: 6px !important;
    color: var(--color-text-muted) !important;
    font-size: 0.67rem !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

.fi-sidebar-item {
    padding-inline: 0 !important;
}

.fi-sidebar-item-button {
    min-height: 34px !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    border-inline-start: 3px solid transparent !important;
}

.fi-sidebar-item-label {
    font-size: 0.82rem !important;
    font-weight: 550 !important;
}

.fi-sidebar-item-icon {
    width: 1rem !important;
    height: 1rem !important;
}

.fi-topbar {
    min-height: 52px !important;
    padding-inline: 16px !important;
}

.fi-topbar .fi-input-wrp {
    border-radius: 7px !important;
    min-height: 34px !important;
}

.fi-main {
    padding-inline: 20px !important;
    padding-bottom: 24px !important;
}

.fi-page {
    max-width: min(1620px, 100%) !important;
    margin-inline: auto !important;
    gap: 16px !important;
}

.fi-header {
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 12px !important;
    margin-bottom: 4px !important;
}

.fi-header-actions {
    gap: 8px !important;
}

.fi-resource .fi-section,
.fi-resource .fi-ta-ctn,
.fi-resource .fi-in,
.fi-resource .fi-fo {
    border-radius: 10px !important;
}

.fi-resource .fi-in .fi-section {
    box-shadow: none !important;
}

.fi-ta {
    gap: 8px !important;
}

.fi-ta-header-toolbar {
    background: var(--color-navy-850) !important;
    border: 1px solid var(--color-border-soft) !important;
    border-radius: 10px !important;
    padding: 8px !important;
}

.fi-ta-table {
    border-collapse: collapse !important;
}

.fi-ta-table thead th {
    height: 42px !important;
}

.fi-ta-table tbody td {
    height: 44px !important;
    padding-block: 8px !important;
}

.fi-ta-empty-state {
    padding: 26px 20px !important;
    text-align: left !important;
}

.fi-ta-empty-state-heading {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--color-text-primary) !important;
}

.fi-ta-empty-state-description {
    font-size: 0.82rem !important;
    color: var(--color-text-muted) !important;
    max-width: 36rem !important;
}

.fi-resource .fi-section-content-ctn {
    padding: 14px !important;
}

.fi-resource .fi-in-entry {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.fi-resource .fi-in-entry-wrp {
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding: 10px 0 !important;
}

.fi-resource .fi-in-entry-wrp:last-child {
    border-bottom: 0;
}

.fi-resource .fi-in-entry-label {
    color: var(--color-text-muted) !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fi-resource .fi-in-entry-content {
    color: var(--color-text-secondary) !important;
    font-size: 0.86rem !important;
}

/* Reusable app components */
.app-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 12px;
}

.app-section {
    display: grid;
    gap: 8px;
}

.app-section__title {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    color: var(--color-text-primary);
    font-weight: 700;
}

.app-section__subtitle {
    margin: 0;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.app-section__eyebrow {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.app-panel {
    background: var(--color-navy-800);
    border: 1px solid var(--color-border-soft);
    border-radius: 12px;
    padding: 14px;
    display: grid;
    gap: 16px;
}

.app-dashboard {
    display: grid;
    gap: 16px;
}

.app-command-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    background: var(--color-navy-850);
    border: 1px solid var(--color-border-soft);
    border-radius: 10px;
    padding: 8px;
}

.app-command-bar__item {
    background: rgba(15, 23, 42, 0.55);
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 8px;
    padding: 8px 10px;
}

.app-command-bar__item--right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.app-command-bar__label {
    margin: 0;
    font-size: 0.69rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 700;
}

.app-command-bar__value {
    margin: 4px 0 0;
    font-size: 0.85rem;
    color: var(--color-text-primary);
    font-weight: 600;
}

.app-command-link {
    color: var(--app-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
}

.app-command-link:hover {
    color: var(--app-accent-hover);
}

.app-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.app-metric-card {
    position: relative;
    overflow: hidden;
    background: var(--color-navy-850);
    border: 1px solid var(--color-border-soft);
    border-radius: 10px;
    padding: 12px;
    transition: border-color 140ms ease, background-color 140ms ease;
}

.app-metric-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: color-mix(in srgb, var(--app-accent) 82%, transparent);
}

.app-metric-card:hover {
    border-color: color-mix(in srgb, var(--app-accent) 32%, var(--color-border-soft));
    background: rgba(30, 41, 59, 0.94);
}

.app-metric-card__label {
    margin: 0;
    font-size: 0.73rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--color-text-muted);
    font-weight: 700;
}

.app-metric-card__value {
    margin: 8px 0 4px;
    font-size: 1.8rem;
    line-height: 1;
    color: var(--color-text-primary);
    font-weight: 700;
}

.app-metric-card__hint {
    margin: 0;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.app-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 12px;
}

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

.app-list__item {
    display: block;
    text-decoration: none;
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid rgba(148, 163, 184, 0.17);
    border-radius: 8px;
    padding: 8px 10px;
    transition: border-color 140ms ease, background-color 140ms ease;
}

.app-list__item:hover {
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--color-border-soft));
    background: var(--app-accent-soft);
}

.app-list__item--risk {
    border-color: color-mix(in srgb, var(--color-danger) 35%, var(--color-border-soft));
}

.app-list__title {
    margin: 0;
    font-size: 0.87rem;
    color: var(--color-text-primary);
    font-weight: 600;
}

.app-list__meta {
    margin: 3px 0 0;
    font-size: 0.79rem;
    color: var(--color-text-muted);
}

.app-empty-state {
    border: 1px dashed rgba(148, 163, 184, 0.3);
    border-radius: 8px;
    padding: 10px;
    background: rgba(15, 23, 42, 0.32);
}

.app-empty-state__title {
    margin: 0;
    font-size: 0.86rem;
    color: var(--color-text-primary);
    font-weight: 650;
}

.app-empty-state__text {
    margin: 4px 0 0;
    font-size: 0.79rem;
    color: var(--color-text-muted);
}

@media (max-width: 1200px) {
    .app-command-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-workspace-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .fi-main {
        padding-inline: 10px !important;
    }

    .app-command-bar,
    .app-metric-grid {
        grid-template-columns: 1fr;
    }
}

/* Case file view rhythm for key resources */
.app-casefile-page .fi-header {
    background: linear-gradient(180deg, rgba(30, 41, 59, 0.95) 0%, rgba(22, 32, 51, 0.85) 100%);
    border: 1px solid var(--color-border-soft);
    border-radius: 12px;
    padding: 14px !important;
}

.app-casefile-page .fi-header-heading {
    font-size: 1.45rem !important;
}

.app-casefile-page .fi-header-subheading {
    font-size: 0.82rem !important;
    color: var(--color-text-secondary) !important;
}

.app-casefile-page .fi-header-actions {
    padding-top: 8px;
    border-top: 1px solid rgba(148, 163, 184, 0.15);
}

.app-casefile-page .fi-section {
    background: var(--color-navy-850) !important;
}

.app-casefile-page .fi-tabs {
    border-bottom-color: rgba(148, 163, 184, 0.16) !important;
}

/* -------------------------------------------------------------------------- */
/* Structural Redesign Overrides (flattened operational workspace)            */
/* -------------------------------------------------------------------------- */

.fi-layout {
    --sidebar-width: 14.25rem;
}

.fi-sidebar {
    padding: 8px 8px 10px !important;
}

.fi-sidebar-header {
    margin-bottom: 6px !important;
    padding-bottom: 6px !important;
}

.app-identity-block {
    border: 0;
    background: transparent;
    margin: 0 2px 8px;
    padding: 8px 6px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 0;
}

.app-identity-block__eyebrow {
    letter-spacing: 0.06em;
}

.fi-sidebar-nav {
    gap: 2px;
}

.fi-sidebar-group-label {
    font-size: 0.62rem !important;
    margin-bottom: 4px !important;
    padding-inline: 8px !important;
}

.fi-sidebar-item-button {
    border-radius: 6px !important;
    min-height: 31px !important;
    padding: 5px 8px !important;
}

.fi-sidebar-item-label {
    font-size: 0.79rem !important;
    font-weight: 520 !important;
}

.fi-topbar {
    min-height: 46px !important;
}

.fi-main {
    padding-top: 12px !important;
    padding-inline: 14px !important;
}

.fi-page {
    max-width: none !important;
}

.fi-header {
    border-bottom: 0;
    padding-bottom: 0 !important;
    margin-bottom: 2px !important;
}

.fi-header-heading {
    font-size: 1.75rem !important;
}

.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview),
.fi-ta-ctn,
.fi-in-entry,
.fi-modal-window {
    box-shadow: none !important;
}

.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview) {
    border-color: rgba(148, 163, 184, 0.14) !important;
}

.fi-ta-header-toolbar {
    border: 0 !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18) !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 6px 2px !important;
}

.fi-ta-ctn {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.fi-ta-table {
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 8px;
    overflow: hidden;
    background: rgba(22, 32, 51, 0.5);
}

.fi-ta-table thead th {
    background: rgba(15, 23, 42, 0.92) !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
    font-size: 0.75rem !important;
}

.fi-ta-table tbody tr {
    border-bottom: 1px solid rgba(148, 163, 184, 0.12) !important;
}

.fi-ta-table tbody tr:hover {
    background: var(--app-accent-soft) !important;
}

.fi-ta-empty-state {
    border: 0 !important;
    border-top: 1px solid rgba(148, 163, 184, 0.15) !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.app-empty-state {
    border: 0;
    border-left: 2px solid rgba(148, 163, 184, 0.28);
    border-radius: 0;
    background: transparent;
    padding: 2px 0 2px 10px;
}

.workspace-shell {
    display: grid;
    gap: 14px;
    width: min(1760px, 100%);
}

.app-dashboard-page .fi-header {
    display: none;
}

.workspace-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
}

.workspace-header__title {
    margin: 0;
    font-size: 1.75rem;
    line-height: 1.1;
    font-weight: 700;
    color: var(--color-text-primary);
}

.workspace-header__subtitle {
    margin: 6px 0 0;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.workspace-header__context {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.workspace-header__context span {
    padding: 4px 8px;
    background: rgba(22, 32, 51, 0.7);
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 6px;
}

.metric-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 8px;
    background: rgba(22, 32, 51, 0.72);
}

.metric-strip__item {
    padding: 10px 12px;
    border-right: 1px solid rgba(148, 163, 184, 0.16);
    position: relative;
}

.metric-strip__item:last-child {
    border-right: 0;
}

.metric-strip__item::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 2px;
    background: color-mix(in srgb, var(--app-accent) 75%, transparent);
}

.metric-strip__label {
    margin: 0;
    font-size: 0.71rem;
    color: var(--color-text-muted);
    font-weight: 600;
}

.metric-strip__value {
    margin: 6px 0 0;
    font-size: 1.4rem;
    line-height: 1;
    font-weight: 700;
    color: var(--color-text-primary);
}

.workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr);
    gap: 14px;
}

.content-surface {
    background: rgba(22, 32, 51, 0.6);
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 10px;
    padding: 12px;
    display: grid;
    gap: 14px;
}

.content-surface--rail {
    background: rgba(15, 23, 42, 0.46);
}

.workspace-section {
    display: grid;
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
}

.workspace-section:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.workspace-section__title {
    margin: 0;
    font-size: 1.02rem;
    color: var(--color-text-primary);
    font-weight: 700;
}

.workspace-section__subtitle {
    margin: 0;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.workspace-section__label {
    margin: 0;
    font-size: 0.86rem;
    color: var(--color-text-secondary);
    font-weight: 650;
}

.case-list {
    display: grid;
}

.case-list__row {
    display: grid;
    gap: 3px;
    text-decoration: none;
    padding: 8px 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.09);
}

.case-list__row:last-child {
    border-bottom: 0;
}

.case-list__row:hover {
    background: var(--app-accent-soft);
}

.case-list__row--risk .case-list__title {
    color: var(--color-danger);
}

.case-list__title {
    margin: 0;
    color: var(--color-text-primary);
    font-size: 0.86rem;
    font-weight: 600;
}

.case-list__meta {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.78rem;
}

@media (max-width: 1200px) {
    .workspace-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .metric-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-strip__item:nth-child(2n) {
        border-right: 0;
    }
}

@media (max-width: 640px) {
    .workspace-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .metric-strip {
        grid-template-columns: 1fr;
    }

    .metric-strip__item {
        border-right: 0;
        border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    }

    .metric-strip__item:last-child {
        border-bottom: 0;
    }
}

/* -------------------------------------------------------------------------- */
/* RepliaOS Shell layout (tokens: see Replia brand block at top of stylesheet) */
/* -------------------------------------------------------------------------- */

.replia-app-shell .fi-layout,
.replia-app-shell .fi-body {
    background: var(--app-bg) !important;
    color: var(--app-text) !important;
}

.replia-shell {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
}

/* Overlay is first in DOM; pin grid slots so main is not auto-placed into the sidebar column. */
.replia-shell__overlay {
    grid-column: 1 / -1;
    grid-row: 1;
}

/* Desktop: sidebar host is a normal grid column (mobile off-canvas rules below). */
.replia-sidebar-root {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    align-self: stretch;
}

.replia-shell__main {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.replia-shell:not(:has(.replia-sidebar-root)) .replia-shell__main {
    grid-column: 1 / -1;
}

.replia-shell__content {
    padding: 16px 20px 24px;
}

.replia-shell__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 35;
}

.replia-sidebar {
    position: sticky;
    top: 0;
    width: 260px;
    max-width: 100%;
    height: 100vh;
    height: 100dvh;
    border-right: 1px solid var(--app-border);
    background: var(--app-surface);
    z-index: 40;
}

.replia-sidebar__inner {
    height: 100%;
    overflow: auto;
    padding: 10px 10px 16px;
}

.replia-sidebar__brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    min-height: 3.85rem;
}

.replia-sidebar__logo {
    display: grid;
    text-decoration: none;
    color: inherit;
}

.replia-sidebar__product {
    font-size: 0.93rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--app-text);
}

.replia-sidebar__tagline {
    margin-top: 2px;
    font-size: 0.74rem;
    color: var(--app-text-muted);
}

.replia-sidebar__mark {
    display: block;
    line-height: 0;
}

.replia-sidebar__logo-img {
    display: block;
    height: 3.75rem;
    width: auto;
    max-width: min(24rem, 100%);
    object-fit: contain;
    object-position: left center;
}

.replia-sidebar__logo-img--org {
    max-height: 4.5rem;
}

html:not(.dark) .replia-sidebar__logo-img--for-dark-ui {
    display: none !important;
}

html.dark .replia-sidebar__logo-img--for-light-ui {
    display: none !important;
}

.replia-sidebar__mobile-close {
    display: none;
    border: 0;
    background: transparent;
    color: var(--app-text-muted);
    font-size: 0.76rem;
}

.replia-sidebar__context {
    margin-bottom: 12px;
    padding: 7px 8px;
    border-radius: 8px;
    background: var(--app-surface-muted);
    border: 1px solid var(--app-border);
}

.replia-sidebar__context p {
    margin: 0;
    font-size: 0.78rem;
    color: var(--app-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-sidebar__nav {
    display: grid;
    gap: 12px;
}

.replia-sidebar-section__title {
    margin: 0 0 5px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-sidebar-section__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 2px;
}

.replia-sidebar-item {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 6px 8px;
    border-radius: 6px;
    text-decoration: none;
    color: var(--app-text-muted);
    border-left: 3px solid transparent;
}

.replia-sidebar-item:hover {
    background: var(--app-surface-muted);
    color: var(--app-text);
}

.replia-sidebar-item--active {
    border-left-color: var(--app-accent);
    background: color-mix(in srgb, var(--app-accent) 12%, var(--app-surface));
    color: var(--app-text);
}

.replia-sidebar-item__icon {
    width: 0.95rem;
    height: 0.95rem;
}

.replia-sidebar-item__label {
    font-size: 0.83rem;
    font-weight: 520;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-sidebar-sub-items {
    list-style: none;
    margin: 0 0 0 14px;
    padding: 0;
    display: grid;
}

.replia-sidebar-sub-item {
    display: block;
    padding: 5px 8px;
    font-size: 0.76rem;
    color: var(--app-text-muted);
    text-decoration: none;
}

.replia-sidebar-sub-item--active {
    color: var(--app-text);
}

.replia-topbar-wrap {
    position: sticky;
    top: 0;
    z-index: 30;
}

.replia-topbar {
    min-height: 58px;
    padding: 8px 14px;
    display: grid;
    grid-template-columns: auto minmax(280px, 1fr) auto;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--app-border);
    background: var(--app-surface);
}

.replia-topbar__left {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.replia-topbar__context {
    min-width: 0;
    flex: 1;
}

.replia-topbar__menu-btn {
    display: none;
    flex-shrink: 0;
}

.replia-topbar__menu-btn.fi-icon-btn {
    margin: 0;
}

.replia-topbar__title {
    margin: 0;
    font-size: 0.85rem;
    color: var(--app-text);
    font-weight: 650;
}

.replia-topbar__subtitle {
    margin: 1px 0 0;
    font-size: 0.73rem;
    color: var(--app-text-muted);
}

.replia-topbar__subtitle--primary {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 650;
    line-height: 1.25;
    color: var(--app-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-command-search {
    position: relative;
}

.replia-command-search .fi-global-search {
    background: var(--app-surface-muted) !important;
    border: 1px solid var(--app-border) !important;
    border-radius: 8px !important;
}

.replia-command-search__hint {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.66rem;
    color: var(--app-text-muted);
    pointer-events: none;
}

.replia-topbar__right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.replia-topbar__create-label--compact {
    display: none;
}

.replia-topbar__create {
    text-decoration: none;
    border-radius: 6px;
    background: var(--app-accent);
    color: #fff;
    padding: 7px 10px;
    font-size: 0.78rem;
    font-weight: 600;
    width: auto;
    inline-size: max-content;
    display: inline-flex;
    align-items: center;
}

.replia-topbar__create:hover {
    background: var(--app-accent-hover);
}

.replia-topbar__logout-form {
    margin: 0;
}

.replia-topbar__logout {
    border: 1px solid var(--app-border);
    border-radius: 6px;
    background: var(--app-surface-muted);
    color: var(--app-text);
    padding: 7px 10px;
    font-size: 0.78rem;
    font-weight: 600;
}

.replia-topbar__logout:hover {
    background: var(--app-surface);
}

.replia-page {
    width: min(1700px, 100%);
    margin: 0 auto;
}

.replia-page .fi-page,
.replia-page .fi-main {
    max-width: none !important;
    padding: 0 !important;
}

.replia-dashboard .fi-header {
    display: none;
}

.replia-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 14px;
}

.replia-page-header__title {
    margin: 0;
    font-size: 1.95rem;
    color: var(--app-text);
    font-weight: 700;
}

.replia-page-header__subtitle {
    margin: 6px 0 0;
    font-size: 0.95rem;
    color: var(--app-text-muted);
}

.replia-page-header__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.replia-quick-action {
    text-decoration: none;
    border: 1px solid var(--app-border);
    background: var(--app-surface);
    color: var(--app-text);
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 0.84rem;
    font-weight: 600;
}

.replia-quick-action:hover {
    border-color: var(--app-accent);
}

.replia-info-rail {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.replia-info-rail span {
    background: var(--app-surface-muted);
    color: var(--app-text-muted);
    border: 1px solid var(--app-border);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.75rem;
}

.replia-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.replia-summary-card {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 10px;
    padding: 12px;
}

.replia-summary-card__label {
    margin: 0;
    font-size: 0.8rem;
    color: var(--app-text-muted);
}

.replia-summary-card__value {
    margin: 8px 0 0;
    font-size: 2rem;
    line-height: 1;
    color: var(--app-text);
    font-weight: 700;
}

.replia-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    gap: 12px;
}

.replia-work-section {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 10px;
    padding: 12px;
    display: grid;
    gap: 12px;
}

.replia-work-section--secondary {
    background: var(--app-surface-muted);
}

.replia-work-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    border-bottom: 1px solid var(--app-border);
    padding-bottom: 8px;
}

.replia-work-section__header h2 {
    margin: 0;
    font-size: 1.02rem;
    color: var(--app-text);
}

.replia-work-section__header a {
    font-size: 0.78rem;
    color: var(--app-text-muted);
    text-decoration: none;
}

.replia-work-block h3 {
    margin: 0 0 6px;
    font-size: 0.86rem;
    color: var(--app-text-muted);
    font-weight: 650;
}

.replia-case-list {
    display: grid;
}

.replia-list-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    text-decoration: none;
    padding: 9px 0;
    border-bottom: 1px solid var(--app-border);
}

.replia-list-item:last-child {
    border-bottom: 0;
}

.replia-list-item__title {
    margin: 0;
    font-size: 0.92rem;
    color: var(--app-text);
    font-weight: 600;
}

.replia-list-item__meta {
    margin: 3px 0 0;
    font-size: 0.8rem;
    color: var(--app-text-muted);
}

.replia-badge {
    border: 1px solid var(--app-border);
    color: var(--app-text-muted);
    font-size: 0.7rem;
    border-radius: 999px;
    padding: 2px 8px;
}

.replia-badge--danger {
    border-color: color-mix(in srgb, var(--app-danger) 45%, var(--app-border));
    color: var(--app-danger);
}

.replia-badge--warning {
    border-color: color-mix(in srgb, var(--app-warning) 45%, var(--app-border));
    color: var(--app-warning);
}

.replia-list-item--risk .replia-list-item__title {
    color: var(--app-danger);
}

@media (max-width: 1100px) {
    .replia-shell {
        grid-template-columns: 1fr;
    }

    .replia-shell__main {
        grid-column: 1;
        grid-row: 1;
    }

    /* Mobile: take Livewire sidebar host out of grid so main/topbar are full-width. */
    .replia-sidebar-root,
    .replia-shell > div:has(> .replia-sidebar) {
        position: absolute;
        width: 0;
        height: 0;
        margin: 0;
        padding: 0;
        overflow: visible;
        border: 0;
        grid-column: 1;
        grid-row: 1;
    }

    .replia-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: 260px;
        transform: translateX(-100%);
        transition: transform 180ms ease;
    }

    .replia-sidebar--open {
        transform: translateX(0);
    }

    .replia-sidebar__mobile-close,
    .replia-topbar__menu-btn {
        display: inline-flex;
    }

    .replia-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .replia-topbar-wrap {
        position: sticky;
        top: 0;
        z-index: 30;
    }

    .replia-topbar {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        padding: 8px 10px;
    }

    .replia-topbar__search {
        display: none;
    }

    .replia-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .replia-page-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .replia-topbar__create-label--full {
        display: none;
    }

    .replia-topbar__create-label--compact {
        display: inline;
    }

    .replia-topbar__create {
        padding: 7px 8px;
        font-size: 0.75rem;
    }
}

@media (max-width: 560px) {
    .replia-summary-grid {
        grid-template-columns: 1fr;
    }
}

/* Replia utility primitives */
.replia-app {
    background: var(--app-bg);
    color: var(--app-text);
}

.replia-surface {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 10px;
}

.replia-card {
    background: var(--app-surface-raised);
    border: 1px solid var(--app-border-soft);
    border-radius: 10px;
    padding: 12px;
}

.replia-empty-state {
    padding: 10px 0 2px 10px;
    border-left: 2px solid var(--app-border);
    color: var(--app-text-muted);
}

.replia-button-primary {
    background: var(--app-accent);
    color: #fff;
    border: 1px solid var(--app-accent);
    border-radius: 8px;
}

.replia-button-secondary {
    background: var(--app-surface-muted);
    color: var(--app-text);
    border: 1px solid var(--app-border);
    border-radius: 8px;
}

.replia-quick-create {
    position: relative;
    display: inline-flex;
}

.replia-quick-create__menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 190px;
    z-index: 60;
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.24);
    padding: 6px;
}

.replia-quick-create__item {
    display: block;
    text-decoration: none;
    color: var(--app-text);
    font-size: 0.82rem;
    border-radius: 6px;
    padding: 8px 9px;
}

.replia-quick-create__item:hover {
    background: var(--app-surface-muted);
}

.replia-sidebar__context p + p {
    margin-top: 3px;
    font-size: 0.72rem;
}

/* Ensure command search has token-driven contrast in both modes */
.replia-global-search .fi-input-wrp {
    background: var(--app-surface-muted) !important;
    border: 1px solid var(--app-border) !important;
    color: var(--app-text) !important;
}

.replia-global-search .fi-input {
    color: var(--app-text) !important;
    font-size: 0.86rem !important;
}

.replia-global-search .fi-input::placeholder {
    color: var(--app-text-soft) !important;
    opacity: 1;
}

.replia-global-search .fi-input-wrp:focus-within,
.replia-command-search .fi-global-search:focus-within {
    border-color: var(--app-accent) !important;
    box-shadow: 0 0 0 3px var(--app-focus-ring) !important;
}

/* Resource/table/forms inherit shell identity */
.replia-app-shell .fi-resource .fi-header-heading {
    color: var(--app-text-strong) !important;
    font-size: 1.7rem !important;
}

.replia-app-shell .fi-resource .fi-header-subheading {
    color: var(--app-text-muted) !important;
    font-size: 0.9rem !important;
}

.replia-app-shell .fi-resource .fi-section,
.replia-app-shell .fi-resource .fi-in,
.replia-app-shell .fi-resource .fi-fo,
.replia-app-shell .fi-resource .fi-ta-table {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
}

.replia-app-shell .fi-resource .fi-section-heading {
    color: var(--app-text-strong) !important;
    font-size: 0.95rem !important;
}

.replia-app-shell .fi-resource .fi-ta-header-toolbar {
    background: var(--app-surface-muted) !important;
    border: 1px solid var(--app-border-soft) !important;
    border-radius: 8px !important;
    padding: 8px !important;
}

.replia-app-shell .fi-resource .fi-ta-table thead th {
    background: var(--app-surface-muted) !important;
    color: var(--app-text-muted) !important;
}

.replia-app-shell .fi-resource .fi-ta-table tbody td {
    color: var(--app-text) !important;
    font-size: 0.85rem !important;
}

.replia-app-shell .fi-resource .fi-ta-table tbody tr:hover {
    background: var(--app-accent-soft) !important;
}

/* Notes tables (title + body columns): enforce ~15% / ~48% split; header width alone does not always constrain cells. */
.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) {
    table-layout: fixed;
    width: 100%;
}

.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-header-cell-title,
.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-cell-title {
    width: 15%;
    max-width: 15%;
}

.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-header-cell-body,
.replia-app-shell .fi-resource .fi-ta-table:has(.fi-ta-header-cell-title):has(.fi-ta-header-cell-body) .fi-ta-cell-body {
    width: 48%;
}

.replia-app-shell .fi-resource .fi-fo-field-wrp-label {
    color: var(--app-text-muted) !important;
    font-size: 0.82rem !important;
}

.replia-app-shell .fi-resource .fi-input-wrp,
.replia-app-shell .fi-resource .fi-select-input,
.replia-app-shell .fi-resource .fi-textarea {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
}

.replia-app-shell .fi-resource .fi-input:focus,
.replia-app-shell .fi-resource .fi-select-input:focus,
.replia-app-shell .fi-resource .fi-textarea:focus {
    border-color: var(--app-accent) !important;
    box-shadow: 0 0 0 3px var(--app-focus-ring) !important;
}

/* -------------------------------------------------------------------------- */
/* QA correction layer: token-only shell, dashboard, calendar, case file       */
/* -------------------------------------------------------------------------- */

:root {
    --app-shell: #ffffff;
    --app-sidebar: #f1f5f9;
    --app-surface-raised: #ffffff;
    --app-surface-muted: #f1f5f9;
}

.dark {
    --app-shell: #0f172a;
    --app-sidebar: #0f172a;
    --app-surface-raised: #1e293b;
    --app-surface-muted: #162033;
}

.fi-body,
.fi-layout,
.fi-main,
.fi-main-ctn,
.replia-app-shell .fi-layout,
.replia-app-shell .fi-body {
    background: var(--app-bg) !important;
    color: var(--app-text) !important;
}

.fi-sidebar,
.replia-sidebar,
.replia-topbar {
    background: var(--app-sidebar) !important;
    color: var(--app-text) !important;
    border-color: var(--app-border-soft) !important;
}

.fi-topbar,
.fi-section,
.fi-wi-widget:not(.fi-wi-stats-overview),
.fi-in-entry,
.fi-modal-window,
.fi-dropdown-panel,
.fi-select-dropdown,
.fi-ta-filters-dropdown {
    background: var(--app-surface) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.fi-section-header,
.fi-modal-header,
.fi-ta-header,
.fi-ta-header-toolbar,
.fi-ta-table thead th {
    background: var(--app-surface-muted) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text-muted) !important;
}

.fi-header-heading,
.fi-section-heading,
.fi-modal-heading,
.fi-ta-header-heading,
.fi-ta-empty-state-heading,
.replia-page-title,
.replia-page-header__title {
    color: var(--app-text-strong) !important;
}

.fi-header-subheading,
.fi-fo-field-wrp-label,
.fi-fo-field-wrp-helper-text,
.fi-in-entry-label,
.fi-ta-empty-state-description,
.replia-page-subtitle,
.replia-page-header__subtitle {
    color: var(--app-text-muted) !important;
}

.fi-ta-table {
    background: var(--app-surface) !important;
    border: 1px solid var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.fi-ta-table tbody td,
.fi-in-entry-content,
.fi-dropdown-list-item,
.fi-select-option,
.fi-pagination,
.fi-ta-text {
    color: var(--app-text) !important;
}

.fi-ta-table tbody tr {
    border-color: var(--app-border-soft) !important;
}

.fi-ta-table tbody tr:hover {
    background: var(--app-surface-muted) !important;
}

.fi-input,
.fi-select-input,
.fi-textarea,
.fi-input-wrp,
.fi-fo-field-wrp .fi-input-wrp {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
}

.fi-input::placeholder,
.fi-textarea::placeholder {
    color: var(--app-text-soft) !important;
}

.fi-link,
.replia-work-section__header a,
.replia-section-header a {
    color: var(--app-accent) !important;
}

.fi-tabs,
.replia-tabs {
    background: var(--app-surface) !important;
    border-color: var(--app-border-soft) !important;
}

.fi-tabs-item {
    color: var(--app-text-muted) !important;
}

.fi-tabs-item.fi-active {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
    border-color: var(--app-accent) !important;
}

.fi-pagination-item.fi-active .fi-pagination-item-btn {
    background: var(--app-accent-soft) !important;
    color: var(--app-accent) !important;
    border-color: color-mix(in srgb, var(--app-accent) 38%, var(--app-border-soft)) !important;
}

.fi-pagination-item:not(.fi-disabled) .fi-pagination-item-btn:hover {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
}

.replia-app-shell .fi-sidebar-item.fi-active .fi-sidebar-item-button {
    background: var(--app-accent-soft) !important;
    border-inline-start: 3px solid var(--app-accent) !important;
    color: var(--app-text-strong) !important;
}

.replia-app-shell .fi-sidebar-item-button:hover,
.replia-app-shell .fi-sidebar-group-button:hover {
    background: var(--app-accent-soft) !important;
}

.fi-badge-color-primary {
    background: var(--app-accent-soft) !important;
    color: var(--app-accent) !important;
    border-color: color-mix(in srgb, var(--app-accent) 32%, var(--app-border)) !important;
}

.fi-badge-color-gray {
    background: var(--app-surface-muted) !important;
    color: var(--app-text-muted) !important;
    border-color: var(--app-border-soft) !important;
}

/* Filament StatsOverviewWidget styles: public/css/filament-stats-overview-overrides.css (loads after theme) */

.replia-page {
    width: min(1700px, 100%);
    margin: 0 auto;
    color: var(--app-text);
}

.replia-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1rem;
}

.replia-page-title,
.replia-page-header__title {
    margin: 0;
    font-size: clamp(1.55rem, 2vw, 2rem);
    line-height: 1.1;
    font-weight: 750;
}

.replia-page-subtitle,
.replia-page-header__subtitle {
    margin: 0.35rem 0 0;
    font-size: 0.95rem;
}

.replia-card,
.replia-section-card,
.replia-dashboard-section,
.replia-summary-card,
.replia-work-section,
.my-calendar-day,
.my-calendar-toolbar,
.my-calendar-agenda,
.replia-modal-card {
    background: var(--app-surface-raised) !important;
    border: 1px solid var(--app-border-soft) !important;
    border-radius: 0.75rem !important;
    color: var(--app-text) !important;
}

.replia-section-card,
.replia-dashboard-section,
.replia-card {
    padding: 0.9rem;
}

.replia-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(20rem, 0.9fr);
    gap: 1rem;
    align-items: start;
}

.replia-dashboard-column {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.replia-dashboard-section {
    display: grid;
    gap: 0.75rem;
}

.replia-section-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    border-bottom: 1px solid var(--app-border-soft);
    padding-bottom: 0.65rem;
}

.replia-section-header h2,
.replia-work-section__header h2 {
    margin: 0;
    color: var(--app-text-strong);
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 700;
}

.replia-section-header p {
    margin: 0.2rem 0 0;
    color: var(--app-text-muted);
    font-size: 0.82rem;
}

.replia-section-header__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
}

.replia-section-header__links a {
    color: var(--app-accent);
    text-decoration: none;
}

.replia-section-header__links a:hover {
    color: var(--app-accent-hover);
    text-decoration: underline;
}

.replia-section-header__links-sep {
    color: var(--app-text-muted);
    font-weight: 500;
}

.replia-list,
.replia-case-list {
    display: grid;
    gap: 0.5rem;
}

.replia-list-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.65rem;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.6rem;
    background: var(--app-surface);
    color: inherit;
    transition:
        background-color 140ms ease,
        border-color 140ms ease,
        box-shadow 140ms ease;
}

.replia-list-item:hover {
    background: var(--app-surface-muted);
    border-color: var(--app-border);
}

.replia-list-item__main {
    min-width: 0;
}

.replia-list-item__title {
    color: var(--app-text-strong);
    overflow: hidden;
    text-overflow: ellipsis;
}

.replia-list-item__meta {
    color: var(--app-text-muted);
}

.replia-badge {
    flex: 0 0 auto;
    background: var(--app-surface-muted);
    border-color: var(--app-border-soft);
    color: var(--app-text-muted);
    white-space: nowrap;
}

.replia-badge--danger,
.replia-list-item--risk .replia-list-item__title {
    color: var(--app-danger);
}

.replia-fact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.65rem;
}

.replia-fact {
    border: 1px solid var(--app-border-soft);
    border-radius: 0.6rem;
    background: var(--app-surface);
    padding: 0.65rem 0.75rem;
}

.replia-detail-list {
    display: grid;
    gap: 0.5rem;
}

.replia-detail-list > div,
.replia-form-field {
    display: grid;
    gap: 0.2rem;
}

.replia-form-label,
.replia-detail-label {
    margin: 0;
    color: var(--app-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.replia-form-help,
.replia-detail-muted {
    margin: 0;
    color: var(--app-text-muted);
    font-size: 0.8rem;
}

.replia-detail-value {
    margin: 0;
    color: var(--app-text);
}

.replia-note-body {
    white-space: pre-wrap;
    border-radius: 0.65rem;
    background: var(--app-surface-muted);
    padding: 0.75rem;
}

.replia-media-player {
    display: grid;
    gap: 1rem;
}

.replia-media-player__stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.replia-media-player__stage--video {
    overflow: hidden;
    border-radius: 0.75rem;
    background: #000;
}

.replia-media-player__video {
    display: block;
    width: 100%;
    max-height: 70vh;
    margin-inline: auto;
    object-fit: contain;
    background: #000;
}

.replia-media-player__stage--audio {
    width: 100%;
    max-width: 28rem;
    margin-inline: auto;
    padding: 1.25rem 1rem;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.75rem;
    background: var(--app-surface-muted);
}

.replia-media-player__audio {
    display: block;
    width: 100%;
}

.replia-media-player__hint {
    width: 100%;
    margin: 0.65rem 0 0;
    padding: 0 0.75rem 0.75rem;
}

.replia-media-player__facts {
    padding-top: 0.25rem;
    border-top: 1px solid var(--app-border-soft);
}

.replia-document-viewer__inline-trigger {
    cursor: zoom-in;
    border-radius: 0.75rem;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.replia-document-viewer__inline-trigger:hover {
    box-shadow: 0 0 0 1px var(--app-border-soft);
}

.replia-document-viewer__inline {
    overflow: hidden;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.75rem;
    background: var(--app-surface-muted);
}

.replia-document-viewer__filename {
    margin: 0;
    padding: 0.65rem 0.85rem 0;
}

.replia-document-viewer__pdf-shell {
    overflow: hidden;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.5rem;
    background: var(--app-surface-muted);
}

.replia-document-viewer__pdf-shell--inline {
    padding: 0.35rem;
}

.replia-document-viewer__pdf-shell--modal {
    display: grid;
    gap: 0.65rem;
    border-color: var(--app-border-soft);
    background: var(--app-surface-muted);
}

.replia-document-viewer__pdf-scroll {
    overflow: auto;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.35rem;
    background: var(--app-surface);
}

.replia-document-viewer__stage--inline .replia-document-viewer__pdf-scroll {
    flex: 1;
    width: 100%;
    min-height: min(280px, 35vh);
    max-height: min(420px, 45vh);
}

.replia-document-viewer__stage--modal .replia-document-viewer__pdf-scroll {
    max-height: 72vh;
    background: var(--app-surface-muted);
    padding: 1rem;
}

.replia-document-viewer__pdf-pages {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.replia-document-viewer__pdf-page {
    display: flex;
    justify-content: center;
    width: 100%;
}

.replia-document-viewer__pdf-canvas {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 0.25rem;
    background: var(--app-surface);
}

.replia-document-viewer__pdf-status {
    margin: 0;
    padding: 0.75rem;
    text-align: center;
}

.replia-document-viewer__pdf-status--error {
    color: var(--app-danger, #b91c1c);
}

.replia-document-viewer__toolbar-label {
    padding: 0.35rem 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.2;
}

.replia-document-viewer__stage--inline .replia-document-viewer__image-scroll {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: min(280px, 35vh);
    max-height: min(420px, 45vh);
    padding: 0.75rem;
    overflow: hidden;
}

.replia-document-viewer__image {
    display: block;
    max-width: 100%;
    max-height: min(380px, 40vh);
    object-fit: contain;
    transform-origin: top center;
}

.replia-document-viewer__stage--modal {
    display: grid;
    gap: 0.75rem;
}

.replia-document-viewer__image-shell--modal {
    display: grid;
    gap: 0.65rem;
}

.replia-document-viewer__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.replia-document-viewer__toolbar-btn {
    border: 1px solid var(--app-border-soft);
    border-radius: 0.5rem;
    background: var(--app-surface-muted);
    color: inherit;
    padding: 0.35rem 0.7rem;
    font-size: 0.8125rem;
    line-height: 1.2;
    cursor: pointer;
}

.replia-document-viewer__toolbar-btn:hover {
    border-color: var(--app-border-strong, var(--app-border-soft));
    background: var(--app-surface, #fff);
}

.replia-document-viewer__image-scroll--modal {
    overflow: auto;
    max-height: 72vh;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.5rem;
    background: var(--app-surface-muted);
    padding: 1rem;
}

.replia-document-viewer__image-scroll--modal .replia-document-viewer__image {
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
    margin-inline: auto;
}

.replia-document-viewer__fallback {
    display: grid;
    gap: 0.5rem;
    padding: 1rem;
}

.replia-log-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.replia-log-filter-btn {
    border-radius: 999px;
}

.replia-log-section .fi-section-content {
    display: grid;
    gap: 0.75rem;
}

.replia-log-entry {
    margin-bottom: 0;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.8rem;
    background: var(--app-surface);
    padding: 0.9rem;
}

.replia-log-entry__header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.65rem;
}

.replia-log-entry__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}

.replia-log-entry__timestamp {
    font-size: 0.78rem;
    color: var(--app-text-muted);
}

.replia-log-entry__badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--app-border-soft);
    background: var(--app-surface-muted);
    color: var(--app-text-strong);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    padding: 0.12rem 0.5rem;
    text-transform: capitalize;
}

.replia-log-entry__actor {
    font-size: 0.8rem;
    color: var(--app-text);
}

.replia-log-entry__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.replia-log-entry__reverted-by {
    font-size: 0.75rem;
    color: var(--app-text-muted);
}

.replia-log-entry__body {
    margin-top: 0.55rem;
    display: grid;
    gap: 0.3rem;
}

.replia-log-entry__changes {
    font-size: 0.76rem;
    color: var(--app-text-muted);
}

.replia-log-empty {
    padding: 0.5rem 0.1rem;
}

.app-log-entry.reverted {
    text-decoration: none;
    opacity: 0.78;
}

/* Keep Agendas cards readable in light mode. */
.workflow-agenda-toolbar,
.workflow-agenda-row {
    background: var(--app-surface) !important;
    border: 1px solid var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.replia-empty-state,
.app-empty-state {
    background: var(--app-surface-muted) !important;
    border: 1px dashed var(--app-border) !important;
    border-radius: 0.65rem !important;
    color: var(--app-text-muted) !important;
    padding: 0.75rem !important;
}

.app-empty-state__title {
    color: var(--app-text-strong) !important;
}

.app-empty-state__text {
    color: var(--app-text-muted) !important;
}

.replia-table {
    color: var(--app-text);
}

.my-calendar-toolbar {
    padding: 0.8rem;
}

.my-calendar-filters {
    gap: 0.4rem;
}

.my-calendar-day {
    min-height: 18rem;
    max-height: none;
    padding: 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.my-calendar-day-body {
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    flex: 1 1 auto;
}

.my-calendar-day-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    color: var(--app-text-strong);
}

.my-calendar-day-header span:last-child {
    color: var(--app-text-muted);
    font-size: 0.72rem;
    font-weight: 600;
}

.my-calendar-day-items {
    gap: 0.55rem;
    min-height: 0;
    flex: 1 1 auto;
    display: grid;
    grid-auto-rows: min-content;
}

.my-calendar-day-footer {
    flex: 0 0 auto;
    margin-top: 0.4rem;
}

.my-calendar-item,
.replia-calendar-event {
    min-width: 0;
    text-decoration: none;
}

.my-calendar-item-time,
.my-calendar-item-title,
.my-calendar-item-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-calendar-item-kicker {
    margin: 0;
    color: var(--app-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.my-calendar-item-time {
    color: var(--app-text-muted);
    font-weight: 650;
    font-size: 0.75rem;
}

.my-calendar-item-title {
    color: var(--app-text-strong);
    font-size: 0.84rem;
    font-weight: 700;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.my-calendar-item-meta {
    color: var(--app-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.my-calendar-more-button {
    width: 100%;
    border: 1px dashed var(--app-border);
    border-radius: 0.55rem;
    background: var(--app-surface-muted);
    color: var(--app-accent);
    padding: 0.45rem 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-align: left;
}

/* Month-view: busy days collapse into a compact "X meetings, Y hearings, Z reps available" pill. */
.my-calendar-day-summary {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.6rem 0.65rem;
    border: 1px solid var(--app-border-soft);
    border-radius: 0.55rem;
    background: var(--app-surface-muted);
    color: var(--app-text);
    text-align: left;
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.my-calendar-day-summary:hover,
.my-calendar-day-summary:focus-visible {
    border-color: color-mix(in srgb, var(--app-accent) 35%, var(--app-border));
    background: color-mix(in srgb, var(--app-accent) 6%, var(--app-surface));
}

.my-calendar-day-summary__counts {
    color: var(--app-text-strong);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.25;
}

.my-calendar-day-summary__cta {
    color: var(--app-accent);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.unit-status-chip {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
}

.my-calendar-agenda {
    display: grid;
    gap: 1rem;
    padding: 0.9rem;
}

.my-calendar-agenda-day {
    display: grid;
    gap: 0.5rem;
}

.my-calendar-agenda-day h2 {
    margin: 0;
    color: var(--app-text-strong);
    font-size: 0.95rem;
}

.replia-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: center;
    background: rgba(15, 23, 42, 0.5);
    padding: 1rem;
}

.replia-modal-card {
    width: min(42rem, 100%);
    max-height: min(42rem, 88vh);
    overflow: auto;
    padding: 1rem;
    display: grid;
    gap: 0.75rem;
}

.my-calendar-expanded-list {
    display: grid;
    gap: 0.5rem;
}

.app-casefile-page .fi-header {
    background: var(--app-surface-raised) !important;
    border: 1px solid var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.app-casefile-page .fi-section {
    background: var(--app-surface-raised) !important;
    border-color: var(--app-border-soft) !important;
    /* Match .app-casefile-page .fi-header (12px); was 10px via .fi-resource .fi-section */
    border-radius: 12px !important;
}

.app-casefile-page .fi-section.fi-section-has-header > .fi-section-header {
    border-top-left-radius: 12px !important;
    border-top-right-radius: 12px !important;
}

.app-casefile-page .fi-in {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
    gap: 1rem;
    width: 100% !important;
    max-width: none !important;
}

.app-casefile-page .fi-section-content-ctn {
    width: 100% !important;
    max-width: none !important;
}

.app-casefile-page .fi-in > :only-child {
    grid-column: 1 / -1;
    width: 100% !important;
    max-width: none !important;
}

.app-casefile-page .fi-in-entry-wrp {
    border-bottom-color: var(--app-border-soft) !important;
}

.app-casefile-page .fi-in-entry-label {
    color: var(--app-text-muted) !important;
}

.app-casefile-page .fi-in-entry-content {
    color: var(--app-text) !important;
}

.app-casefile-page .fi-in-entry,
.app-casefile-page .fi-in-entry-wrp,
.app-casefile-page .fi-in-entry-content-ctn {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.app-casefile-page .fi-in-entry {
    border: 0 !important;
    padding: 0 !important;
}

.app-casefile-page .fi-in-entry-wrp {
    border-bottom: 1px solid var(--app-border-soft) !important;
    padding: 0.55rem 0 !important;
}

.app-casefile-page .fi-in-entry-label-ctn {
    margin-bottom: 0.2rem !important;
}

.app-casefile-page .fi-tabs {
    margin-top: 0.75rem;
    padding: 0.35rem;
    border: 1px solid var(--app-border-soft) !important;
    border-radius: 0.75rem;
    background: var(--app-surface-raised) !important;
}


@media (max-width: 860px) {
    .replia-page-header,
    .replia-section-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* -------------------------------------------------------------------------- */
/* Visual refinement layer: calmer hierarchy and reduced border noise          */
/* -------------------------------------------------------------------------- */

:root {
    --app-bg: #f8fafc;
    --app-shell: #ffffff;
    --app-sidebar: #f1f5f9;
    --app-surface: #ffffff;
    --app-surface-raised: #ffffff;
    --app-surface-muted: #f6f8fb;
    --app-surface-inset: #eef2f7;
    --app-border: #cbd5e1;
    --app-border-soft: #e5eaf1;
    --app-border-subtle: rgba(148, 163, 184, 0.22);
    --app-shadow-soft: 0 1px 2px rgba(15, 23, 42, 0.04), 0 14px 32px rgba(15, 23, 42, 0.06);
    --app-shadow-panel: 0 10px 30px rgba(15, 23, 42, 0.07);
}

.dark {
    --app-bg: #0b1120;
    --app-shell: #0f172a;
    --app-sidebar: #0f172a;
    --app-surface: #172033;
    --app-surface-raised: #1e293b;
    --app-surface-muted: #263449;
    --app-surface-inset: #111827;
    --app-border: rgba(148, 163, 184, 0.26);
    --app-border-soft: rgba(148, 163, 184, 0.14);
    --app-border-subtle: rgba(148, 163, 184, 0.10);
    --app-shadow-soft: 0 1px 2px rgba(0, 0, 0, 0.16), 0 18px 40px rgba(0, 0, 0, 0.18);
    --app-shadow-panel: 0 18px 42px rgba(0, 0, 0, 0.20);
}

.fi-body,
.fi-layout,
.fi-main,
.fi-main-ctn,
.replia-app-shell .fi-layout,
.replia-app-shell .fi-body {
    background: var(--app-bg) !important;
}

.replia-shell__content {
    padding: 24px 28px 32px;
}

.replia-topbar {
    min-height: 54px;
    background: color-mix(in srgb, var(--app-shell) 92%, var(--app-surface)) !important;
    border-bottom: 1px solid var(--app-border-subtle) !important;
    box-shadow: 0 1px 0 var(--app-border-subtle);
}

.replia-command-search .fi-global-search,
.replia-global-search .fi-input-wrp {
    background: color-mix(in srgb, var(--app-surface-muted) 74%, transparent) !important;
    border-color: var(--app-border-subtle) !important;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--app-surface) 45%, transparent) !important;
}

.replia-topbar__create {
    background: var(--app-accent) !important;
    border: 1px solid color-mix(in srgb, var(--app-accent) 65%, var(--app-border)) !important;
    color: #ffffff !important;
    box-shadow: none;
    padding: 7px 11px;
}

.replia-topbar__create:hover {
    background: var(--app-accent-hover) !important;
    border-color: var(--app-accent-hover) !important;
}

.replia-quick-create__menu {
    background: var(--app-surface-raised);
    border-color: var(--app-border-soft);
    box-shadow: var(--app-shadow-panel);
}

.replia-sidebar {
    background: var(--app-sidebar) !important;
    border-right: 1px solid var(--app-border-subtle) !important;
}

.replia-sidebar__inner {
    padding: 12px 10px 16px;
}

.replia-sidebar__context {
    background: color-mix(in srgb, var(--app-surface-muted) 70%, transparent);
    border-color: var(--app-border-subtle);
}

.replia-sidebar-section__title {
    color: var(--app-text-soft);
    font-size: 0.62rem;
}

.replia-sidebar-item {
    min-height: 32px;
    color: var(--app-text-muted);
    border-left-width: 2px;
}

.replia-sidebar-item__icon {
    opacity: 0.74;
}

.replia-sidebar-item--active {
    background: color-mix(in srgb, var(--app-accent) 10%, transparent);
    color: var(--app-text-strong);
}

.replia-sidebar-item--active .replia-sidebar-item__icon {
    opacity: 0.9;
}

.replia-page-header {
    margin-bottom: 20px;
}

.replia-page-header__title {
    font-size: clamp(1.65rem, 2vw, 2rem);
    letter-spacing: -0.025em;
}

.replia-page-header__subtitle {
    color: var(--app-text-muted);
}

.replia-info-rail {
    margin-bottom: 20px;
}

.replia-info-rail span {
    background: transparent;
    border-color: var(--app-border-subtle);
    color: var(--app-text-muted);
}

.replia-summary-grid {
    gap: 12px;
    margin-bottom: 24px;
}

.replia-summary-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, var(--app-surface-raised), color-mix(in srgb, var(--app-surface-raised) 86%, var(--app-surface-muted))) !important;
    border-color: var(--app-border-subtle) !important;
    box-shadow: var(--app-shadow-soft);
    padding: 16px 18px;
}

.replia-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 2px;
    background: color-mix(in srgb, var(--app-accent) 70%, transparent);
    opacity: 0.75;
}

.replia-summary-card__label {
    font-size: 0.76rem;
    font-weight: 650;
}

.replia-summary-card__value {
    margin-top: 8px;
    font-size: clamp(1.55rem, 2.2vw, 2rem);
    letter-spacing: -0.035em;
}

.replia-dashboard-grid {
    gap: 24px;
}

.replia-dashboard-column {
    gap: 24px;
}

.replia-dashboard-section,
.replia-card,
.replia-section-card,
.replia-work-section {
    border-color: var(--app-border-subtle) !important;
    box-shadow: var(--app-shadow-soft);
}

.replia-dashboard-section {
    padding: 18px;
    gap: 14px;
}

.replia-dashboard-section--primary {
    background: var(--app-surface-raised) !important;
}

.replia-dashboard-section--secondary {
    background: color-mix(in srgb, var(--app-surface-raised) 74%, var(--app-surface-muted)) !important;
    border-color: color-mix(in srgb, var(--app-border-subtle) 65%, transparent) !important;
    box-shadow: none;
}

.replia-section-header {
    padding-bottom: 12px;
    border-bottom-color: var(--app-border-subtle);
}

.replia-section-header h2 {
    font-size: 0.98rem;
    letter-spacing: -0.01em;
}

.replia-section-header p {
    color: var(--app-text-soft);
    font-size: 0.8rem;
}

.replia-section-header a {
    align-self: flex-start;
    color: var(--app-accent) !important;
    font-size: 0.78rem;
    font-weight: 650;
    text-decoration: none;
}

.replia-section-header a:hover {
    color: var(--app-accent-hover) !important;
}

.replia-case-list,
.replia-list {
    gap: 0;
}

.replia-list-item {
    position: relative;
    min-width: 0;
    padding: 12px 2px;
    border: 0;
    border-bottom: 1px solid var(--app-border-subtle);
    border-radius: 0;
    background: transparent;
    transition: background-color 140ms ease, padding-inline 140ms ease;
}

.replia-list-item:last-child {
    border-bottom: 0;
}

.replia-list-item:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 62%, transparent);
    border-color: var(--app-border-subtle);
    border-radius: 8px;
    padding-inline: 10px;
}

.replia-dashboard-section--secondary .replia-list-item {
    padding-block: 10px;
}

.replia-dashboard-section--secondary .replia-list-item:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 46%, transparent);
}

.replia-list-item__main {
    min-width: 0;
    overflow: hidden;
}

.replia-list-item__title {
    max-width: 100%;
    font-size: 0.9rem;
    line-height: 1.35;
    white-space: nowrap;
}

.replia-list-item__meta {
    margin-top: 4px;
    color: var(--app-text-soft);
    font-size: 0.78rem;
    line-height: 1.35;
}

.replia-dashboard-section--secondary .replia-list-item__title {
    font-size: 0.86rem;
    font-weight: 620;
}

.replia-dashboard-section--secondary .replia-list-item__meta {
    font-size: 0.76rem;
}

.replia-badge {
    background: color-mix(in srgb, var(--app-surface-muted) 80%, transparent);
    border: 0;
    color: var(--app-text-muted);
    padding: 2px 8px;
    font-size: 0.68rem;
    font-weight: 650;
}

.replia-badge--danger {
    background: var(--app-danger-soft);
    color: var(--app-danger);
}

.replia-empty-state,
.app-empty-state {
    border: 0 !important;
    border-left: 2px solid var(--app-border-subtle) !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 10px 0 10px 12px !important;
}

.fi-ta-table {
    border-color: var(--app-border-subtle) !important;
    box-shadow: none !important;
}

.fi-ta-table thead th {
    background: color-mix(in srgb, var(--app-surface-muted) 64%, transparent) !important;
}

.fi-ta-table tbody tr {
    border-color: var(--app-border-subtle) !important;
}

.fi-ta-table tbody tr:hover,
.replia-app-shell .fi-resource .fi-ta-table tbody tr:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 58%, transparent) !important;
}

.fi-ta-header-toolbar,
.replia-app-shell .fi-resource .fi-ta-header-toolbar {
    background: transparent !important;
    border-color: transparent !important;
    padding-inline: 0 !important;
}

/* Final UI audit corrections: keep accent and semantic color usage intentional. */
:root {
    --app-success: #15803d;
    --app-success-soft: #dcfce7;
    --app-warning: #b45309;
    --app-warning-soft: #fef3c7;
    --app-danger: #b91c1c;
    --app-danger-soft: #fee2e2;
    --app-info: #1d4ed8;
    --app-info-soft: #dbeafe;
    --app-neutral-chip: #475569;
    --app-neutral-chip-soft: #f1f5f9;
}

.dark {
    --app-success: #86efac;
    --app-success-soft: rgba(34, 197, 94, 0.18);
    --app-warning: #fde68a;
    --app-warning-soft: rgba(245, 158, 11, 0.18);
    --app-danger: #fca5a5;
    --app-danger-soft: rgba(248, 113, 113, 0.16);
    --app-info: #bfdbfe;
    --app-info-soft: rgba(59, 130, 246, 0.18);
    --app-neutral-chip: #cbd5e1;
    --app-neutral-chip-soft: rgba(100, 116, 139, 0.2);
}

.replia-global-search .fi-global-search-results-ctn {
    background: var(--app-surface-raised) !important;
    border: 1px solid var(--app-border-soft) !important;
    box-shadow: var(--app-shadow-panel) !important;
    color: var(--app-text) !important;
}

.replia-global-search .fi-global-search-result-link:hover,
.replia-quick-create__item:hover,
.fi-dropdown-list-item:hover {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
}

.replia-global-search .fi-global-search-result-heading,
.replia-global-search .fi-global-search-result-detail-value {
    color: var(--app-text) !important;
}

.replia-global-search .fi-global-search-result-group-header,
.replia-global-search .fi-global-search-result-detail-label,
.replia-global-search .fi-global-search-no-results-message {
    color: var(--app-text-muted) !important;
}

.replia-quick-create__menu {
    background: var(--app-surface-raised) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.replia-quick-create__item {
    color: var(--app-text-strong) !important;
}

.replia-quick-create__item:focus-visible {
    background: var(--app-accent-soft) !important;
    color: var(--app-text-strong) !important;
}

.fi-badge {
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    font-size: 0.68rem !important;
    font-weight: 650 !important;
}

.fi-badge-color-success {
    background: var(--app-success-soft) !important;
    border-color: color-mix(in srgb, var(--app-success) 32%, transparent) !important;
    color: var(--app-success) !important;
}

.fi-badge-color-warning {
    background: var(--app-warning-soft) !important;
    border-color: color-mix(in srgb, var(--app-warning) 32%, transparent) !important;
    color: var(--app-warning) !important;
}

.fi-badge-color-danger {
    background: var(--app-danger-soft) !important;
    border-color: color-mix(in srgb, var(--app-danger) 32%, transparent) !important;
    color: var(--app-danger) !important;
}

.fi-badge-color-info,
.fi-badge-color-blue,
.fi-badge-color-sky,
.fi-badge-color-cyan {
    background: var(--app-info-soft) !important;
    border-color: color-mix(in srgb, var(--app-info) 32%, transparent) !important;
    color: var(--app-info) !important;
}

.fi-badge-color-gray,
.fi-badge-color-slate,
.fi-badge-color-zinc,
.fi-badge-color-neutral,
.fi-badge-color-indigo,
.fi-badge-color-violet,
.fi-badge-color-purple,
.fi-badge-color-fuchsia,
.fi-badge-color-pink,
.fi-badge-color-rose {
    background: var(--app-neutral-chip-soft) !important;
    border-color: color-mix(in srgb, var(--app-neutral-chip) 22%, transparent) !important;
    color: var(--app-neutral-chip) !important;
}

.unit-status-chip--blue,
.unit-status-chip--cyan,
.unit-status-chip--teal {
    border-color: color-mix(in srgb, var(--app-info) 34%, transparent) !important;
    background: var(--app-info-soft) !important;
    color: var(--app-info) !important;
}

.unit-status-chip--green,
.unit-status-chip--emerald,
.unit-status-chip--lime {
    border-color: color-mix(in srgb, var(--app-success) 34%, transparent) !important;
    background: var(--app-success-soft) !important;
    color: var(--app-success) !important;
}

.unit-status-chip--amber,
.unit-status-chip--orange,
.unit-status-chip--yellow {
    border-color: color-mix(in srgb, var(--app-warning) 34%, transparent) !important;
    background: var(--app-warning-soft) !important;
    color: var(--app-warning) !important;
}

.unit-status-chip--red {
    border-color: color-mix(in srgb, var(--app-danger) 34%, transparent) !important;
    background: var(--app-danger-soft) !important;
    color: var(--app-danger) !important;
}

.unit-status-chip--gray,
.unit-status-chip--slate,
.unit-status-chip--zinc,
.unit-status-chip--indigo,
.unit-status-chip--pink {
    border-color: color-mix(in srgb, var(--app-neutral-chip) 22%, transparent) !important;
    background: var(--app-neutral-chip-soft) !important;
    color: var(--app-neutral-chip) !important;
}

.my-calendar-item,
.replia-calendar-event {
    box-shadow: none;
}

.my-calendar-item-kicker,
.my-calendar-item-time,
.my-calendar-item-meta {
    color: var(--app-text-muted) !important;
}

.my-calendar-item-title {
    color: var(--app-text-strong) !important;
}

/* Keep administrative custom cards aligned with the active theme surface. */
.settings-card,
.settings-item-card,
.system-health-list-item,
.system-health-table-wrap {
    background: var(--app-surface-raised) !important;
    border-color: var(--app-border-soft) !important;
    color: var(--app-text) !important;
}

.settings-item-card,
.system-health-list-item {
    box-shadow: none !important;
}

.settings-card .app-title,
.settings-item-card .app-title,
.system-health-page .app-title {
    color: var(--app-text-strong) !important;
}

.settings-card .app-muted,
.settings-item-card .app-muted,
.system-health-page .app-muted {
    color: var(--app-text-muted) !important;
}

.settings-definition-row {
    border-bottom-color: var(--app-border-soft) !important;
}

.settings-definition-row dt {
    color: var(--app-text-muted) !important;
}

.settings-definition-row dd,
.system-health-table tbody td {
    color: var(--app-text) !important;
}

.system-health-table thead th {
    color: var(--app-text-muted) !important;
}

@media (max-width: 860px) {
    .replia-shell__content {
        padding: 18px 16px 24px;
    }

    .replia-dashboard-grid,
    .replia-dashboard-column {
        gap: 18px;
    }

    .replia-dashboard-section {
        padding: 16px;
    }
}

/* --- Dashboard layout: work queue vs context/reference --- */
.replia-page-header--dashboard {
    margin-bottom: 1.75rem;
}

.replia-dashboard-work-queue {
    margin-bottom: 2rem;
}

.replia-dashboard-section--work-queue {
    padding: 1.35rem 1.35rem 1.15rem;
    gap: 1.1rem;
}

.replia-section-header--queue {
    padding-bottom: 1rem;
    margin-bottom: 0.25rem;
}

.replia-section-header__title {
    font-size: 1.05rem;
    font-weight: 650;
    letter-spacing: -0.02em;
    color: var(--app-text-strong);
}

.replia-section-header__lede {
    margin-top: 0.35rem;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--app-text-soft);
}

.replia-section-header__hint {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--app-text-muted);
}

.replia-section-header__hint--amber {
    color: var(--app-warning, #b45309);
    font-weight: 600;
}

.dark .replia-section-header__hint--amber {
    color: var(--app-warning-soft, #fcd34d);
}

.replia-section-header__link {
    align-self: flex-start;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--app-accent) !important;
    text-decoration: none;
    white-space: nowrap;
}

.replia-section-header__link:hover {
    color: var(--app-accent-hover) !important;
}

.replia-queue-body {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.replia-queue-group {
    padding-top: 1.15rem;
    margin-top: 1.15rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
}

.replia-queue-group:first-of-type {
    padding-top: 0;
    margin-top: 0;
    border-top: 0;
}

.replia-queue-group__label {
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin-bottom: 0.5rem;
}

.replia-queue-group__hint {
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--app-text-soft);
    margin: -0.15rem 0 0.55rem;
}

.replia-queue-empty {
    font-size: 0.875rem;
    color: var(--app-text-soft);
    padding: 0.35rem 0 0.5rem;
}

.replia-dashboard-section--work-queue .replia-list-item {
    padding-block: 0.65rem;
    padding-inline: 0.15rem;
}

.replia-dashboard-section--work-queue .replia-list-item__title {
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.replia-dashboard-section--work-queue .replia-list-item__meta {
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: var(--app-text-muted);
    line-height: 1.35;
    white-space: normal;
}

.replia-dashboard-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(252px, 300px);
    gap: 1.75rem;
    align-items: start;
}

.replia-dashboard-split__main,
.replia-dashboard-split__aside {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
}

.replia-dashboard-context {
    padding: 1rem 1rem 1.1rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 90%, transparent);
    background: color-mix(in srgb, var(--app-surface-muted) 35%, var(--app-surface-raised));
    box-shadow: none;
}

.replia-dashboard-context__heading {
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin: 0 0 0.65rem;
}

.replia-info-rail--stacked {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
}

.replia-info-rail--stacked span {
    display: block;
    padding: 0.35rem 0.5rem;
    border-radius: 0.35rem;
    border: 1px solid var(--app-border-subtle);
    font-size: 0.75rem;
    color: var(--app-text-muted);
    background: color-mix(in srgb, var(--app-surface-raised) 88%, transparent);
}

.replia-dashboard-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.replia-dashboard-shortcuts__pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 85%, transparent);
    padding: 0.2rem 0.55rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--app-text-muted);
    background: color-mix(in srgb, var(--app-surface-raised) 92%, transparent);
    text-decoration: none;
    transition: background-color 120ms ease, border-color 120ms ease;
}

.replia-dashboard-shortcuts__pill:hover {
    background: color-mix(in srgb, var(--app-surface-muted) 55%, transparent);
    border-color: var(--app-border-subtle);
    color: var(--app-text-strong);
}

.replia-dashboard-quick-actions {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid color-mix(in srgb, var(--app-border-subtle) 70%, transparent);
}

.replia-dashboard-quick-actions__link {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--app-accent);
    text-decoration: none;
}

.replia-dashboard-quick-actions__link:hover {
    color: var(--app-accent-hover);
    text-decoration: underline;
}

.replia-summary-grid--compact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0;
}

.replia-summary-card--compact {
    padding: 0.55rem 0.65rem !important;
    box-shadow: none !important;
}

.replia-summary-card--compact::before {
    opacity: 0.45;
}

.replia-summary-card--compact .replia-summary-card__label {
    font-size: 0.65rem;
    font-weight: 600;
    line-height: 1.25;
}

.replia-summary-card--compact .replia-summary-card__value {
    margin-top: 0.2rem;
    font-size: 1.15rem;
}

.replia-badge--compact {
    padding: 0.15rem 0.45rem;
    font-size: 0.625rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    border-radius: 0.3rem;
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: 0.1rem;
}

.replia-badge--muted {
    background: color-mix(in srgb, var(--app-surface-muted) 72%, transparent);
    color: var(--app-text-soft);
}

.replia-badge--today {
    background: color-mix(in srgb, var(--app-accent) 14%, var(--app-surface-muted));
    color: color-mix(in srgb, var(--app-accent) 55%, var(--app-text-strong));
}

@media (max-width: 1024px) {
    .replia-dashboard-split {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .replia-summary-grid--compact {
        grid-template-columns: 1fr 1fr;
    }
}

/* --- Matter workflow summary (view matter) --- */
.replia-workflow-summary {
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 96%, var(--app-surface-muted));
    padding: 1.1rem 1.15rem 1rem;
}

.dark .replia-workflow-summary {
    background: color-mix(in srgb, var(--app-surface-raised) 55%, transparent);
    border-color: color-mix(in srgb, var(--app-border-subtle) 70%, transparent);
}

.replia-workflow-summary__hero {
    display: grid;
    gap: 1rem 1.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .replia-workflow-summary__hero {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
        align-items: start;
    }
}

.replia-workflow-summary__kicker {
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin: 0 0 0.35rem;
}

.replia-workflow-summary__stage-name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.3;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-matter-file-hero .replia-workflow-summary__hero {
    align-items: stretch;
}

.replia-matter-file-hero__cluster {
    min-width: 0;
}

.replia-matter-file-hero__cluster--wide {
    grid-column: 1 / -1;
}

@media (min-width: 640px) {
    .replia-matter-file-hero__cluster--wide {
        grid-column: auto;
    }
}

.replia-matter-file-hero__value {
    margin: 0.15rem 0 0;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-matter-file-hero__value--emphasis {
    color: var(--app-text-strong);
}

.replia-workflow-summary__chips {
    margin: 0.15rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.replia-workflow-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    word-break: break-word;
}

.replia-workflow-chip--status {
    background: color-mix(in srgb, var(--app-accent) 12%, var(--app-surface-muted));
    color: var(--app-text-strong);
    border: 1px solid color-mix(in srgb, var(--app-accent) 22%, transparent);
}

.replia-workflow-chip--resolution {
    background: color-mix(in srgb, var(--app-surface-muted) 80%, transparent);
    color: var(--app-text-muted);
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
    font-weight: 550;
}

.replia-workflow-summary__section {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
}

.replia-workflow-summary__section-title {
    margin: 0 0 0.45rem;
    font-size: 0.7rem;
    font-weight: 650;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-workflow-summary__body {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--app-text-soft);
}

.replia-workflow-summary__body--relaxed {
    color: var(--app-text-muted);
}

.replia-workflow-summary__inline-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--app-text-muted);
    margin-bottom: 0.2rem;
}

.replia-workflow-summary__emphasis {
    display: block;
    font-weight: 650;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-workflow-summary__aside {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: var(--app-text-muted);
}

.replia-workflow-summary__headline {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--app-text-strong);
}

.replia-workflow-summary__fine-print {
    margin: 0.5rem 0 0;
    font-size: 0.72rem;
    line-height: 1.4;
    color: var(--app-text-muted);
}

.replia-workflow-summary__callout {
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.45rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
    background: color-mix(in srgb, var(--app-surface-muted) 40%, transparent);
}

.replia-workflow-summary__callout--warning {
    border-color: color-mix(in srgb, var(--app-warning, #d97706) 28%, var(--app-border-subtle));
    background: color-mix(in srgb, var(--app-warning, #f59e0b) 8%, var(--app-surface-muted));
}

.replia-workflow-summary__callout-title {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--app-text-strong);
}

.replia-workflow-summary__callout-body {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--app-text-soft);
}

.replia-workflow-summary__blockers {
    margin: 0.45rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--app-text-soft);
}

.replia-workflow-summary__blocker-title {
    font-weight: 600;
    color: var(--app-text-strong);
}

.replia-workflow-summary__blocker-meta {
    display: block;
    font-size: 0.72rem;
    color: var(--app-text-muted);
    margin-top: 0.1rem;
}

/* Header stage progress widget — matches workflow card tone */
.replia-stage-progress.matter-stage-progress-widget {
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 96%, var(--app-surface-muted));
}

.dark .replia-stage-progress.matter-stage-progress-widget {
    background: color-mix(in srgb, var(--app-surface-raised) 55%, transparent);
}

.replia-stage-progress__label {
    margin: 0 0 0.55rem;
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-stage-progress__empty {
    margin: 0;
    font-size: 0.875rem;
    color: var(--app-text-muted);
}

.replia-stage-progress__track {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.25rem;
}

.replia-stage-progress__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.replia-stage-progress__chip-text {
    min-width: 0;
    word-break: break-word;
}

.replia-stage-progress__chip--current {
    background: color-mix(in srgb, var(--app-accent) 14%, var(--app-surface-muted));
    color: var(--app-text-strong);
    border-color: color-mix(in srgb, var(--app-accent) 30%, transparent);
}

.replia-stage-progress__chip--done {
    background: color-mix(in srgb, #22c55e 12%, var(--app-surface-muted));
    color: color-mix(in srgb, #15803d 70%, var(--app-text-strong));
    border-color: color-mix(in srgb, #22c55e 25%, transparent);
}

.replia-stage-progress__chip--pending {
    background: color-mix(in srgb, var(--app-surface-muted) 85%, transparent);
    color: var(--app-text-muted);
    border-color: color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
}

.replia-stage-progress__mark {
    font-size: 0.65rem;
    line-height: 1;
    opacity: 0.9;
}

.replia-stage-progress__mark--dot {
    font-size: 0.55rem;
}

.replia-stage-progress__arrow {
    font-size: 0.65rem;
    color: var(--app-text-muted);
    opacity: 0.65;
    user-select: none;
}

/* --- Dashboard second pass: KPI row, needs attention, activity, supervisor --- */
.replia-dashboard-split--stack {
    align-items: start;
}

/* Shared stat card design system (canonical KPI styling) */
.replia-stat-card-row,
.replia-dashboard-kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.replia-stat-card,
.replia-dashboard-kpi-card {
    display: flex;
    flex-direction: column;
    min-height: 6.5rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 94%, var(--app-surface-muted));
    text-decoration: none;
    color: inherit;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.dark .replia-stat-card,
.dark .replia-dashboard-kpi-card {
    background: color-mix(in srgb, var(--app-surface-raised) 52%, transparent);
}

a.replia-stat-card,
a.replia-stat-card--linked {
    cursor: pointer;
}

a.replia-stat-card:hover,
a.replia-dashboard-kpi-card:hover {
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--app-border-subtle));
    background: color-mix(in srgb, var(--app-accent) 6%, var(--app-surface-raised));
}

.replia-stat-card__value,
.replia-dashboard-kpi-card__value {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.1;
    color: var(--app-text-strong);
}

.replia-stat-card__label,
.replia-dashboard-kpi-card__label {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--app-text-strong);
}

.replia-stat-card__meta,
.replia-dashboard-kpi-card__scope {
    margin: 0.2rem 0 0;
    font-size: 0.6875rem;
    line-height: 1.35;
    color: var(--app-text-muted);
}

.replia-stat-card__hint,
.replia-dashboard-kpi-card__hint {
    margin: 0.35rem 0 0;
    font-size: 0.625rem;
    line-height: 1.35;
    color: var(--app-text-soft);
}

.replia-matter-list-stats {
    margin-bottom: 0.25rem;
}

.replia-matter-list-stats__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.replia-matter-list-stats__title {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-soft);
}

.replia-matter-list-stats__gear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 88%, transparent);
    background: color-mix(in srgb, var(--app-surface-raised) 94%, var(--app-surface-muted));
    color: var(--app-text-soft);
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease;
}

.replia-matter-list-stats__gear:hover {
    border-color: color-mix(in srgb, var(--app-accent) 28%, var(--app-border-subtle));
    background: color-mix(in srgb, var(--app-accent) 6%, var(--app-surface-raised));
    color: var(--app-text);
}

.replia-dashboard-section--needs-attention {
    margin-bottom: 1.5rem;
}

.replia-needs-attention-body .replia-queue-group--compact:first-of-type {
    padding-top: 0;
    margin-top: 0;
    border-top: 0;
}

.replia-needs-attention-body .replia-queue-group--compact {
    padding-top: 0.85rem;
    margin-top: 0.85rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 80%, transparent);
}

.replia-needs-attention-all-clear {
    margin: 0;
    padding: 0.5rem 0 0.25rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--app-text-soft);
}

.replia-needs-attention-all-clear a {
    color: var(--app-accent);
    font-weight: 600;
    text-decoration: none;
}

.replia-needs-attention-all-clear a:hover {
    color: var(--app-accent-hover);
    text-decoration: underline;
}

.replia-dashboard-section--compact .replia-case-list .replia-list-item {
    padding-block: 0.5rem;
}

.app-empty-state--inline {
    padding: 0.75rem 0;
}

.app-empty-state--inline .app-empty-state__title {
    font-size: 0.9rem;
}

.app-empty-state--inline .app-empty-state__text {
    font-size: 0.8125rem;
}

.replia-recent-activity-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 0.75rem;
}

.replia-chip-filter {
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--app-border-subtle) 85%, transparent);
    padding: 0.25rem 0.65rem;
    font-size: 0.6875rem;
    font-weight: 650;
    color: var(--app-text-muted);
    background: color-mix(in srgb, var(--app-surface-raised) 90%, transparent);
    cursor: pointer;
}

.replia-chip-filter:hover {
    border-color: var(--app-border-subtle);
    color: var(--app-text-strong);
}

.replia-badge--info {
    background: color-mix(in srgb, #3b82f6 16%, var(--app-surface-raised));
    color: #1d4ed8;
    border: 1px solid color-mix(in srgb, #3b82f6 35%, transparent);
}

.dark .replia-badge--info {
    color: #93c5fd;
}

.replia-matter-file-hero__cta {
    margin-bottom: 0.75rem;
}

.replia-chip-filter--active {
    border-color: color-mix(in srgb, var(--app-accent) 35%, transparent);
    color: var(--app-text-strong);
    background: color-mix(in srgb, var(--app-accent) 10%, var(--app-surface-muted));
}

.replia-supervisor-tools {
    margin-top: 0.25rem;
    margin-bottom: 1.5rem;
    border-radius: 0.65rem;
    border: 1px dashed color-mix(in srgb, var(--app-border-subtle) 90%, transparent);
    background: color-mix(in srgb, var(--app-surface-muted) 25%, transparent);
    padding: 0.35rem 0.85rem 0.85rem;
}

.replia-supervisor-tools__summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--app-text-soft);
    padding: 0.5rem 0;
    list-style: none;
}

.replia-supervisor-tools__summary::-webkit-details-marker {
    display: none;
}

.replia-supervisor-tools__body {
    padding-top: 0.35rem;
}

.replia-supervisor-tools__note {
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
}

.replia-supervisor-tools__heading {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--app-text-strong);
}

.replia-dashboard-section--nested {
    padding: 0.85rem 0 0;
    margin-top: 0.75rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
}

.replia-dashboard-section--nested:first-child {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}

.replia-dashboard-context__scope {
    margin: 0 0 0.65rem;
    font-size: 0.72rem;
    line-height: 1.4;
    color: var(--app-text-soft);
}

.replia-list-item--disabled {
    opacity: 0.55;
    pointer-events: none;
    cursor: default;
}

/* Matter workflow summary — compact strip */
.replia-workflow-summary__strip {
    display: grid;
    gap: 0.85rem 1rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .replia-workflow-summary__strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }
}

.replia-workflow-summary__strip-cell {
    min-width: 0;
}

.replia-workflow-summary__strip-kicker {
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--app-text-muted);
    margin: 0 0 0.35rem;
}

.replia-workflow-summary__strip-value {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--app-text-strong);
    word-break: break-word;
}

.replia-workflow-summary__strip-value--next {
    font-weight: 600;
    color: var(--app-text-soft);
}

.replia-workflow-summary__details {
    margin-top: 0.85rem;
    padding: 0.5rem 0 0;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 70%, transparent);
}

.replia-workflow-summary__details summary {
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--app-text-muted);
    list-style: none;
}

.replia-workflow-summary__details summary::-webkit-details-marker {
    display: none;
}

.replia-workflow-summary__details-body {
    margin-top: 0.55rem;
    padding-top: 0.35rem;
}

.replia-workflow-summary__section--next {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--app-border-subtle) 75%, transparent);
}

@media (max-width: 1024px) {
    .replia-stat-card-row,
    .replia-dashboard-kpi-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .replia-stat-card-row,
    .replia-dashboard-kpi-row {
        grid-template-columns: 1fr;
    }
}

/*
 * Filament tables: filter/column/grouping dropdowns are overridden in
 * resources/views/vendor/filament-tables/index.blade.php to use teleport + size (viewport-bound
 * panel with overflow-y when needed). This rule is a fallback so non-teleported panels are not
 * clipped by the table card if theme CSS sets overflow on .fi-ta-ctn.
 */
div.fi-ta > div.fi-ta-ctn {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

/* Mobile: keep resource tabs readable; allow horizontal scroll for wide tables */
@media (max-width: 640px) {
    .fi-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 0.25rem;
        padding-bottom: 0.15rem;
    }

    .fi-tabs-item {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .fi-ta-content-ctn,
    div.fi-ta > div.fi-ta-ctn {
        overflow-x: auto !important;
    }

    .fi-ta-table {
        min-width: 720px;
    }
}

.my-calendar-filter-field {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.my-calendar-filter-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--app-text-muted, #64748b);
}

.my-calendar-filter-hint {
    margin: 0;
    max-width: 28rem;
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--app-text-muted, #64748b);
}

/* Settings remediation: scope + sticky save on long config forms */
.settings-scope-banner {
    border-left: 4px solid var(--app-accent, #3727c1);
}

.onboarding-checklist-page .settings-item-card-inner {
    min-height: auto;
}

#meeting-configuration-form .fi-form-footer-actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding-top: 0.75rem;
    margin-top: 0.5rem;
    background: linear-gradient(to top, var(--app-surface, #fff) 70%, transparent);
}

@media (max-width: 640px) {
    .settings-card-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .fi-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Person profile: slightly tighter relation tab stack on narrow viewports */
.app-casefile-page--person .fi-resource-relation-managers .fi-tabs {
    margin-top: 0.25rem;
}

.app-casefile-page--person .fi-infolist > .fi-section {
    margin-bottom: 0.5rem;
}

/* Person profile: mobile section switcher + wrapped relation tabs (F-01) */
.app-person-profile-section-switcher {
    display: none;
    margin-bottom: 0.75rem;
}

.app-person-profile-section-switcher__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.app-person-profile-section-switcher__select {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid var(--app-border-soft, #334155);
    background: var(--app-surface-raised, #1e293b);
    color: inherit;
    font-size: 0.9375rem;
}

@media (max-width: 640px) {
    .app-person-profile-section-switcher {
        display: block;
    }

    .app-casefile-page--person .fi-resource-relation-managers > .fi-tabs {
        display: none;
    }

    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs:not(:first-child) {
        display: none;
    }

    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs-item {
        min-height: 2.75rem;
        padding: 0.5rem 0.75rem;
    }
}

@media (min-width: 641px) {
    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs {
        flex-wrap: wrap;
        overflow-x: visible;
        gap: 0.35rem;
    }

    .app-casefile-page--person .fi-resource-relation-managers .fi-tabs-item {
        flex: 0 1 auto;
        white-space: normal;
        text-align: center;
        min-height: 2.25rem;
    }
}

.app-person-relation-panel.fi-ta,
.app-person-relation-panel {
    border-radius: 0.75rem;
}

.app-person-relation-panel .fi-ta-header-heading {
    font-size: 0.9375rem;
    font-weight: 600;
}

.app-people-search-results-strip {
    background: var(--app-surface-raised, #1e293b);
}

/* -------------------------------------------------------------------------- */
/* Operational calendar workspace (sched-*)                                   */
/* -------------------------------------------------------------------------- */

.sched-workspace {
    --sched-rail-w: clamp(16rem, 18vw, 20rem);
    --sched-surface: color-mix(in srgb, var(--app-surface-raised, #1e293b) 88%, #0b1220);
    --sched-grid: #1a2332;
    --sched-line: color-mix(in srgb, var(--app-border-soft, #334155) 55%, transparent);
    --sched-accent-scheduled: #7c6cf0;
    --sched-accent-prep: #c4a12f;
    --sched-accent-done: #3d9b6a;
    --sched-accent-adjourned: #64748b;
    --sched-accent-meeting: color-mix(in srgb, var(--app-accent) 70%, #60a5fa);
    --sched-accent-task: #38bdf8;
    --sched-accent-deadline: #a78bfa;
    --sched-accent-overdue: var(--app-danger, #dc2626);
    --sched-accent-availability: #34d399;
    --sched-event-surface-mix: 12%;
    --sched-event-border-mix: 28%;
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    min-height: min(78vh, 52rem);
}

/* Same element carries both classes; .my-calendar-page alone sets column + max-width — override here. */
.sched-workspace.my-calendar-page {
    /* DOM order is surface then rail; reverse on desktop so the filter rail stays on the left. */
    flex-direction: row-reverse;
    align-items: stretch;
    max-width: none;
    width: 100%;
    margin: 0;
    gap: 0;
}

.fi-page.um-calendar-workspace-page {
    gap: 0.35rem;
}

.fi-page.um-calendar-workspace-page .fi-page-header-main-ctn {
    gap: 0.35rem;
}

.fi-page.um-calendar-workspace-page .fi-header {
    margin-bottom: 0.15rem !important;
}

.fi-page.um-calendar-workspace-page .fi-page-content {
    padding-block: 0.15rem 0.5rem;
}

.sched-toolbar__lead {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    min-width: 0;
}

.sched-date-jump-label {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.sched-date-jump {
    border-radius: 0.35rem;
    border: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-grid) 65%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    padding: 0.25rem 0.4rem;
    min-height: 2rem;
}

.sched-filter-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15rem;
    padding: 0.08rem 0.28rem;
    margin-left: 0.25rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    background: color-mix(in srgb, var(--app-accent, #6366f1) 85%, #312e81);
    color: #f8fafc;
}

.sched-worktype-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sched-worktype-btn {
    border: 1px solid var(--sched-line);
    border-radius: 999px;
    background: color-mix(in srgb, var(--sched-grid) 55%, transparent);
    color: var(--app-text-muted, #94a3b8);
    font-size: 0.72rem;
    font-weight: 650;
    padding: 0.28rem 0.55rem;
    cursor: pointer;
}

.sched-worktype-btn.is-on {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 22%, transparent);
    color: var(--app-text, #f8fafc);
    border-color: color-mix(in srgb, var(--app-accent) 45%, var(--sched-line));
}

.sched-day-head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    min-width: 0;
}

.sched-day-head__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    min-width: 0;
}

.sched-day-head__badges {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    flex-shrink: 0;
}

.sched-month-avail-dot {
    display: inline-block;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: var(--sched-accent-availability);
    box-shadow: 0 0 0 1px color-mix(in srgb, #000 35%, transparent);
}

.sched-month-item-count {
    font-size: 0.62rem;
    font-weight: 800;
    color: var(--app-text-muted, #94a3b8);
    letter-spacing: 0.02em;
}

.sched-avail-coverage {
    position: absolute;
    left: 3%;
    right: 3%;
    z-index: 2;
    border-radius: 0.3rem;
    pointer-events: none;
    background: color-mix(in srgb, var(--sched-accent-availability) 22%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sched-accent-availability) 55%, transparent);
    padding: 0.06rem 0.22rem 0.1rem;
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    min-height: 0;
}

.dark .sched-avail-coverage {
    background: color-mix(in srgb, var(--sched-accent-availability) 14%, #0f172a);
}

.sched-avail-coverage__label {
    font-size: 0.58rem;
    font-weight: 750;
    line-height: 1.15;
    color: #064e3b;
    text-shadow: 0 0 0.35rem color-mix(in srgb, #ecfdf5 90%, transparent);
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    word-break: break-word;
}

.dark .sched-avail-coverage__label {
    color: #d1fae5;
    text-shadow: 0 1px 2px rgb(0 0 0 / 0.55);
}

.my-calendar-item-agenda-expand {
    margin-top: 0.35rem;
    align-self: flex-start;
    border: 0;
    padding: 0;
    background: transparent;
    color: color-mix(in srgb, var(--app-accent, #6366f1) 85%, #e0e7ff);
    font-size: 0.72rem;
    font-weight: 650;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.replia-expanded-avail__title {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.replia-expanded-avail__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.replia-expanded-avail__table th,
.replia-expanded-avail__table td {
    border-bottom: 1px solid var(--sched-line, #334155);
    padding: 0.35rem 0.45rem;
    text-align: left;
    vertical-align: top;
}

.replia-expanded-avail__table th {
    font-size: 0.65rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--app-text-muted, #94a3b8);
}

.replia-modal-card--calendar-day {
    width: min(48rem, 100%);
}

.sched-rail {
    flex: 0 0 var(--sched-rail-w);
    width: var(--sched-rail-w);
    border-right: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-surface) 96%, #000);
    color: var(--app-text, #e2e8f0);
    border-radius: 0.45rem 0 0 0.45rem;
}

.sched-rail-backdrop {
    display: none;
}

.sched-rail__head {
    display: none;
}

.sched-rail__head-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.sched-rail__scroll {
    position: sticky;
    top: 0;
    max-height: calc(100vh - 6rem);
    overflow: auto;
    padding: 0.75rem 0.85rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sched-rail__section {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sched-rail__label {
    margin: 0;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
}

.sched-check-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sched-check {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: var(--app-text, #e2e8f0);
    cursor: pointer;
}

.sched-check input {
    accent-color: var(--app-accent, #6366f1);
}

.sched-segmented {
    display: flex;
    border-radius: 0.45rem;
    border: 1px solid var(--sched-line);
    overflow: hidden;
}

.sched-segmented button {
    flex: 1;
    border: 0;
    background: transparent;
    color: var(--app-text-muted, #94a3b8);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.35rem 0.4rem;
    cursor: pointer;
}

.sched-segmented button.is-active {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 22%, transparent);
    color: var(--app-text, #f8fafc);
}

.sched-select {
    width: 100%;
    border-radius: 0.4rem;
    border: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-grid) 70%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    padding: 0.35rem 0.45rem;
}

.sched-mini-cal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
}

.sched-mini-cal__head-text {
    flex: 1;
    min-width: 0;
    text-align: center;
}

.sched-mini-cal__title {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--app-text-strong, #f1f5f9);
}

.sched-mini-cal__selected {
    margin: 0.12rem 0 0;
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--app-text-muted, #94a3b8);
}

.sched-icon-btn {
    border: 0;
    background: transparent;
    color: var(--app-text-muted, #94a3b8);
    font-size: 1.1rem;
    line-height: 1;
    padding: 0.15rem 0.35rem;
    cursor: pointer;
    border-radius: 0.35rem;
}

.sched-icon-btn:hover {
    background: color-mix(in srgb, #fff 6%, transparent);
    color: var(--app-text, #f8fafc);
}

.sched-mini-cal__dow {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.1rem;
    margin: 0.35rem 0 0.2rem;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--app-text-muted, #64748b);
    text-align: center;
}

.sched-mini-cal__week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.15rem;
}

.sched-mini-cal__day {
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--app-text, #e2e8f0);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0;
    cursor: pointer;
}

.sched-mini-cal__day.is-outside {
    opacity: 0.35;
}

.sched-mini-cal__day.is-today {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 55%, transparent);
    color: #fff;
}

.sched-mini-cal__day.is-selected:not(.is-today) {
    background: color-mix(in srgb, var(--app-accent, #6366f1) 22%, transparent);
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--app-accent, #6366f1) 85%, transparent);
    color: var(--app-text-strong, #f1f5f9);
}

.sched-mini-cal__day.is-selected.is-today {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, #fff 70%, transparent);
}

.sched-mini-cal__day:focus-visible {
    outline: 2px solid var(--app-accent, #6366f1);
    outline-offset: 2px;
}

.sched-legend__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: var(--app-text-muted, #94a3b8);
}

.sched-dot {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    margin-right: 0.35rem;
    vertical-align: middle;
}

.sched-dot--scheduled {
    background: var(--sched-accent-scheduled);
}

.sched-dot--prep {
    background: var(--sched-accent-prep);
}

.sched-dot--done {
    background: var(--sched-accent-done);
}

.sched-dot--adjourned {
    background: var(--sched-accent-adjourned);
}

.sched-dot--meeting {
    background: var(--sched-accent-meeting);
}

.sched-dot--task {
    background: var(--sched-accent-task);
}

.sched-dot--deadline {
    background: var(--sched-accent-deadline);
}

.sched-dot--overdue {
    background: var(--sched-accent-overdue);
}

.sched-dot--availability {
    background: var(--sched-accent-availability);
}

.sched-surface {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--sched-grid);
    border-radius: 0.45rem;
    border: 1px solid var(--sched-line);
    box-shadow: none;
    overflow: hidden;
}

.sched-rail-toggle {
    display: none;
    margin: 0.35rem 0.5rem 0;
    align-self: flex-start;
    border: 1px solid var(--sched-line);
    border-radius: 0.4rem;
    background: color-mix(in srgb, var(--app-accent) 12%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    font-weight: 650;
    padding: 0.35rem 0.65rem;
    cursor: pointer;
}

.sched-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-surface) 80%, #0f172a);
}

.sched-toolbar__primary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.sched-toolbar__nav {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.sched-toolbar__range {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--app-text-strong, #f8fafc);
}

.sched-tb-btn {
    border: 1px solid var(--sched-line);
    border-radius: 0.4rem;
    background: color-mix(in srgb, #fff 4%, transparent);
    color: var(--app-text, #e2e8f0);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.3rem 0.55rem;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.sched-tb-btn--ghost {
    background: transparent;
}

.sched-tb-btn--accent {
    background: color-mix(in srgb, var(--app-accent) 35%, #1e1b4b);
    border-color: color-mix(in srgb, var(--app-accent) 55%, var(--sched-line));
    color: #eef2ff;
}

.sched-toolbar__views {
    display: inline-flex;
    border: 1px solid var(--sched-line);
    border-radius: 0.45rem;
    overflow: hidden;
}

.sched-view-btn {
    border: 0;
    background: transparent;
    color: var(--app-text-muted, #94a3b8);
    font-size: 0.75rem;
    font-weight: 650;
    padding: 0.32rem 0.65rem;
    cursor: pointer;
}

.sched-view-btn.is-active {
    background: color-mix(in srgb, var(--app-accent) 28%, transparent);
    color: #eef2ff;
}

.sched-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.sched-time-grid {
    flex: 1 1 auto;
    min-height: 24rem;
    display: flex;
    flex-direction: column;
    border: 0;
    border-radius: 0;
    margin: 0;
    overflow: hidden;
    background: color-mix(in srgb, var(--sched-grid) 92%, #000);
}

.sched-time-grid__head {
    display: grid;
    grid-template-columns: 3.25rem repeat(auto-fit, minmax(0, 1fr));
    border-bottom: 1px solid var(--sched-line);
    background: color-mix(in srgb, var(--sched-surface) 75%, transparent);
}

.sched-time-grid__corner {
    border-right: 1px solid var(--sched-line);
}

.sched-time-grid__col-head {
    padding: 0.45rem 0.35rem;
    text-align: center;
    border-left: 1px solid var(--sched-line);
    color: var(--app-text-muted, #94a3b8);
}

.sched-time-grid__col-head.is-today {
    color: #c7d2fe;
    background: color-mix(in srgb, var(--app-accent) 12%, transparent);
}

.sched-time-grid__dow {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.sched-time-grid__dom {
    display: block;
    font-size: 1rem;
    font-weight: 750;
    color: var(--app-text-strong, #f8fafc);
}

.sched-time-grid__body {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: 3.25rem 1fr;
    min-height: 32rem;
    max-height: min(68vh, 44rem);
    overflow: auto;
}

.sched-time-grid__gutter {
    position: relative;
    border-right: 1px solid var(--sched-line);
    background: color-mix(in srgb, #000 25%, transparent);
}

.sched-time-grid__hour {
    position: absolute;
    left: 0.35rem;
    right: 0.35rem;
    transform: translateY(-50%);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--app-text-muted, #64748b);
    white-space: nowrap;
}

.sched-time-grid__columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    position: relative;
}

.sched-time-grid__col {
    border-left: 1px solid var(--sched-line);
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sched-time-grid__col.is-today {
    background: color-mix(in srgb, var(--app-accent) 5%, transparent);
}

.sched-allday-strip {
    border-bottom: 1px solid var(--sched-line);
    padding: 0.35rem 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    background: color-mix(in srgb, #000 18%, transparent);
}

.sched-allday-strip .my-calendar-item {
    width: 100%;
    max-width: 100%;
    min-height: 2.5rem;
}

.sched-allday-strip .my-calendar-item--compact {
    min-height: 2.65rem;
}

.sched-time-grid__canvas {
    position: relative;
    flex: 1 1 auto;
    min-height: 36rem;
    overflow-x: auto;
    overflow-y: auto;
}

/* Refined week/day: canvas is a positioning context; do not clip timed cards vertically */
.sched-time-grid--week-refine .sched-time-grid__canvas.sched-week-canvas,
.sched-time-grid--day-refine .sched-time-grid__canvas.sched-week-canvas {
    overflow-x: hidden;
    overflow-y: visible;
    isolation: isolate;
}

.sched-time-grid__canvas--wide-lanes {
    min-width: 100%;
}

.sched-time-grid__gridline {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--sched-line);
    pointer-events: none;
}

.sched-now-line {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: color-mix(in srgb, #38bdf8 80%, var(--app-accent));
    z-index: 4;
    pointer-events: none;
}

.sched-now-line__label {
    position: absolute;
    left: 0.15rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.62rem;
    font-weight: 700;
    color: #e0f2fe;
    background: #0c4a6e;
    padding: 0.08rem 0.28rem;
    border-radius: 0.25rem;
}

.sched-block-wrap {
    position: absolute;
    z-index: 2;
    padding: 0.08rem;
    box-sizing: border-box;
    min-width: 4.75rem;
}

.sched-block-wrap .my-calendar-item--compact {
    height: 100%;
    min-height: 2.25rem;
}

.sched-month-grid.my-calendar-grid--month {
    padding: 0 0.5rem 0.5rem;
    gap: 0.35rem;
}

.sched-month-cell {
    border: 1px solid var(--sched-line);
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--sched-surface) 70%, #0f172a);
    padding: 0.45rem 0.5rem;
    min-height: 9.5rem;
}

.sched-month-cell.is-muted {
    opacity: 0.45;
}

.sched-month-cell.is-today {
    outline: 1px solid color-mix(in srgb, var(--app-accent) 55%, transparent);
}

.sched-day-head span:last-child {
    font-size: 0.68rem;
    color: var(--app-text-muted, #94a3b8);
}

.sched-muted-pad {
    margin: 0.5rem 0.75rem 1rem;
    font-size: 0.82rem;
    color: var(--app-text-muted, #94a3b8);
}

.my-calendar-item {
    position: relative;
    display: flex;
    gap: 0;
    overflow: hidden;
}

.my-calendar-item__accent-bar {
    width: 3px;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--app-accent) 45%, #334155);
}

.my-calendar-item__body {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.35rem 0.45rem 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

.my-calendar-item--compact .my-calendar-item-kicker,
.my-calendar-item--compact .my-calendar-item-time {
    font-size: 0.62rem;
}

.my-calendar-item--compact .my-calendar-item-title {
    font-size: 0.74rem;
    font-weight: 650;
    line-height: 1.25;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.my-calendar-item--compact .my-calendar-item-meta--secondary {
    font-size: 0.65rem;
    color: var(--app-text-muted, #94a3b8);
    line-height: 1.25;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.my-calendar-item--compact .my-calendar-item-time--inline {
    font-size: 0.62rem;
    color: var(--app-text-muted, #94a3b8);
    margin-top: 0.05rem;
    line-height: 1.2;
}

.my-calendar-item-time__stack {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    line-height: 1.15;
}

.my-calendar-item-time__stack .my-calendar-item-time__line {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.my-calendar-item--compact .my-calendar-item-loc {
    color: var(--app-text-muted, #a1b4cf);
}

.my-calendar-item-kind-pill {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted, #94a3b8);
    background: color-mix(in srgb, #fff 5%, transparent);
    padding: 0.08rem 0.28rem;
    border-radius: 0.25rem;
}

.dark .my-calendar-item-kind-pill {
    background: color-mix(in srgb, #fff 6%, transparent);
}

.my-calendar-item__foot--compact {
    margin-top: 0.2rem;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.my-calendar-item--compact .my-calendar-item__body {
    padding: 0.28rem 0.38rem 0.32rem;
}

.my-calendar-item__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-top: 0.1rem;
}

.my-calendar-item-count {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--app-text-muted, #94a3b8);
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.my-calendar-item-state {
    font-size: 0.65rem;
    font-weight: 650;
    color: var(--app-text-muted, #94a3b8);
}

.sched-accent--scheduled {
    --sched-event-color: var(--sched-accent-scheduled);
}

.sched-accent--prep {
    --sched-event-color: var(--sched-accent-prep);
}

.sched-accent--done {
    --sched-event-color: var(--sched-accent-done);
}

.sched-accent--adjourned {
    --sched-event-color: var(--sched-accent-adjourned);
}

.sched-accent--meeting {
    --sched-event-color: var(--sched-accent-meeting);
}

.sched-accent--task {
    --sched-event-color: var(--sched-accent-task);
}

.sched-accent--deadline {
    --sched-event-color: var(--sched-accent-deadline);
}

.sched-accent--overdue {
    --sched-event-color: var(--sched-accent-overdue);
}

.sched-accent--availability {
    --sched-event-color: var(--sched-accent-availability);
}

.sched-accent--scheduled .my-calendar-item__accent-bar,
.sched-accent--prep .my-calendar-item__accent-bar,
.sched-accent--done .my-calendar-item__accent-bar,
.sched-accent--adjourned .my-calendar-item__accent-bar,
.sched-accent--meeting .my-calendar-item__accent-bar,
.sched-accent--task .my-calendar-item__accent-bar,
.sched-accent--deadline .my-calendar-item__accent-bar,
.sched-accent--overdue .my-calendar-item__accent-bar,
.sched-accent--availability .my-calendar-item__accent-bar {
    background: var(--sched-event-color);
}

/* Canonical soft event surface — all calendar densities */
.sched-workspace .my-calendar-item[class*='sched-accent--'] {
    background: color-mix(
        in srgb,
        var(--sched-event-color) var(--sched-event-surface-mix),
        var(--app-surface)
    );
    border: 1px solid color-mix(
        in srgb,
        var(--sched-event-color) var(--sched-event-border-mix),
        var(--app-border-soft)
    );
    border-radius: 0.55rem;
    color: var(--app-text);
    box-shadow: none;
}

.sched-workspace .my-calendar-item--month-chip[class*='sched-accent--'] {
    border-radius: 0.25rem;
}

.sched-workspace .my-calendar-item--compact[class*='sched-accent--'] {
    border-radius: 0.35rem;
}

.sched-workspace .my-calendar-item--sched-slot[class*='sched-accent--'] {
    border-radius: 0.28rem;
}

.sched-workspace a.my-calendar-item[class*='sched-accent--'] {
    color: var(--app-text);
}

.my-calendar-item--compact {
    box-shadow: none;
}

@media (max-width: 768px) {
    .sched-view-btn--desktop-only {
        display: none !important;
    }

    .sched-toolbar {
        gap: 0.35rem;
    }

    .sched-toolbar__primary {
        flex-wrap: wrap;
    }
}

@media (max-width: 900px) {
    .sched-workspace {
        flex-direction: column;
    }

    .sched-workspace.my-calendar-page {
        flex-direction: column;
    }

    .sched-toolbar {
        position: sticky;
        top: 0;
        z-index: 30;
    }

    .sched-surface {
        position: relative;
        z-index: 1;
        min-height: min(52vh, 28rem);
    }

    .sched-rail-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 35;
        background: rgba(15, 23, 42, 0.45);
    }

    .sched-rail__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        padding: 0.65rem 0.85rem 0;
        flex-shrink: 0;
    }

    .sched-rail {
        position: fixed;
        z-index: 40;
        left: 0;
        top: 0;
        bottom: 0;
        max-width: min(18rem, 88vw);
        transform: translateX(-102%);
        transition: transform 0.18s ease;
        box-shadow: 0 0 0 1px var(--sched-line);
        border-radius: 0;
        display: flex;
        flex-direction: column;
        pointer-events: none;
    }

    .sched-rail.is-open {
        transform: translateX(0);
        pointer-events: auto;
    }

    .sched-rail.is-open .sched-rail__scroll {
        max-height: none;
        flex: 1 1 auto;
        min-height: 0;
    }

    .sched-rail-toggle {
        display: inline-flex;
    }

    .sched-surface {
        border-radius: 0.45rem;
    }
}

@media (min-width: 901px) {
    .sched-rail-toggle {
        display: none;
    }
}

html.sched-rail-open {
    overflow: hidden;
}

@media (min-width: 901px) {
    html.sched-rail-open {
        overflow: auto;
    }
}

.fi-body:has(.sched-workspace) .fi-main-ctn {
    max-width: 100%;
}

/* Calendar view modes: density, 24h day, week overflow, availability summary */
.fi-page.um-calendar-workspace-page .sched-surface {
    min-height: 0;
    flex: 1 1 auto;
}

.sched-time-grid--day {
    flex: 1 1 auto;
    min-height: 0;
}

.sched-time-grid--day .sched-time-grid__body {
    max-height: none;
    min-height: min(72rem, calc(100vh - 11rem));
}

.sched-time-grid--day .sched-time-grid__canvas--day {
    min-height: calc(24 * 3rem);
}

.sched-time-grid__columns--day {
    grid-template-columns: 1fr;
}

.sched-allday-strip--week {
    max-height: 5rem;
    overflow-y: auto;
    flex-shrink: 0;
}

.sched-allday-strip--day {
    max-height: 8.5rem;
    overflow-y: auto;
    flex-shrink: 0;
}

.sched-timed-overflow {
    position: absolute;
    left: 0.2rem;
    right: 0.2rem;
    bottom: 0.3rem;
    z-index: 6;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.sched-timed-overflow .sched-overflow-btn {
    pointer-events: auto;
}

.sched-overflow-btn {
    border: 1px solid var(--sched-line);
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--app-accent) 25%, #0f172a);
    color: #eef2ff;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
    cursor: pointer;
}

.sched-avail-summary {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    width: 100%;
    text-align: left;
    border: 1px solid color-mix(in srgb, var(--sched-accent-availability) 45%, var(--sched-line));
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--sched-accent-availability) 12%, var(--app-surface));
    padding: 0.35rem 0.45rem;
    cursor: pointer;
    color: var(--app-text);
}

.sched-avail-summary__kicker {
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--sched-accent-availability) 70%, var(--app-text-muted));
}

.sched-avail-summary__headline {
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.25;
    color: var(--app-text-strong);
}

.sched-avail-summary__sub {
    font-size: 0.68rem;
    color: var(--app-text-muted);
    line-height: 1.2;
}

.sched-avail-summary__hint {
    font-size: 0.62rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--sched-accent-availability) 65%, var(--app-text-muted));
    margin-top: 0.1rem;
}

.sched-avail-summary--month {
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    padding: 0.22rem 0.35rem;
    margin-bottom: 0.15rem;
}

.sched-avail-summary__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--sched-accent-availability);
    flex-shrink: 0;
}

.sched-avail-summary__text {
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.2;
    color: var(--app-text-strong);
}

.sched-month-avail-hint {
    display: block;
    width: 100%;
    margin: 0 0 0.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    font-size: 0.62rem;
    font-weight: 650;
    color: var(--app-text-muted, #94a3b8);
    cursor: pointer;
}

.sched-month-avail-hint:hover {
    color: color-mix(in srgb, var(--sched-accent-availability) 75%, var(--app-text-muted));
    text-decoration: underline;
}

.sched-month-avail-hint:focus-visible {
    outline: 2px solid var(--sched-accent-availability);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.sched-month-avail-hint--head {
    width: 100%;
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 0.62rem;
    font-weight: 650;
    line-height: 1.25;
    color: #a7f3d0;
}

.sched-month-avail-hint--head:hover {
    color: #6ee7b7;
}

.my-calendar-day-items--month {
    gap: 0.2rem;
    display: flex;
    flex-direction: column;
}

.my-calendar-item--month-chip {
    border-radius: 0.25rem;
    min-height: 1.65rem;
    padding: 0.1rem 0;
}

.my-calendar-item--month-chip .my-calendar-item__accent-bar {
    width: 2px;
}

.my-calendar-item--month-chip .my-calendar-item__body {
    padding: 0.18rem 0.28rem 0.2rem;
}

.my-calendar-item-month-line {
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    min-width: 0;
}

.my-calendar-item-month-kind {
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--app-text-muted, #94a3b8);
    flex-shrink: 0;
}

.my-calendar-item-month-title {
    font-size: 0.68rem;
    font-weight: 650;
    color: var(--app-text-strong, #f8fafc);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-calendar-item-month-time {
    margin: 0.05rem 0 0;
    font-size: 0.6rem;
    color: var(--app-text-muted, #94a3b8);
}

.my-calendar-item-title--agenda {
    font-size: 0.92rem;
    font-weight: 700;
}

.my-calendar-item-title--day {
    font-size: 0.9rem;
    font-weight: 700;
}

.my-calendar-item-time--day {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--app-text-muted, #94a3b8);
}

.my-calendar-item-meeting-assignees {
    margin: 0.12rem 0 0.05rem;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1.3;
    color: var(--app-text-strong, #f8fafc);
}

.my-calendar-item-meeting-assignees__rep {
    color: var(--app-text-muted, #94a3b8);
    font-weight: 550;
}

.my-calendar-item__foot--day {
    flex-wrap: wrap;
    gap: 0.35rem;
}

.my-calendar-item-title--day-slot {
    margin-top: 0;
    font-size: 0.72rem;
    line-height: 1.15;
    font-weight: 700;
}

.my-calendar-item-day-slot-meta {
    margin: 0.08rem 0 0;
    font-size: 0.64rem;
    line-height: 1.2;
    font-weight: 550;
    color: var(--app-text-muted, #64748b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-calendar-item-day-slot-meta--muted {
    font-weight: 450;
    opacity: 0.9;
}

.my-calendar-item-meta--inline {
    font-size: 0.72rem;
}

.my-calendar-item-agenda-lines {
    margin: 0.15rem 0 0;
    padding-left: 1rem;
    font-size: 0.72rem;
    color: var(--app-text-muted, #94a3b8);
    line-height: 1.35;
}

.sched-agenda--dense .my-calendar-agenda-day {
    margin-bottom: 1rem;
}

/* Day list/agenda cards — not timed canvas slots (% height + min-height fights the grid). */
.sched-density--day:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) {
    min-height: 3rem;
}

/* %height timed slots: agenda-style min-height breaks the slot box and paints for hours down the grid. */
.sched-block-wrap--day-full .my-calendar-item.sched-density--day:not(.my-calendar-item--compact),
.sched-block-wrap--week-full .my-calendar-item.sched-density--day:not(.my-calendar-item--compact) {
    max-height: 100%;
    height: 100%;
}

.my-calendar-item--availability_summary .my-calendar-item__accent-bar {
    background: var(--sched-accent-availability);
}

/* -------------------------------------------------------------------------- */
/* Week + Day refine: header band + full-width pills, body scroll (day = 24h) */
/* -------------------------------------------------------------------------- */

.sched-time-grid--week-refine,
.sched-time-grid--day-refine {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.4rem;
    overflow: hidden;
}

.dark .sched-time-grid--week-refine,
.dark .sched-time-grid--day-refine {
    background: color-mix(in srgb, var(--sched-grid) 88%, #0f172a);
    border-color: var(--sched-line);
}

.sched-week-shell {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.sched-week-header-row {
    display: grid;
    flex-shrink: 0;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
}

.dark .sched-week-header-row {
    background: color-mix(in srgb, var(--sched-surface) 92%, #0f172a);
    border-bottom-color: var(--sched-line);
}

.sched-week-corner-top {
    border-right: 1px solid #e2e8f0;
    min-height: 5.25rem;
}

.sched-time-grid--day-refine .sched-day-corner-top {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 0.35rem;
}

.sched-day-corner-tz {
    font-size: 0.62rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

.dark .sched-day-corner-tz {
    color: var(--app-text-muted, #94a3b8);
}

.dark .sched-week-corner-top {
    border-right-color: var(--sched-line);
}

.sched-week-day-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.45rem 0.28rem 0.4rem;
    border-left: 1px solid #edf2f7;
    text-align: center;
    min-width: 0;
}

.dark .sched-week-day-head {
    border-left-color: var(--sched-line);
}

.sched-week-day-head.is-today .sched-week-dom {
    color: #4f46e5;
}

.dark .sched-week-day-head.is-today .sched-week-dom {
    color: #c7d2fe;
}

.sched-week-dow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.sched-week-dom {
    font-size: 1.1rem;
    font-weight: 750;
    color: #0f172a;
    line-height: 1.1;
}

.dark .sched-week-dom {
    color: #f8fafc;
}

.sched-week-allstrip {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    margin-top: 0.2rem;
    max-height: 4.75rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: 0.1rem;
}

.sched-week-body-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.sched-week-body-grid {
    display: grid;
    min-height: 40rem;
}

/* Must match week visible hours: MyCalendar SCHEDULE_END_HOUR − SCHEDULE_START_HOUR (15). */
.sched-time-grid--week-refine .sched-week-body-grid:not(.sched-week-body-grid--day-24h) {
    min-height: calc(15 * 6rem);
}

/* Full 24h day needs more vertical canvas than the default week band. */
.sched-week-body-grid--day-24h {
    min-height: min(120rem, calc(100vh - 9rem));
}

/* Must match week visible hours count (15) — see MyCalendar SCHEDULE_* constants. */
.sched-time-grid--week-refine .sched-week-canvas {
    min-height: calc(15 * 6rem);
}

.sched-time-grid--day-refine .sched-week-canvas {
    min-height: calc(24 * 3.75rem);
}

.sched-week-gutter {
    position: relative;
    border-right: 1px solid #e2e8f0;
    background: #fafafa;
}

.dark .sched-week-gutter {
    border-right-color: var(--sched-line);
    background: color-mix(in srgb, #000 12%, transparent);
}

.sched-week-day-col {
    border-left: 1px solid #eef2f7;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.dark .sched-week-day-col {
    border-left-color: color-mix(in srgb, var(--sched-line) 70%, transparent);
}

.sched-week-day-col.is-today {
    background: color-mix(in srgb, #6366f1 7%, #fff);
}

.dark .sched-week-day-col.is-today {
    background: color-mix(in srgb, var(--app-accent) 10%, transparent);
}

.sched-week-canvas {
    position: relative;
    flex: 1 1 auto;
    min-height: 42rem;
    /* Horizontal clip only; vertical hidden was painting gridlines over event edges and clipping tails */
    overflow-x: hidden;
    overflow-y: visible;
    isolation: isolate;
}

/* Hour rules stay under timed blocks; now line above blocks but below overflow UI */
.sched-time-grid--week-refine .sched-week-canvas .sched-time-grid__gridline,
.sched-time-grid--day-refine .sched-week-canvas .sched-time-grid__gridline {
    z-index: 1;
}

.sched-time-grid--week-refine .sched-week-canvas > .sched-now-line,
.sched-time-grid--day-refine .sched-week-canvas > .sched-now-line {
    z-index: 40;
}

.sched-time-grid--week-refine .sched-week-canvas > .sched-timed-overflow,
.sched-time-grid--day-refine .sched-week-canvas > .sched-timed-overflow {
    z-index: 50;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full {
    overflow: hidden;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot),
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item__body {
    overflow: hidden;
    max-height: 100%;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item__body {
    min-height: 0;
    padding: 0.18rem 0.3rem 0.2rem;
    gap: 0.04rem;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-title--day,
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-time--day,
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-meeting-assignees {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-title--day-slot,
.sched-time-grid--day-refine .sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--compact):not(.my-calendar-item--sched-slot) .my-calendar-item-day-slot-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sched-block-wrap--week-full,
.sched-block-wrap--day-full {
    overflow: visible;
    box-sizing: border-box;
    padding: 0.12rem 0.25rem;
}

/* Timed events: minimal gutter so % height matches real duration; inline-size CQ only (see comment on container-type). */
.sched-block-wrap--week-full.sched-block-wrap--timed,
.sched-block-wrap--day-full.sched-block-wrap--timed {
    /* Inline-size only: block-axis (min-height) queries mis-fire vs % slot heights in Chrome. */
    container-type: inline-size;
    container-name: sched-timed-slot;
    padding: 0.03rem 0.05rem;
    overflow: hidden;
}

.sched-block-wrap--week-full .my-calendar-item:not(.my-calendar-item--sched-slot),
.sched-block-wrap--day-full .my-calendar-item:not(.my-calendar-item--sched-slot) {
    overflow: hidden;
    border-radius: 0.45rem;
    max-height: 100%;
}

.sched-block-wrap--week-full .my-calendar-item--sched-slot,
.sched-block-wrap--day-full .my-calendar-item--sched-slot {
    /* Kill agenda-card padding from `.replia-calendar-event` — it eats %-height slots and clips all text. */
    padding: 0;
    margin: 0;
    height: 100%;
    max-height: 100%;
    min-height: 0 !important;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 0.28rem;
}

/* Short week/day slots: keep a readable minimum height; min-height:0 collapsed cards to empty outlines. */
.sched-block-wrap--week-full .my-calendar-item--compact,
.sched-block-wrap--day-full .my-calendar-item--compact {
    min-height: max(1.35rem, min(2.25rem, 100%));
}

.sched-block-wrap--week-full .my-calendar-item__body,
.sched-block-wrap--day-full .my-calendar-item__body {
    overflow: hidden;
}

.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-title,
.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-meta--secondary,
.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-loc,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-title,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-meta--secondary,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-loc {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-title,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-title {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: unset;
}

.sched-block-wrap--week-full .my-calendar-item--compact .my-calendar-item-time--inline,
.sched-block-wrap--day-full .my-calendar-item--compact .my-calendar-item-time--inline {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: unset;
}

/* -------------------------------------------------------------------------- */
/* Timed grid slots (week + day canvas): dense soft card + accent bar */
/* -------------------------------------------------------------------------- */

.my-calendar-item--sched-slot {
    /* Also strip `.replia-calendar-event` card padding when slot is not under `.sched-block-wrap`. */
    padding: 0;
    margin: 0;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    box-shadow: none;
}

.my-calendar-item--sched-slot .my-calendar-item__accent-bar {
    display: block;
    width: 2px;
}

.my-calendar-item--sched-slot .my-calendar-item__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0.05rem;
    padding: 0.18rem 0.24rem 0.2rem;
    overflow: hidden;
}

.sched-block-wrap--week-full .my-calendar-item--sched-slot .my-calendar-item__body,
.sched-block-wrap--day-full .my-calendar-item--sched-slot .my-calendar-item__body {
    min-height: 0;
    overflow: hidden;
}

.sched-time-grid--week-refine .sched-week-day-col a.my-calendar-item--sched-slot,
.sched-time-grid--day-refine .sched-week-day-col a.my-calendar-item--sched-slot {
    color: var(--app-text);
    text-decoration: none;
}

.sched-time-grid--week-refine .sched-week-day-col a.my-calendar-item--sched-slot:focus-visible,
.sched-time-grid--day-refine .sched-week-day-col a.my-calendar-item--sched-slot:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--sched-event-color) 65%, var(--app-accent));
    outline-offset: 2px;
}

/* Default: one horizontal row; cross-axis start (not center) so short % slots do not clip in Chrome. */
.my-calendar-item--sched-slot .sched-slot-stack {
    min-width: 0;
    flex: 0 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    overflow: hidden;
}

.my-calendar-item--sched-slot .sched-slot-title-line {
    flex: 1 1 0;
    min-width: 38%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: var(--app-text-strong) !important;
    font-weight: 650;
    font-size: max(0.58rem, 9.5px);
    line-height: 1.12;
    letter-spacing: 0.01em;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.my-calendar-item--sched-slot .sched-slot-time-line {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 62%;
    margin: 0;
    padding: 0;
    color: var(--app-text-muted) !important;
    font-size: max(0.52rem, 8.5px);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.my-calendar-item--sched-slot .sched-slot-time-line::before {
    content: ' · ';
    font-weight: 500;
    opacity: 0.88;
}

/* Week grid only: day columns are always wide — these rules must not apply there or line-clamp !important
   fights day-refine `display: block` and Chrome clips glyphs. */
@container sched-timed-slot (min-width: 6.75rem) and (max-width: 10.5rem) {
    .sched-time-grid--week-refine .my-calendar-item--sched-slot .my-calendar-item__body {
        padding: 0.12rem 0.2rem 0.14rem;
        gap: 0.04rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-stack {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.06rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-title-line {
        flex: 0 1 auto;
        margin: 0;
        padding: 0.06rem 0 0;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-box-align: start;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        white-space: normal;
        overflow: hidden;
        text-overflow: unset;
        font-size: 0.62rem;
        line-height: 1.32;
        font-weight: 650;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line {
        flex: 0 0 auto;
        display: block;
        font-size: max(0.52rem, 8.5px);
        white-space: nowrap;
        max-width: none;
        overflow: visible;
        text-overflow: clip;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line::before {
        content: none !important;
    }
}

@container sched-timed-slot (min-width: 10.5rem) {
    .sched-time-grid--week-refine .my-calendar-item--sched-slot .my-calendar-item__body {
        padding: 0.24rem 0.3rem 0.26rem;
        gap: 0.08rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-stack {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.08rem;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-title-line {
        flex: 0 1 auto;
        margin: 0;
        padding: 0.08rem 0 0;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-box-align: start;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        white-space: normal;
        overflow: hidden;
        font-size: 0.76rem;
        line-height: 1.32;
        font-weight: 650;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line {
        flex: 0 0 auto;
        display: block;
        font-size: 0.64rem;
        line-height: 1.15;
        white-space: nowrap;
        max-width: none;
        overflow: visible;
        text-overflow: clip;
    }

    .sched-time-grid--week-refine .my-calendar-item--sched-slot .sched-slot-time-line::before {
        content: none !important;
    }
}

/* Day refined grid: % height for 30m is ~30px — single-line title + time (no line-clamp / -webkit-box). */
.sched-time-grid--day-refine .my-calendar-item--sched-slot .my-calendar-item__body {
    padding: 0.12rem 0.2rem 0.1rem;
    gap: 0.04rem;
    min-height: 0;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-stack {
    flex: 0 0 auto;
    flex-shrink: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.03rem;
    overflow: visible;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-title-line {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 0;
    font-size: max(0.58rem, 9.5px);
    line-height: 1.22;
    font-weight: 650;
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    word-break: normal;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-time-line {
    flex: 0 0 auto;
    max-width: 100%;
    margin: 0;
    font-size: max(0.52rem, 8.5px);
    line-height: 1.18;
}

.sched-time-grid--day-refine .my-calendar-item--sched-slot .sched-slot-time-line::before {
    content: none !important;
}

.sched-avail-summary--week-pill {
    width: 100%;
    text-align: left;
    border: 1px solid color-mix(in srgb, var(--sched-accent-availability) 45%, var(--sched-line));
    border-radius: 0.45rem;
    padding: 0.35rem 0.45rem;
    background: color-mix(in srgb, var(--sched-accent-availability) 12%, var(--app-surface));
    color: var(--app-text);
    cursor: pointer;
    line-height: 1.25;
}

.sched-avail-summary__week-text {
    font-size: 0.65rem;
    font-weight: 650;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    line-height: 1.28;
    word-break: break-word;
}

.sched-time-grid--week-refine .sched-week-allstrip a.my-calendar-item--compact,
.sched-time-grid--day-refine .sched-week-allstrip a.my-calendar-item--compact {
    text-decoration: none;
}

.sched-time-grid--week-refine .sched-time-grid__gridline,
.sched-time-grid--day-refine .sched-time-grid__gridline {
    background: color-mix(in srgb, #94a3b8 22%, transparent);
}

.dark .sched-time-grid--week-refine .sched-time-grid__gridline,
.dark .sched-time-grid--day-refine .sched-time-grid__gridline {
    background: var(--sched-line);
}

/* Hearing preparation checklist (view widget) */
.hearing-prep-checklist {
    border: 1px solid color-mix(in srgb, var(--app-border, #e2e8f0) 80%, transparent);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    background: var(--app-surface, #fff);
}

.hearing-prep-checklist__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.hearing-prep-checklist__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    color: var(--app-text, #0f172a);
}

.hearing-prep-checklist__meta {
    margin: 0.2rem 0 0;
    font-size: 0.8125rem;
    color: var(--app-text-muted, #64748b);
}

.hearing-prep-checklist__badge {
    flex-shrink: 0;
    font-size: 0.75rem;
    font-weight: 650;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: color-mix(in srgb, #c4a12f 18%, transparent);
    color: #8a6d1f;
}

.hearing-prep-checklist__badge--complete {
    background: color-mix(in srgb, var(--app-success, #15803d) 18%, transparent);
    color: var(--app-success, #15803d);
}

.hearing-prep-checklist__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.hearing-prep-checklist__item {
    border-radius: 0.5rem;
    padding: 0.35rem 0.5rem;
    margin: 0 -0.5rem;
}

.hearing-prep-checklist__item--done {
    background: color-mix(in srgb, var(--app-success, #15803d) 10%, transparent);
}

.hearing-prep-checklist__row {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.hearing-prep-checklist__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 0.1rem;
    width: 1.125rem;
    height: 1.125rem;
    padding: 0;
    border: 2px solid var(--app-border, #cbd5e1);
    border-radius: 0.25rem;
    background: var(--app-surface, #fff);
    color: #fff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.hearing-prep-checklist__check--done {
    border-color: var(--app-success, #15803d);
    background-color: var(--app-success, #15803d);
}

.hearing-prep-checklist__check-icon {
    width: 0.875rem;
    height: 0.875rem;
}

.hearing-prep-checklist__check:disabled,
.hearing-prep-checklist__text-button:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.hearing-prep-checklist__text-button {
    flex: 1;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: inherit;
}

.hearing-prep-checklist__item-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 550;
    color: var(--app-text, #0f172a);
}

.hearing-prep-checklist__item-description {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: var(--app-text-muted, #64748b);
}

.hearing-prep-checklist__item--done .hearing-prep-checklist__item-label {
    color: var(--app-success, #15803d);
}

.hearing-prep-checklist__item--done .hearing-prep-checklist__item-description {
    color: color-mix(in srgb, var(--app-success, #15803d) 55%, var(--app-text-muted, #64748b));
}

.hearing-prep-checklist__empty,
.hearing-prep-checklist__readonly {
    margin: 0;
    font-size: 0.875rem;
    color: var(--app-text-muted, #64748b);
}

.hearing-prep-checklist__readonly {
    margin-top: 0.75rem;
}

/* Global Livewire request progress (top of viewport) */
.replia-top-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 80;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    transition: opacity 120ms ease;
}

.replia-top-progress--active {
    opacity: 1;
}

.replia-top-progress__bar {
    height: 100%;
    width: 0;
    background: var(--livewire-progress-bar-color, var(--primary-500, #3727c1));
    box-shadow: 0 0 8px color-mix(in srgb, var(--livewire-progress-bar-color, var(--primary-500, #3727c1)) 45%, transparent);
    transition: width 200ms ease;
}

.replia-top-progress__bar--animating {
    width: 35%;
    animation: replia-top-progress-indeterminate 1.1s ease-in-out infinite;
}

@keyframes replia-top-progress-indeterminate {
    0% {
        transform: translateX(-100%);
        width: 35%;
    }

    50% {
        width: 65%;
    }

    100% {
        transform: translateX(220%);
        width: 35%;
    }
}

/* Message template merge field chip picker */
.replia-merge-tag-target-btn--active {
    background: rgb(var(--primary-500, 55 39 193) / 1);
    color: #fff;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.08);
}

.dark .replia-merge-tag-target-btn--active {
    background: rgb(var(--primary-400, 129 113 224) / 1);
    color: #fff;
}

.replia-merge-tag-helper__header {
    padding: 1rem 1rem 1rem;
    border-bottom: 1px solid rgb(0 0 0 / 0.08);
}

.dark .replia-merge-tag-helper__header {
    border-bottom-color: rgb(255 255 255 / 0.1);
}

.replia-merge-tag-helper__header-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.replia-merge-tag-helper__title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.3;
    color: rgb(17 24 39 / 1);
}

.dark .replia-merge-tag-helper__title {
    color: rgb(243 244 246 / 1);
}

.replia-merge-tag-helper__lede {
    margin: 0.625rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-helper__lede {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-helper__toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.375rem;
}

.replia-merge-tag-helper__toolbar-label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-helper__toolbar-label {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-footer {
    padding: 0.875rem 1rem 1rem;
    border-top: 1px solid rgb(0 0 0 / 0.08);
    background: rgb(249 250 251 / 0.9);
}

.dark .replia-merge-tag-footer {
    border-top-color: rgb(255 255 255 / 0.1);
    background: rgb(17 24 39 / 0.8);
}

.replia-merge-tag-footer__title {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    color: rgb(31 41 55 / 1);
}

.dark .replia-merge-tag-footer__title {
    color: rgb(229 231 235 / 1);
}

.replia-merge-tag-footer__body {
    margin: 0.5rem 0 0;
    font-size: 0.75rem;
    line-height: 1.55;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-footer__body {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-categories {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.replia-merge-tag-category {
    padding-bottom: 0.25rem;
}

.replia-merge-tag-category--divider {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgb(0 0 0 / 0.08);
}

.dark .replia-merge-tag-category--divider {
    border-top-color: rgb(255 255 255 / 0.1);
}

.replia-merge-tag-category__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.625rem;
}

.replia-merge-tag-category__title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.3;
    color: rgb(17 24 39 / 1);
}

.dark .replia-merge-tag-category__title {
    color: rgb(243 244 246 / 1);
}

.replia-merge-tag-category__count {
    flex-shrink: 0;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1.2;
    color: rgb(107 114 128 / 1);
}

.dark .replia-merge-tag-category__count {
    color: rgb(156 163 175 / 1);
}

.replia-merge-tag-category__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.replia-merge-tag-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    border-radius: 9999px;
    border: 1px solid rgb(0 0 0 / 0.08);
    background: rgb(249 250 251 / 1);
    padding: 0.3rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25;
    color: rgb(55 65 81 / 1);
    transition:
        background-color 120ms ease,
        border-color 120ms ease,
        color 120ms ease,
        box-shadow 120ms ease;
}

.replia-merge-tag-chip:hover:not(:disabled) {
    border-color: rgb(var(--primary-500, 55 39 193) / 0.45);
    background: rgb(var(--primary-500, 55 39 193) / 0.08);
    color: rgb(var(--primary-600, 45 32 160) / 1);
}

.replia-merge-tag-chip:focus-visible {
    outline: 2px solid rgb(var(--primary-500, 55 39 193) / 0.5);
    outline-offset: 2px;
}

.replia-merge-tag-chip:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.replia-merge-tag-chip--inserted {
    border-color: rgb(var(--primary-500, 55 39 193) / 0.55);
    background: rgb(var(--primary-500, 55 39 193) / 0.14);
    color: rgb(var(--primary-700, 37 26 130) / 1);
    box-shadow: 0 0 0 1px rgb(var(--primary-500, 55 39 193) / 0.2);
}

.dark .replia-merge-tag-chip {
    border-color: rgb(255 255 255 / 0.12);
    background: rgb(255 255 255 / 0.06);
    color: rgb(229 231 235 / 1);
}

.dark .replia-merge-tag-chip:hover:not(:disabled) {
    border-color: rgb(var(--primary-400, 129 113 224) / 0.5);
    background: rgb(var(--primary-400, 129 113 224) / 0.12);
    color: rgb(233 229 255 / 1);
}

.dark .replia-merge-tag-chip--inserted {
    border-color: rgb(var(--primary-400, 129 113 224) / 0.55);
    background: rgb(var(--primary-400, 129 113 224) / 0.18);
    color: rgb(237 233 254 / 1);
}

/* Reports dashboards */
.replia-reports {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.replia-reports-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.replia-reports-toolbar__nav {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.92);
    backdrop-filter: blur(8px);
}

.replia-reports-toolbar__filters-toggle {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    background: transparent;
    color: rgb(71 85 105 / 1);
    cursor: pointer;
    flex-shrink: 0;
}

.replia-reports-toolbar__filters-toggle:hover,
.replia-reports-toolbar__filters-toggle--active {
    border-color: rgb(var(--primary-600, 55 39 193) / 1);
    background: rgb(var(--primary-600, 55 39 193) / 0.1);
    color: rgb(var(--primary-700, 45 31 154) / 1);
}

.replia-reports-toolbar__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.65);
}

.replia-reports-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.replia-reports-tabs__tab {
    border: 1px solid rgb(0 0 0 / 0.1);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    background: transparent;
    color: rgb(71 85 105 / 1);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.replia-reports-tabs__tab:hover {
    background: rgb(0 0 0 / 0.04);
}

.replia-reports-tabs__tab--active {
    border-color: rgb(var(--primary-600, 55 39 193) / 1);
    background: rgb(var(--primary-600, 55 39 193) / 1);
    color: rgb(255 255 255 / 1);
    font-size: 0.9rem;
    font-weight: 700;
    padding: 0.5rem 1rem;
    box-shadow:
        0 1px 3px rgb(var(--primary-600, 55 39 193) / 0.35),
        0 0 0 1px rgb(var(--primary-600, 55 39 193) / 0.2);
}

.replia-reports-tabs__tab--active:hover {
    background: rgb(var(--primary-700, 45 31 154) / 1);
    border-color: rgb(var(--primary-700, 45 31 154) / 1);
}

.replia-reports-toolbar__group {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 10rem;
}

.replia-reports-toolbar__group--units {
    min-width: 14rem;
    flex: 1 1 14rem;
}

.replia-reports-toolbar__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(71 85 105 / 1);
}

.replia-reports-toolbar__select,
.replia-reports-toolbar__input {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.875rem;
    background: #fff;
}

.replia-reports-toolbar__hint {
    font-size: 0.7rem;
    color: rgb(100 116 139 / 1);
    margin: 0;
}

.replia-reports-toolbar__actions {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
    flex-wrap: wrap;
}

.replia-reports-unit-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.replia-reports-unit-chips__chip {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 500;
    background: rgb(248 250 252 / 1);
    color: rgb(51 65 85 / 1);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.replia-reports-unit-chips__chip--active {
    border-color: color-mix(in srgb, var(--app-accent, #3727c1) 88%, rgb(100 116 139));
    background: color-mix(in srgb, var(--app-accent, #3727c1) 22%, rgb(248 250 252));
    color: color-mix(in srgb, var(--app-accent, #3727c1) 92%, rgb(15 23 42));
    font-weight: 600;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--app-accent, #3727c1) 30%, transparent);
}

.replia-reports-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.85);
}

.replia-reports-filter-bar__group {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 10rem;
}

.replia-reports-filter-bar__group--wide {
    min-width: 14rem;
    flex: 1 1 14rem;
}

.replia-reports-filter-bar__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(71 85 105 / 1);
}

.replia-reports-filter-bar__select,
.replia-reports-filter-bar__input {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.875rem;
    background: #fff;
}

.replia-reports-filter-bar__select--multi {
    min-height: 5.5rem;
}

.replia-reports-filter-bar__hint {
    font-size: 0.7rem;
    color: rgb(100 116 139 / 1);
    margin: 0;
}

.replia-reports-filter-bar__actions {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
}

.replia-reports-kpis {
    margin-top: 0.25rem;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.replia-stat-card-row--primary {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.replia-stat-card-row--secondary {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.replia-stat-card--primary {
    min-height: 7.25rem;
    border-color: color-mix(in srgb, var(--app-accent) 18%, var(--app-border-subtle));
}

.replia-stat-card--primary .replia-stat-card__value {
    font-size: 2rem;
}

.replia-stat-card--secondary {
    min-height: 5.25rem;
    padding: 0.65rem 0.85rem;
}

.replia-stat-card--secondary .replia-stat-card__value {
    font-size: 1.35rem;
}

.replia-reports-secondary-kpis {
    margin: 0 0 1rem;
}

.replia-reports-secondary-kpis summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--app-text-muted);
    margin-bottom: 0.5rem;
}

.replia-reports-tabs--flat {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.35rem;
    flex: 1 1 auto;
    min-width: 0;
    padding-bottom: 0.15rem;
}

.replia-reports-view-mode {
    display: inline-flex;
    border: 1px solid rgb(0 0 0 / 0.1);
    border-radius: 0.5rem;
    overflow: hidden;
    flex-shrink: 0;
}

.replia-reports-view-mode__btn {
    border: 0;
    background: transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(100 116 139 / 1);
    cursor: pointer;
}

.replia-reports-view-mode__btn--active {
    background: rgb(37 99 235 / 0.12);
    color: rgb(37 99 235 / 1);
}

.replia-reports-nav-groups {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    flex: 1 1 auto;
    min-width: 0;
}

.replia-reports-nav-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.replia-reports-nav-group__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgb(100 116 139 / 1);
}

.replia-stat-card__comparison {
    margin: 0.25rem 0 0;
    font-size: 0.75rem;
    font-weight: 600;
}

.replia-stat-card__comparison--up { color: rgb(22 163 74 / 1); }
.replia-stat-card__comparison--down { color: rgb(220 38 38 / 1); }
.replia-stat-card__comparison--flat { color: rgb(100 116 139 / 1); }

.replia-reports-heatmap__scroll {
    overflow-x: auto;
    max-width: 100%;
}

.replia-reports-heatmap__table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.replia-reports-heatmap__corner,
.replia-reports-heatmap__row-header {
    position: sticky;
    left: 0;
    z-index: 2;
    background: rgb(248 250 252 / 1);
    font-weight: 600;
    text-align: left;
    padding: 0.45rem 0.65rem;
    white-space: nowrap;
}

.replia-reports-heatmap__col-header {
    min-width: 2.25rem;
    padding: 0.45rem 0.5rem;
    text-align: center;
    font-weight: 600;
    white-space: nowrap;
}

.replia-reports-heatmap__period-label {
    padding: 0.2rem 0.5rem 0.45rem;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(100 116 139 / 1);
    white-space: nowrap;
}

.replia-reports-heatmap__cell {
    min-width: 2.25rem;
    text-align: center;
    padding: 0.45rem 0.55rem;
    white-space: nowrap;
    background: rgb(37 99 235 / calc(var(--heatmap-intensity, 0) / 100));
    color: rgb(15 23 42 / 1);
}

.replia-reports-explorer__controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.replia-reports-explorer__controls label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.replia-reports-drilldown {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.replia-reports-drilldown__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 0.45);
}

.replia-reports-drilldown__panel {
    position: relative;
    z-index: 1;
    width: min(960px, 100%);
    max-height: 80vh;
    overflow: auto;
    padding: 1rem;
}

.replia-reports-drilldown__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.replia-reports-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.replia-reports-body--split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 1280px) {
    .replia-reports-body--split {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
        align-items: start;
    }
}

.replia-reports-charts {
    margin-top: 0.25rem;
}

.replia-reports-charts__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 768px) {
    .replia-reports-charts__grid {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    }

    .replia-reports-charts__grid--hero {
        grid-template-columns: 1fr;
    }

    .replia-reports-charts__grid--pair {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .replia-reports-charts__grid--dense {
        grid-template-columns: 1fr;
    }
}

.replia-reports-chart-card {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.85);
    min-height: 320px;
}

.replia-reports-chart-card--full {
    grid-column: 1 / -1;
}

.replia-reports-chart-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
}

.replia-reports-chart-card__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.replia-reports-chart-card__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.replia-reports-chart-card__control {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.replia-reports-chart-card__control-label {
    font-size: 0.7rem;
    font-weight: 600;
    color: rgb(100 116 139 / 1);
}

.replia-reports-chart-card__select {
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 0.45rem;
    padding: 0.3rem 0.45rem;
    font-size: 0.75rem;
    background: #fff;
    max-width: 11rem;
}

.replia-reports-chart-card__select--narrow {
    max-width: 4.5rem;
}

.replia-reports-chart-card__hint {
    margin: 0 1rem 0.35rem;
    font-size: 0.6875rem;
    color: var(--app-text-soft);
}

.replia-reports-chart-card__body {
    flex: 1 1 auto;
    min-height: 200px;
}

.replia-reports-chart-card--explorer {
    min-height: auto;
    margin-top: 0.5rem;
}

.replia-reports-explorer__saved {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.replia-reports-explorer__saved label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.replia-reports-table--compact {
    font-size: 0.8125rem;
}

.replia-reports-table--compact th,
.replia-reports-table--compact td {
    padding: 0.35rem 0.5rem;
}

.replia-reports-chart-card__body--heatmap {
    min-height: auto;
}

.replia-reports-chart-card__body .fi-wi-chart .fi-section-header {
    display: none;
}

.replia-reports-chart-card__body .fi-wi-widget {
    min-height: 260px;
}

.replia-reports-chart-card__body .fi-wi-chart {
    min-height: 240px;
}

.replia-reports-charts .fi-wi-widget {
    min-height: 280px;
}

.replia-reports-charts .fi-wi-chart {
    min-height: 240px;
}

.replia-reports-section {
    padding: 1rem 1.1rem;
}

.replia-reports-section__title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.75rem;
}

.replia-reports-table-wrap {
    overflow-x: auto;
}

.replia-reports-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.replia-reports-table th,
.replia-reports-table td {
    border-bottom: 1px solid rgb(0 0 0 / 0.08);
    padding: 0.5rem 0.65rem;
    text-align: left;
}

.replia-reports-table th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: rgb(100 116 139 / 1);
}

.replia-reports-table__num {
    text-align: right;
    white-space: nowrap;
}

.replia-reports-table__link {
    color: rgb(var(--primary-600, 55 39 193) / 1);
    text-decoration: none;
}

.replia-reports-table__link:hover {
    text-decoration: underline;
}

.replia-reports-table__link--count {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.replia-reports-table__share-col {
    width: 9rem;
    min-width: 7rem;
}

.replia-reports-share-bar {
    position: relative;
    height: 1.25rem;
    border-radius: 0.35rem;
    background: rgb(0 0 0 / 0.06);
    overflow: hidden;
}

.replia-reports-share-bar__fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 0.35rem;
    background: rgb(var(--primary-500, 79 63 209) / 0.55);
    max-width: 100%;
}

.replia-reports-share-bar__label {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    padding: 0 0.35rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: rgb(30 41 59 / 1);
}

.replia-reports-more {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.replia-reports-more__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: rgb(51 65 85 / 1);
    cursor: pointer;
}

.replia-reports-accordion {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.replia-reports-accordion__item {
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.65rem;
    background: rgb(255 255 255 / 0.7);
    overflow: hidden;
}

.replia-reports-accordion__summary {
    padding: 0.65rem 0.85rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.replia-reports-accordion__summary::-webkit-details-marker {
    display: none;
}

.replia-reports-accordion__body {
    padding: 0 0.85rem 0.85rem;
}

.replia-reports-export-modal {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.replia-reports-export-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(15 23 42 / 0.45);
}

.replia-reports-export-modal__panel {
    position: relative;
    z-index: 1;
    width: min(100%, 34rem);
    max-height: calc(100vh - 2rem);
    overflow: auto;
    padding: 1rem 1.1rem;
}

.replia-reports-export-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.replia-reports-export-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
}

.replia-reports-export-modal__close {
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--app-text-muted);
}

.replia-reports-export-modal__body {
    display: grid;
    gap: 0.85rem;
}

.replia-reports-export-modal__fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.replia-reports-export-modal__fieldset legend {
    margin-bottom: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 650;
}

.replia-reports-export-modal__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.45rem;
}

.replia-reports-export-modal__row-label {
    font-size: 0.8125rem;
}

.replia-reports-export-modal__checkbox,
.replia-reports-export-modal__radio {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
    font-size: 0.8125rem;
}

.replia-reports-export-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1rem;
}

.replia-page-header__eyebrow {
    font-size: 0.8rem;
    margin: 0 0 0.25rem;
}

.replia-page-header__link {
    color: rgb(var(--primary-600, 55 39 193) / 1);
    text-decoration: none;
}

.dark .replia-reports-chart-card {
    background: rgb(15 23 42 / 0.85);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-chart-card__select {
    background: rgb(15 23 42 / 1);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-chart-card__control-label {
    color: rgb(148 163 184 / 1);
}

.dark .replia-reports-toolbar__nav {
    background: rgb(15 23 42 / 0.92);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-toolbar__filters {
    background: rgb(15 23 42 / 0.65);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-toolbar__filters-toggle {
    color: rgb(203 213 225 / 1);
    border-color: rgb(255 255 255 / 0.12);
}

.dark .replia-reports-heatmap__corner,
.dark .replia-reports-heatmap__row-header {
    background: rgb(15 23 42 / 1);
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-toolbar {
    background: transparent;
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-tabs__tab {
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(203 213 225 / 1);
}

.dark .replia-reports-tabs__tab--active {
    border-color: rgb(var(--primary-500, 99 102 241) / 1);
    background: rgb(var(--primary-500, 99 102 241) / 1);
    color: rgb(255 255 255 / 1);
    box-shadow:
        0 1px 4px rgb(0 0 0 / 0.35),
        0 0 0 1px rgb(var(--primary-400, 129 140 248) / 0.25);
}

.dark .replia-reports-tabs__tab--active:hover {
    background: rgb(var(--primary-600, 55 39 193) / 1);
    border-color: rgb(var(--primary-600, 55 39 193) / 1);
}

.dark .replia-reports-toolbar__select,
.dark .replia-reports-toolbar__input {
    background: rgb(15 23 42 / 1);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-unit-chips__chip {
    background: rgb(255 255 255 / 0.04);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(226 232 240 / 1);
}

.dark .replia-reports-unit-chips__chip--active {
    border-color: color-mix(in srgb, var(--app-accent, #8171e0) 75%, rgb(255 255 255));
    background: color-mix(in srgb, var(--app-accent, #3727c1) 32%, rgb(30 41 59));
    color: rgb(237 233 254 / 1);
    font-weight: 600;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--app-accent, #3727c1) 45%, transparent);
}

.dark .replia-reports-share-bar {
    background: rgb(255 255 255 / 0.08);
}

.dark .replia-reports-share-bar__label {
    color: rgb(241 245 249 / 1);
}

.dark .replia-reports-accordion__item {
    background: rgb(255 255 255 / 0.03);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-charts .fi-wi-chart {
    background: rgb(255 255 255 / 0.02);
    border-radius: 0.5rem;
}

.dark .replia-reports-filter-bar {
    background: rgb(255 255 255 / 0.04);
    border-color: rgb(255 255 255 / 0.1);
}

.dark .replia-reports-filter-bar__select,
.dark .replia-reports-filter-bar__input {
    background: rgb(15 23 42 / 1);
    border-color: rgb(255 255 255 / 0.12);
    color: rgb(241 245 249 / 1);
}

/* Intake field mapping + publish embed (mirrors resources/css/intake-field-mapping.css) */
.fi-intake-field-mapping-wrap {
        margin-top: 0;
    }

    .fi-intake-field-mapping-wrap .fi-fo-field-wrp-label,
    .fi-intake-publish-embed-wrap .fi-fo-field-wrp-label {
        display: none;
    }

    .fi-intake-field-mapping-section .fi-section-header {
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }

    .fi-intake-field-mapping-section .fi-section-header-description {
        margin-top: 0.125rem !important;
        line-height: 1.35 !important;
    }

    .fi-intake-field-mapping-section .fi-section-content-ctn {
        padding: 10px !important;
    }

    .fi-intake-field-mapping {
        display: flex;
        flex-direction: column;
        gap: 0.625rem;
    }

    .fi-intake-field-mapping__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.375rem;
    }

    @media (min-width: 768px) {
        .fi-intake-field-mapping__stats {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
    }

    .fi-intake-field-mapping__stat {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        padding: 0.375rem 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
    }

    .dark .fi-intake-field-mapping__stat {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-field-mapping__stat--mapped {
        border-color: rgb(191 219 254);
        background: rgb(239 246 255);
    }

    .dark .fi-intake-field-mapping__stat--mapped {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.25);
    }

    .fi-intake-field-mapping__stat--layout {
        border-color: rgb(233 213 255);
        background: rgb(250 245 255);
    }

    .dark .fi-intake-field-mapping__stat--layout {
        border-color: rgb(168 85 247 / 0.35);
        background: rgb(88 28 135 / 0.2);
    }

    .fi-intake-field-mapping__stat-label {
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__stat-label {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__stat-value {
        font-size: 0.9375rem;
        font-weight: 700;
        line-height: 1.2;
        color: rgb(17 24 39);
        font-variant-numeric: tabular-nums;
    }

    .dark .fi-intake-field-mapping__stat-value {
        color: rgb(243 244 246);
    }

    .fi-intake-field-mapping__group-title {
        margin: 0 0 0.25rem;
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__group-title {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__list {
        margin: 0;
        padding: 0;
        list-style: none;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        overflow: hidden;
    }

    .dark .fi-intake-field-mapping__list {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(3 7 18 / 0.35);
    }

    .fi-intake-field-mapping__item {
        padding: 0.5rem 0.75rem;
    }

    .fi-intake-field-mapping__item + .fi-intake-field-mapping__item {
        border-top: 1px solid rgb(243 244 246);
    }

    .dark .fi-intake-field-mapping__item + .fi-intake-field-mapping__item {
        border-top-color: rgb(255 255 255 / 0.08);
    }

    .fi-intake-field-mapping__item-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.375rem;
        align-items: center;
    }

    @media (min-width: 640px) {
        .fi-intake-field-mapping__item-grid {
            grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) auto;
            gap: 0.5rem 0.75rem;
        }
    }

    .fi-intake-field-mapping__item-col--primary {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        min-width: 0;
    }

    .fi-intake-field-mapping__item-col--type {
        display: flex;
        align-items: center;
    }

    @media (min-width: 640px) {
        .fi-intake-field-mapping__item-col--type {
            justify-content: flex-end;
        }
    }

    .fi-intake-field-mapping__item-name {
        font-size: 0.8125rem;
        font-weight: 600;
        line-height: 1.25;
        color: rgb(17 24 39);
        word-break: break-word;
    }

    .dark .fi-intake-field-mapping__item-name {
        color: rgb(243 244 246);
    }

    .fi-intake-field-mapping__item-id,
    .fi-intake-field-mapping__mapping-line {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem 0.375rem;
        min-width: 0;
    }

    .fi-intake-field-mapping__detail-label {
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__detail-label {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__code {
        display: inline-block;
        width: fit-content;
        max-width: 100%;
        border-radius: 0.375rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(243 244 246);
        padding: 0.125rem 0.375rem;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 0.75rem;
        font-weight: 600;
        color: rgb(31 41 55);
        word-break: break-all;
    }

    .dark .fi-intake-field-mapping__code {
        border-color: rgb(255 255 255 / 0.12);
        background: rgb(255 255 255 / 0.06);
        color: rgb(229 231 235);
    }

    .fi-intake-field-mapping__type-badge {
        flex-shrink: 0;
        display: inline-flex;
        border-radius: 0.375rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        padding: 0.125rem 0.5rem;
        font-size: 0.6875rem;
        font-weight: 600;
        color: rgb(75 85 99);
        white-space: nowrap;
    }

    .dark .fi-intake-field-mapping__type-badge {
        border-color: rgb(255 255 255 / 0.12);
        background: rgb(255 255 255 / 0.04);
        color: rgb(209 213 219);
    }

    .fi-intake-field-mapping__mapping-value {
        display: inline-flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem;
        font-size: 0.8125rem;
        line-height: 1.3;
        color: rgb(55 65 81);
    }

    .dark .fi-intake-field-mapping__mapping-value {
        color: rgb(209 213 219);
    }

    .fi-intake-field-mapping__mapping-sep {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__category-badge {
        display: inline-flex;
        border-radius: 0.375rem;
        border: 1px solid rgb(191 219 254);
        background: rgb(239 246 255);
        padding: 0.125rem 0.5rem;
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: rgb(29 78 216);
    }

    .dark .fi-intake-field-mapping__category-badge {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.35);
        color: rgb(191 219 254);
    }

    .fi-intake-field-mapping__mapping-muted {
        font-size: 0.8125rem;
        font-style: italic;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-field-mapping__mapping-muted {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__required-badge {
        display: inline-flex;
        width: fit-content;
        border-radius: 0.375rem;
        border: 1px solid rgb(167 243 208);
        background: rgb(236 253 245);
        padding: 0.125rem 0.5rem;
        font-size: 0.6875rem;
        font-weight: 600;
        color: rgb(4 120 87);
    }

    .dark .fi-intake-field-mapping__required-badge {
        border-color: rgb(16 185 129 / 0.35);
        background: rgb(6 78 59 / 0.35);
        color: rgb(167 243 208);
    }

    .fi-intake-field-mapping__group--layout {
        padding: 0.5rem 0.625rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(233 213 255);
        background: rgb(250 245 255 / 0.6);
    }

    .dark .fi-intake-field-mapping__group--layout {
        border-color: rgb(168 85 247 / 0.3);
        background: rgb(88 28 135 / 0.15);
    }

    .fi-intake-field-mapping__layout-list {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .fi-intake-field-mapping__layout-item {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.375rem;
        font-size: 0.8125rem;
        color: rgb(75 85 99);
    }

    .dark .fi-intake-field-mapping__layout-item {
        color: rgb(209 213 219);
    }

    .fi-intake-field-mapping__layout-name {
        font-weight: 500;
        color: rgb(55 65 81);
    }

    .dark .fi-intake-field-mapping__layout-name {
        color: rgb(229 231 235);
    }

    .fi-intake-field-mapping__layout-sep {
        color: rgb(156 163 175);
    }

    .fi-intake-field-mapping__type-badge--layout {
        border-color: rgb(233 213 255);
        background: rgb(250 245 255);
        color: rgb(107 33 168);
    }

    .dark .fi-intake-field-mapping__type-badge--layout {
        border-color: rgb(168 85 247 / 0.35);
        background: rgb(88 28 135 / 0.25);
        color: rgb(233 213 255);
    }

    /* Publish & embed */
    .fi-intake-publish-embed {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .fi-intake-publish-embed__notice {
        margin: 0;
        font-size: 0.875rem;
        line-height: 1.5;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-publish-embed__notice {
        color: rgb(156 163 175);
    }

    .fi-intake-publish-embed__panel {
        display: flex;
        flex-direction: column;
        gap: 0.625rem;
        padding: 0.875rem 1rem;
        border-radius: 0.75rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
    }

    .dark .fi-intake-publish-embed__panel {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-publish-embed__panel-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        flex-wrap: wrap;
    }

    .fi-intake-publish-embed__panel-label {
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-publish-embed__panel-label {
        color: rgb(156 163 175);
    }

    .fi-intake-publish-embed__value-bar {
        display: flex;
        align-items: stretch;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        overflow: hidden;
    }

    .dark .fi-intake-publish-embed__value-bar {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(3 7 18 / 0.5);
    }

    .fi-intake-publish-embed__bar-action {
        display: flex;
        flex-shrink: 0;
        align-items: center;
        justify-content: center;
        padding: 0.5rem 0.625rem;
        border-left: 1px solid rgb(229 231 235);
    }

    .dark .fi-intake-publish-embed__bar-action {
        border-left-color: rgb(255 255 255 / 0.1);
    }

    .fi-intake-copy-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        padding: 0.375rem 0.75rem;
        font-size: 0.75rem;
        font-weight: 600;
        line-height: 1;
        color: rgb(55 65 81);
        cursor: pointer;
        transition: background-color 0.15s ease, border-color 0.15s ease;
    }

    .fi-intake-copy-btn:hover {
        background: rgb(243 244 246);
        border-color: rgb(209 213 219);
    }

    .dark .fi-intake-copy-btn {
        border-color: rgb(255 255 255 / 0.12);
        background: rgb(255 255 255 / 0.06);
        color: rgb(229 231 235);
    }

    .dark .fi-intake-copy-btn:hover {
        background: rgb(255 255 255 / 0.1);
    }

    .fi-intake-copy-btn--icon {
        width: 2rem;
        height: 2rem;
        padding: 0;
        border-color: transparent;
        background: transparent;
    }

    .fi-intake-copy-btn--icon:hover {
        background: rgb(243 244 246);
        border-color: rgb(229 231 235);
    }

    .dark .fi-intake-copy-btn--icon {
        background: transparent;
        border-color: transparent;
        color: rgb(229 231 235);
    }

    .dark .fi-intake-copy-btn--icon:hover {
        background: rgb(255 255 255 / 0.1);
        border-color: rgb(255 255 255 / 0.12);
    }

    .fi-intake-copy-btn__icon {
        display: block;
    }

    .fi-intake-publish-embed__open-link {
        display: inline-flex;
        align-items: center;
        font-size: 0.75rem;
        font-weight: 600;
        color: rgb(37 99 235);
        text-decoration: none;
    }

    .fi-intake-publish-embed__open-link:hover {
        text-decoration: underline;
    }

    .dark .fi-intake-publish-embed__open-link {
        color: rgb(147 197 253);
    }

    .fi-intake-publish-embed__value {
        flex: 1;
        min-width: 0;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 0.8125rem;
        line-height: 1.5;
        color: rgb(31 41 55);
        word-break: break-all;
        user-select: all;
    }

    .dark .fi-intake-publish-embed__value {
        color: rgb(229 231 235);
    }

    .fi-intake-publish-embed__value--url {
        padding: 0.625rem 0.75rem;
    }

    .fi-intake-publish-embed__code {
        flex: 1;
        min-width: 0;
        margin: 0;
        padding: 0.75rem;
        overflow-x: auto;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 0.75rem;
        line-height: 1.5;
        color: rgb(31 41 55);
        white-space: pre-wrap;
        word-break: break-all;
        user-select: all;
    }

    .dark .fi-intake-publish-embed__code {
        color: rgb(229 231 235);
    }

    /* Form builder split pane */
    .fi-intake-form-builder-section .fi-section-content-ctn {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    @media (min-width: 1024px) {
        .fi-intake-form-builder-section .fi-section-content-ctn {
            grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
            align-items: start;
        }
    }

    .fi-intake-form-builder .fi-fo-builder-item {
        padding: 0.5rem 0.625rem;
    }

    .fi-intake-form-builder [x-sortable-handle] {
        cursor: grab;
        color: rgb(156 163 175);
        touch-action: none;
    }

    .fi-intake-form-builder [x-sortable-handle]:hover {
        color: rgb(75 85 99);
    }

    .fi-intake-form-builder [x-sortable-handle]:active {
        cursor: grabbing;
        color: rgb(37 99 235);
    }

    .dark .fi-intake-form-builder [x-sortable-handle] {
        color: rgb(107 114 128);
    }

    .dark .fi-intake-form-builder [x-sortable-handle]:hover {
        color: rgb(209 213 219);
    }

    .fi-intake-builder-preview-wrap {
        min-width: 0;
    }

    .fi-intake-builder-preview {
        position: sticky;
        top: 1rem;
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        padding: 0.875rem 1rem;
        border-radius: 0.75rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(255 255 255);
        max-height: calc(100vh - 6rem);
        overflow: auto;
    }

    .dark .fi-intake-builder-preview {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(3 7 18 / 0.45);
    }

    .fi-intake-builder-preview__title {
        margin: 0;
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .dark .fi-intake-builder-preview__title {
        color: rgb(156 163 175);
    }

    .fi-intake-builder-preview__empty {
        margin: 0;
        font-size: 0.8125rem;
        color: rgb(107 114 128);
    }

    .fi-intake-builder-preview__form {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .fi-intake-builder-preview__section-heading {
        margin: 0.25rem 0 0;
        font-size: 0.9375rem;
        font-weight: 700;
        color: rgb(17 24 39);
        border-bottom: 1px solid rgb(243 244 246);
        padding-bottom: 0.375rem;
    }

    .dark .fi-intake-builder-preview__section-heading {
        color: rgb(243 244 246);
        border-bottom-color: rgb(255 255 255 / 0.08);
    }

    .fi-intake-builder-preview__help-text {
        margin: 0;
        font-size: 0.8125rem;
        color: rgb(107 114 128);
    }

    .fi-intake-builder-preview__field {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .fi-intake-builder-preview__field-label {
        font-size: 0.8125rem;
        font-weight: 600;
        color: rgb(31 41 55);
    }

    .dark .fi-intake-builder-preview__field-label {
        color: rgb(229 231 235);
    }

    .fi-intake-builder-preview__required {
        color: rgb(220 38 38);
    }

    .fi-intake-builder-preview__field-help {
        margin: 0;
        font-size: 0.75rem;
        color: rgb(107 114 128);
    }

    .fi-intake-builder-preview__field-control {
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
        padding: 0.5rem 0.625rem;
        min-height: 2.25rem;
        display: flex;
        align-items: center;
    }

    .dark .fi-intake-builder-preview__field-control {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-builder-preview__field-control--textarea {
        min-height: 4rem;
        align-items: flex-start;
    }

    .fi-intake-builder-preview__placeholder {
        font-size: 0.8125rem;
        color: rgb(156 163 175);
    }

    /* Summary bar */
    .fi-intake-summary-bar__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.375rem;
    }

    @media (min-width: 768px) {
        .fi-intake-summary-bar__stats {
            grid-template-columns: repeat(5, minmax(0, 1fr));
        }
    }

    .fi-intake-summary-bar__stat {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        padding: 0.375rem 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(229 231 235);
        background: rgb(249 250 251);
    }

    .dark .fi-intake-summary-bar__stat {
        border-color: rgb(255 255 255 / 0.1);
        background: rgb(255 255 255 / 0.04);
    }

    .fi-intake-summary-bar__stat--mapped {
        border-color: rgb(191 219 254);
        background: rgb(239 246 255);
    }

    .dark .fi-intake-summary-bar__stat--mapped {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.25);
    }

    .fi-intake-summary-bar__stat--warnings.fi-intake-summary-bar__stat--has-warnings {
        border-color: rgb(254 215 170);
        background: rgb(255 247 237);
    }

    .dark .fi-intake-summary-bar__stat--warnings.fi-intake-summary-bar__stat--has-warnings {
        border-color: rgb(251 146 60 / 0.35);
        background: rgb(124 45 18 / 0.25);
    }

    .fi-intake-summary-bar__stat-label {
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgb(107 114 128);
    }

    .fi-intake-summary-bar__stat-value {
        font-size: 0.9375rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        color: rgb(17 24 39);
    }

    .dark .fi-intake-summary-bar__stat-value {
        color: rgb(243 244 246);
    }

    /* Workflow strip */
    .fi-intake-workflow-strip__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 0.25rem;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .fi-intake-workflow-strip__step {
        display: flex;
        align-items: flex-start;
        gap: 0.5rem;
        position: relative;
        min-width: 0;
        flex: 1 1 9rem;
    }

    .fi-intake-workflow-strip__marker {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 1.375rem;
        height: 1.375rem;
        border-radius: 9999px;
        border: 1px solid rgb(191 219 254);
        background: rgb(239 246 255);
        font-size: 0.6875rem;
        font-weight: 700;
        color: rgb(29 78 216);
    }

    .dark .fi-intake-workflow-strip__marker {
        border-color: rgb(59 130 246 / 0.35);
        background: rgb(30 58 138 / 0.35);
        color: rgb(191 219 254);
    }

    .fi-intake-workflow-strip__content {
        display: flex;
        flex-direction: column;
        gap: 0.125rem;
        min-width: 0;
    }

    .fi-intake-workflow-strip__label {
        font-size: 0.75rem;
        font-weight: 600;
        line-height: 1.3;
        color: rgb(31 41 55);
    }

    .dark .fi-intake-workflow-strip__label {
        color: rgb(229 231 235);
    }

    .fi-intake-workflow-strip__detail {
        font-size: 0.6875rem;
        line-height: 1.35;
        color: rgb(107 114 128);
    }

    .fi-intake-workflow-strip__connector {
        display: none;
    }

    /* Field mapping diagnostic */
    .fi-intake-field-mapping-diagnostic {
        display: flex;
        flex-direction: column;
        gap: 0.625rem;
    }

    .fi-intake-field-mapping-diagnostic__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.375rem;
    }

    @media (min-width: 768px) {
        .fi-intake-field-mapping-diagnostic__stats {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
    }

    .fi-intake-field-mapping-diagnostic__warnings {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 0.375rem;
    }

    .fi-intake-field-mapping-diagnostic__warning {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.375rem;
        padding: 0.375rem 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid rgb(254 215 170);
        background: rgb(255 247 237);
        font-size: 0.8125rem;
        color: rgb(154 52 18);
    }

    .dark .fi-intake-field-mapping-diagnostic__warning {
        border-color: rgb(251 146 60 / 0.35);
        background: rgb(124 45 18 / 0.2);
        color: rgb(254 215 170);
    }

    .fi-intake-field-mapping-diagnostic__ok {
        margin: 0;
        font-size: 0.8125rem;
        color: rgb(4 120 87);
    }

    .dark .fi-intake-field-mapping-diagnostic__ok {
        color: rgb(167 243 208);
    }

/* Error pages */
.replia-error-page__body {
    margin-top: 0.75rem;
}

.replia-error-page__code-label {
    margin: 0 0 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-text-muted);
}

.replia-error-page__code {
    display: inline-block;
    padding: 0.4rem 0.65rem;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-surface-muted);
    font-family: ui-monospace, Consolas, monospace;
    font-size: 0.85rem;
    color: var(--app-text);
}

.replia-error-page__actions {
    margin: 1rem 0 0;
}

.replia-error-page__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.9rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}

.replia-error-page__action:hover {
    color: #fff;
    text-decoration: none;
}

.replia-guest-error-shell {
    margin: 0;
    min-height: 100vh;
    background: var(--app-bg);
    color: var(--app-text);
    font-family: var(--font-family, Inter, ui-sans-serif, system-ui, sans-serif);
}

.replia-guest-error-shell__container {
    max-width: 960px;
    margin: 0 auto;
    padding: 1.25rem 1.5rem 2.5rem;
}

.replia-guest-error-shell__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--app-border);
}

.replia-guest-error-shell__brand {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--app-text);
}

.replia-guest-error-shell__login {
    color: var(--app-accent);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}

.replia-guest-error-shell__login:hover {
    text-decoration: underline;
}

.replia-guest-error-shell__main {
    max-width: 720px;
    margin: 0 auto;
}

.replia-guest-error-shell .replia-error-page__body {
    background: var(--app-surface) !important;
    border: 1px solid var(--app-border) !important;
    color: var(--app-text) !important;
    border-radius: 0.75rem !important;
}
