:root,
[data-kos-theme="entropy-light"] {
    color-scheme: light;
    --kos-bg: #f5f2fb;
    --kos-bg-strong: #ebe4f7;
    --kos-surface: #ffffff;
    --kos-surface-soft: #fbf8ff;
    --kos-surface-strong: #f0e9fb;
    --kos-line: #ded3ef;
    --kos-line-strong: #bba7df;
    --kos-text: #211a32;
    --kos-muted: #625772;
    --kos-soft: #7a708b;
    --kos-purple-950: #261047;
    --kos-purple-850: #3c1b6e;
    --kos-purple-700: #6d36c5;
    --kos-purple-600: #8050df;
    --kos-purple-100: #f1eaff;
    --kos-magenta: #c026d3;
    --kos-cyan: #0e7490;
    --kos-green: #047857;
    --kos-amber: #b45309;
    --kos-red: #b91c1c;
    --kos-page-bg: linear-gradient(160deg, var(--kos-bg), #f9f7fe 42%, var(--kos-bg-strong));
    --kos-panel-bg: rgba(255, 255, 255, .9);
    --kos-panel-bg-strong: rgba(255, 255, 255, .94);
    --kos-panel-border: rgba(123, 88, 182, .2);
    --kos-topbar-bg: rgba(255, 255, 255, .88);
    --kos-topbar-border: rgba(119, 82, 178, .22);
    --kos-primary-gradient: linear-gradient(135deg, var(--kos-purple-700), var(--kos-magenta));
    --kos-on-primary: #ffffff;
    --kos-focus-inner: #ffffff;
    --kos-focus-outer: rgba(128, 80, 223, .26);
    --kos-control-bg: #ffffff;
    --kos-control-disabled-bg: #f3eff8;
    --kos-row-border: #eee7f8;
    --kos-success-bg: #ecfdf5;
    --kos-success-border: #a7f3d0;
    --kos-warning-bg: #fffbeb;
    --kos-warning-border: #fde68a;
    --kos-danger-bg: #fff1f2;
    --kos-danger-border: #fecdd3;
    --kos-info-bg: #ecfeff;
    --kos-info-border: #a5f3fc;
    --kos-overlay: rgba(33, 26, 50, .46);
    --kos-drawer-shadow: -18px 0 44px rgba(61, 37, 110, .2);
    --kos-shadow-soft: 0 18px 44px rgba(61, 37, 110, .12);
    --kos-shadow-tight: 0 8px 20px rgba(61, 37, 110, .12);
    --kos-radius: 8px;
    --kos-topbar-height: 68px;
    --kos-rail-width: 224px;
    --kos-detail-rail-width: 236px;
}

[data-kos-theme="kos-cosmic"] {
    color-scheme: dark;
    --kos-bg: #090816;
    --kos-bg-strong: #15102b;
    --kos-surface: rgba(22, 18, 43, .9);
    --kos-surface-soft: rgba(31, 24, 58, .78);
    --kos-surface-strong: rgba(45, 33, 76, .9);
    --kos-line: rgba(183, 151, 255, .24);
    --kos-line-strong: rgba(103, 232, 249, .38);
    --kos-text: #eee9ff;
    --kos-muted: #c6b9ea;
    --kos-soft: #9f91c7;
    --kos-purple-950: #f4efff;
    --kos-purple-850: #ded2ff;
    --kos-purple-700: #a855f7;
    --kos-purple-600: #c084fc;
    --kos-purple-100: rgba(168, 85, 247, .16);
    --kos-magenta: #f472b6;
    --kos-cyan: #67e8f9;
    --kos-green: #86efac;
    --kos-amber: #fbbf24;
    --kos-red: #fb7185;
    --kos-page-bg: linear-gradient(160deg, #070611, #120d26 44%, #1a1030);
    --kos-panel-bg: rgba(18, 14, 34, .72);
    --kos-panel-bg-strong: rgba(27, 20, 50, .86);
    --kos-panel-border: rgba(183, 151, 255, .22);
    --kos-topbar-bg: rgba(17, 13, 32, .84);
    --kos-topbar-border: rgba(103, 232, 249, .2);
    --kos-primary-gradient: linear-gradient(135deg, #7c3aed, #db2777 62%, #0891b2);
    --kos-on-primary: #ffffff;
    --kos-focus-inner: rgba(9, 8, 22, .9);
    --kos-focus-outer: rgba(103, 232, 249, .42);
    --kos-control-bg: rgba(12, 10, 25, .84);
    --kos-control-disabled-bg: rgba(46, 38, 72, .58);
    --kos-row-border: rgba(183, 151, 255, .14);
    --kos-success-bg: rgba(22, 101, 52, .18);
    --kos-success-border: rgba(134, 239, 172, .32);
    --kos-warning-bg: rgba(146, 64, 14, .18);
    --kos-warning-border: rgba(251, 191, 36, .34);
    --kos-danger-bg: rgba(159, 18, 57, .2);
    --kos-danger-border: rgba(251, 113, 133, .36);
    --kos-info-bg: rgba(8, 145, 178, .18);
    --kos-info-border: rgba(103, 232, 249, .34);
    --kos-overlay: rgba(4, 3, 11, .7);
    --kos-drawer-shadow: -18px 0 48px rgba(0, 0, 0, .42);
    --kos-shadow-soft: 0 20px 56px rgba(0, 0, 0, .36);
    --kos-shadow-tight: 0 10px 26px rgba(0, 0, 0, .3);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    background: var(--kos-bg);
    color: var(--kos-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    letter-spacing: 0;
    margin: 0;
}

a,
.btn-link {
    color: inherit;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

h1:focus {
    outline: none;
}

.btn-primary {
    background: var(--kos-primary-gradient);
    border-color: transparent;
    color: var(--kos-on-primary);
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 .12rem var(--kos-focus-inner), 0 0 0 .3rem var(--kos-focus-outer);
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--kos-green);
}

.invalid {
    outline: 1px solid var(--kos-red);
}

.validation-message,
.text-danger {
    color: var(--kos-red) !important;
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.darker-border-checkbox.form-check-input {
    border-color: var(--kos-line-strong);
}

.blazor-error-boundary {
    background: var(--kos-danger-bg);
    border: 1px solid var(--kos-danger-border);
    border-radius: var(--kos-radius);
    color: var(--kos-red);
    padding: 1rem;
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}

.kos-app-shell {
    background: var(--kos-page-bg);
    color: var(--kos-text);
    min-height: 100vh;
    padding: 18px;
}

.kos-app-shell.is-login-shell {
    padding: 0;
}

.kos-topbar {
    align-items: center;
    background: var(--kos-topbar-bg);
    border: 1px solid var(--kos-topbar-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(190px, 260px) 1fr auto;
    min-height: var(--kos-topbar-height);
    padding: 12px 14px;
}

.kos-brand {
    align-items: center;
    color: var(--kos-purple-950);
    display: flex;
    gap: 10px;
    min-width: 0;
    text-decoration: none;
}

.kos-brand-mark {
    align-items: center;
    background: var(--kos-primary-gradient);
    border-radius: var(--kos-radius);
    color: var(--kos-on-primary);
    display: inline-flex;
    flex: 0 0 38px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
}

.kos-brand-copy {
    display: grid;
    min-width: 0;
}

.kos-brand-title {
    font-size: 1rem;
    font-weight: 850;
    line-height: 1.1;
}

.kos-brand-subtitle {
    color: var(--kos-soft);
    font-size: .76rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kos-topnav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: center;
    min-width: 0;
}

.kos-nav-pill {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--kos-muted);
    font-weight: 750;
    line-height: 1;
    padding: 8px 14px;
    text-decoration: none;
    white-space: nowrap;
}

.kos-nav-pill:hover {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line);
    color: var(--kos-purple-850);
}

.kos-nav-pill.is-active,
.kos-nav-pill.active {
    background: var(--kos-primary-gradient);
    box-shadow: 0 8px 18px var(--kos-focus-outer);
    color: var(--kos-on-primary);
}

.kos-nav-pill.is-muted {
    background: var(--kos-purple-100);
    border-color: var(--kos-line);
    color: var(--kos-purple-850);
}

.kos-top-actions {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.kos-top-actions form {
    margin: 0;
}

.kos-scope-chip,
.kos-top-button {
    align-items: center;
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
    text-decoration: none;
    white-space: nowrap;
}

.kos-scope-chip {
    background: var(--kos-purple-100);
    color: var(--kos-purple-850);
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kos-top-button {
    background: var(--kos-surface);
    color: var(--kos-text);
}

.kos-top-button:hover {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line-strong);
}

.kos-main {
    margin: 18px auto 0;
    max-width: 1440px;
}

.kos-app-shell.is-login-shell .kos-main {
    display: grid;
    margin: 0;
    max-width: none;
    min-height: 100dvh;
}

.kos-shell,
.crm-module-shell,
.kos-template-page,
.kos-login-page {
    display: grid;
    gap: 18px;
}

.kos-page-header,
.crm-module-header,
.kos-template-header {
    align-items: end;
    background: var(--kos-panel-bg);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 18px;
}

.kos-page-header h1,
.crm-module-header h1,
.kos-template-header h1 {
    color: var(--kos-purple-950);
    font-size: 1.9rem;
    line-height: 1.05;
    margin: 0;
}

.kos-eyebrow {
    color: var(--kos-muted);
    font-size: .74rem;
    font-weight: 850;
    margin: 0 0 .32rem;
    text-transform: uppercase;
}

.kos-status,
.crm-status-line {
    background: var(--kos-success-bg);
    border: 1px solid var(--kos-success-border);
    border-radius: var(--kos-radius);
    color: var(--kos-green);
    font-weight: 800;
    padding: .55rem .75rem;
}

.kos-update-panel,
.kos-template-panel,
.crm-list-window,
.crm-detail-panel,
.crm-record-summary {
    background: var(--kos-panel-bg);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
}

.kos-update-panel {
    display: grid;
    gap: .7rem;
    padding: 18px;
}

.kos-update-panel h2,
.kos-template-panel h2 {
    color: var(--kos-purple-950);
    font-size: 1.05rem;
    margin: 0;
}

.kos-update-panel p,
.kos-template-panel p {
    color: var(--kos-muted);
    margin: 0;
}

.kos-module-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.kos-module-tile {
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-text);
    display: grid;
    gap: .35rem;
    min-height: 7rem;
    padding: 1rem;
    text-decoration: none;
}

.kos-module-tile:hover {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-850);
}

.kos-module-tile span {
    font-size: 1.05rem;
    font-weight: 850;
}

.kos-module-tile strong {
    color: var(--kos-muted);
    font-size: .9rem;
    font-weight: 650;
}

.kos-template-panel {
    display: grid;
    gap: 1rem;
    padding: 18px;
}

.admin-shell-layout {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(14rem, 17rem) minmax(0, 1fr);
}

.admin-shell-sidebar {
    background: var(--kos-panel-bg);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    min-width: 0;
    padding: .75rem;
    position: sticky;
    top: 18px;
}

.admin-shell-nav {
    display: grid;
    gap: .45rem;
}

.admin-shell-nav-link {
    border: 1px solid transparent;
    border-radius: var(--kos-radius);
    color: var(--kos-text);
    display: grid;
    gap: .15rem;
    min-height: 4.1rem;
    padding: .72rem .78rem;
    text-decoration: none;
}

.admin-shell-nav-link:hover,
.admin-shell-nav-link.is-active {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-950);
}

.admin-shell-nav-link span {
    font-weight: 850;
    line-height: 1.2;
}

.admin-shell-nav-link small {
    color: var(--kos-muted);
    line-height: 1.2;
}

.admin-shell-canvas {
    min-width: 0;
}

.admin-email-template-table-wrap {
    border: 1px solid var(--kos-row-border);
    border-radius: var(--kos-radius);
    min-width: 0;
    overflow-x: auto;
}

.admin-email-template-table {
    border-collapse: collapse;
    min-width: 42rem;
    width: 100%;
}

.admin-email-template-table th,
.admin-email-template-table td {
    border-bottom: 1px solid var(--kos-row-border);
    padding: .72rem .8rem;
    text-align: left;
    vertical-align: middle;
}

.admin-email-template-table th {
    color: var(--kos-soft);
    font-size: .74rem;
    font-weight: 850;
    text-transform: uppercase;
}

.admin-email-template-table tr:last-child td {
    border-bottom: 0;
}

.admin-email-template-table td {
    color: var(--kos-text);
    font-weight: 760;
}

.admin-email-template-table td small {
    color: var(--kos-muted);
    display: block;
    font-weight: 700;
    margin-top: .2rem;
}

.admin-email-template-title {
    color: var(--kos-purple-950);
    font-weight: 850;
    text-decoration: none;
}

.admin-email-template-title:hover,
.admin-email-template-title:focus {
    color: var(--kos-purple-700);
    text-decoration: underline;
}

.admin-email-template-editor,
.admin-email-template-form {
    display: grid;
    gap: .85rem;
    min-width: 0;
}

.admin-email-template-header-actions,
.admin-email-template-actions,
.scheduler-connection-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

.admin-email-template-body-toolbar {
    align-items: center;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
}

.admin-email-template-body-toolbar > span {
    color: var(--kos-text);
    font-size: .9rem;
    font-weight: 850;
}

.admin-email-template-mode-toggle {
    align-items: center;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: inline-flex;
    padding: .18rem;
}

.admin-email-template-mode-toggle button {
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--kos-muted);
    font-weight: 850;
    min-height: 2rem;
    padding: .32rem .7rem;
}

.admin-email-template-mode-toggle button.is-active {
    background: var(--kos-surface);
    color: var(--kos-purple-950);
    box-shadow: var(--kos-shadow-tight);
}

.admin-email-template-body {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    line-height: 1.45;
    min-height: 20rem;
    resize: vertical;
}

.admin-overview-grid,
.admin-authority-grid,
.admin-planned-workflow-list {
    display: grid;
    gap: 12px;
}

.admin-overview-grid {
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.admin-authority-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.admin-overview-card,
.admin-authority-card,
.admin-module-settings-group {
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .65rem;
    min-width: 0;
    padding: 1rem;
}

.admin-overview-card {
    color: var(--kos-text);
    min-height: 6rem;
    text-decoration: none;
}

.admin-overview-card:hover {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-950);
}

.admin-overview-card span {
    font-size: 1rem;
    font-weight: 850;
}

.admin-overview-card small {
    color: var(--kos-muted);
    line-height: 1.25;
}

.admin-shell-category {
    color: var(--kos-muted);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.admin-authority-card h2 {
    font-size: 1rem;
}

.admin-authority-card dl {
    display: grid;
    gap: .55rem;
    margin: 0;
}

.admin-authority-card dl div {
    display: grid;
    gap: .15rem;
}

.admin-authority-card dt {
    color: var(--kos-muted);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.admin-authority-card dd {
    color: var(--kos-text);
    font-weight: 750;
    margin: 0;
    overflow-wrap: anywhere;
}

.admin-planned-workflow {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .4rem;
    padding: .85rem;
}

.admin-planned-workflow h3 {
    color: var(--kos-purple-950);
    font-size: 1rem;
    margin: 0;
}

.admin-planned-workflow p {
    color: var(--kos-muted);
    margin: 0;
}

.admin-module-settings-nav {
    display: grid;
    gap: .9rem;
}

.admin-module-settings-nav-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.admin-module-settings-groups {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.admin-module-settings-group h2 {
    font-size: 1rem;
}

.admin-module-settings-group ul {
    display: grid;
    gap: .55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.admin-module-settings-group li {
    border-top: 1px solid var(--kos-line);
    display: grid;
    gap: .15rem;
    padding-top: .55rem;
}

.admin-module-settings-group li:first-child {
    border-top: 0;
    padding-top: 0;
}

.admin-module-settings-group a,
.admin-module-settings-group span {
    color: var(--kos-purple-850);
    font-weight: 850;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.admin-module-settings-group a:hover {
    color: var(--kos-purple-950);
    text-decoration: underline;
}

.admin-module-settings-group small {
    color: var(--kos-muted);
}

.crm-header-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.crm-page-subtitle {
    color: var(--kos-muted);
    margin: .35rem 0 0;
    max-width: 58rem;
}

.crm-primary-action,
.crm-secondary-action,
.crm-shortcut-action,
.crm-icon-button {
    align-items: center;
    border-radius: var(--kos-radius);
    display: inline-flex;
    font-weight: 800;
    gap: .35rem;
    justify-content: center;
    min-height: 2.25rem;
    text-decoration: none;
}

.crm-primary-action {
    background: var(--kos-primary-gradient);
    border: 1px solid transparent;
    color: var(--kos-on-primary);
    padding: .45rem .85rem;
}

.crm-primary-action:hover {
    color: var(--kos-on-primary);
    filter: saturate(1.08);
}

.crm-secondary-action,
.crm-shortcut-action {
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    color: var(--kos-text);
    padding: .42rem .75rem;
}

.crm-secondary-action:hover,
.crm-shortcut-action:hover {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-850);
}

.crm-primary-action:disabled,
.crm-secondary-action:disabled,
.crm-shortcut-action:disabled,
.crm-icon-button:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.crm-module-layout {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: var(--kos-rail-width) minmax(0, 1fr);
}

.crm-module-layout--no-rail {
    grid-template-columns: minmax(0, 1fr);
}

.crm-shortcut-rail,
.crm-details-nav {
    background: var(--kos-panel-bg);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    display: grid;
    gap: 12px;
    padding: 14px;
    position: sticky;
    top: 18px;
}

.crm-rail-title {
    color: var(--kos-muted);
    font-size: .72rem;
    font-weight: 850;
    margin: 0;
    text-transform: uppercase;
}

.crm-shortcut-action,
.crm-shortcut-link {
    width: 100%;
}

.crm-shortcut-action.is-primary {
    background: var(--kos-primary-gradient);
    border-color: transparent;
    color: var(--kos-on-primary);
}

.crm-shortcut-link {
    border: 1px solid transparent;
    border-radius: var(--kos-radius);
    color: var(--kos-muted);
    font-weight: 800;
    padding: .5rem .6rem;
    text-decoration: none;
}

.crm-shortcut-link:hover {
    background: var(--kos-surface-soft);
    border-color: var(--kos-line);
    color: var(--kos-purple-850);
}

.crm-list-workspace,
.crm-detail-workspace,
.crm-detail-stage,
.crm-detail-layout {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.crm-list-window {
    display: grid;
    gap: 14px;
    min-width: 0;
    overflow: hidden;
    padding: 14px;
}

.crm-list-index-shell {
    gap: 14px;
}

.crm-list-index-header {
    align-items: center;
}

.crm-list-canvas {
    background: var(--kos-panel-bg);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: 14px;
}

.crm-list-toolbar {
    align-items: end;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .65rem;
    grid-template-columns: minmax(16rem, 1fr) repeat(auto-fit, minmax(9rem, 12rem));
    padding: 12px;
}

.crm-index-selection-strip {
    align-items: center;
    color: var(--kos-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .86rem;
    font-weight: 800;
    gap: .5rem;
    justify-content: space-between;
}

.crm-index-selection-strip span {
    background: var(--kos-purple-100);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    padding: .25rem .55rem;
}

.crm-list-table-zone {
    min-width: 0;
}

.crm-index-table-column-dividers .crm-index-table th,
.crm-index-table-column-dividers .crm-index-table td {
    border-right: 1px solid var(--kos-row-border);
}

.crm-index-table-column-dividers .crm-index-table th:last-child,
.crm-index-table-column-dividers .crm-index-table td:last-child {
    border-right: 0;
}

.crm-index-table-alternating-rows .crm-index-table tbody tr:nth-child(even) {
    background: var(--kos-surface-soft);
}

.crm-index-bottom-action-bar {
    align-items: center;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .75rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    padding: .75rem;
}

.crm-index-actions-left,
.crm-index-actions-right,
.crm-index-pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.crm-index-actions-left {
    justify-content: flex-start;
}

.crm-index-pagination {
    color: var(--kos-muted);
    font-size: .86rem;
    font-weight: 800;
    justify-content: center;
    text-align: center;
}

.crm-index-actions-right {
    justify-content: flex-end;
}

.crm-toolbar {
    align-items: end;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .65rem;
    grid-template-columns: minmax(16rem, 1fr) minmax(9rem, 12rem) auto;
    padding: 12px;
}

.crm-field {
    color: var(--kos-muted);
    display: grid;
    font-size: .84rem;
    font-weight: 800;
    gap: .3rem;
}

.crm-field.is-wide {
    grid-column: 1 / -1;
}

.crm-field.is-search {
    min-width: 0;
}

.crm-checkbox-field {
    align-items: center;
    color: var(--kos-text);
    display: flex;
    font-size: .9rem;
    gap: .55rem;
    min-height: 2.35rem;
}

.crm-checkbox-field input {
    height: 1rem;
    width: 1rem;
}

.crm-input,
.form-control,
.form-select {
    background: var(--kos-control-bg);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-text);
    min-height: 2.35rem;
    padding: .48rem .6rem;
    width: 100%;
}

.crm-input:focus,
.form-control:focus,
.form-select:focus {
    border-color: var(--kos-purple-600);
    box-shadow: 0 0 0 .18rem var(--kos-focus-outer);
    outline: none;
}

.crm-input:disabled {
    background: var(--kos-control-disabled-bg);
    color: var(--kos-soft);
}

.kos-theme-options {
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .7rem;
    margin: 0 0 1rem;
    padding: .9rem;
}

.kos-theme-options legend {
    color: var(--kos-purple-950);
    float: none;
    font-size: .95rem;
    font-weight: 850;
    margin: 0;
    padding: 0;
}

.kos-theme-option {
    align-items: center;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-text);
    display: grid;
    gap: .65rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: .75rem;
}

.kos-theme-option input {
    accent-color: var(--kos-purple-700);
}

.kos-theme-option strong,
.kos-theme-option small {
    display: block;
}

.kos-theme-option small {
    color: var(--kos-muted);
    margin-top: .1rem;
}

.crm-textarea {
    min-height: 5rem;
    resize: vertical;
}

.crm-list-meta {
    color: var(--kos-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .86rem;
    gap: .5rem;
}

.crm-list-meta span {
    background: var(--kos-purple-100);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    padding: .25rem .55rem;
}

.crm-table-wrap,
.crm-detail-table-wrap {
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    overflow-x: auto;
}

.crm-index-table,
.crm-detail-table {
    border-collapse: collapse;
    min-width: 760px;
    width: 100%;
}

.crm-detail-table {
    min-width: 620px;
}

.communications-index-table {
    min-width: 980px;
}

.communications-record-table {
    min-width: 820px;
}

.crm-index-table th,
.crm-detail-table th {
    background: var(--kos-surface-strong);
    border-bottom: 1px solid var(--kos-line);
    color: var(--kos-muted);
    font-size: .76rem;
    font-weight: 850;
    padding: .58rem .65rem;
    text-align: left;
    text-transform: uppercase;
}

.crm-index-table td,
.crm-detail-table td {
    border-bottom: 1px solid var(--kos-row-border);
    color: var(--kos-text);
    padding: .66rem;
    vertical-align: middle;
}

.crm-index-table tr:last-child td,
.crm-detail-table tr:last-child td {
    border-bottom: 0;
}

.crm-index-table tbody tr:hover {
    background: var(--kos-surface-soft);
}

.crm-index-table small,
.crm-detail-table small {
    color: var(--kos-soft);
    display: block;
    margin-top: .15rem;
}

.crm-sort-button,
.crm-row-link {
    background: transparent;
    border: 0;
    color: inherit;
    font: inherit;
    padding: 0;
    text-align: left;
}

.crm-sort-button {
    color: var(--kos-muted);
    cursor: pointer;
    font-size: .76rem;
    font-weight: 850;
    text-transform: uppercase;
}

.crm-row-link,
.crm-inline-link {
    color: var(--kos-purple-700);
    cursor: pointer;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: .18rem;
}

.crm-status-badge {
    background: var(--kos-purple-100);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    color: var(--kos-purple-850);
    display: inline-flex;
    font-size: .76rem;
    font-weight: 850;
    justify-content: center;
    min-width: 4.25rem;
    padding: .22rem .58rem;
}

.crm-status-badge.is-active,
.crm-status-badge.is-complete {
    background: var(--kos-success-bg);
    border-color: var(--kos-success-border);
    color: var(--kos-green);
}

.crm-status-badge.is-lead,
.crm-status-badge.is-planning {
    background: var(--kos-warning-bg);
    border-color: var(--kos-warning-border);
    color: var(--kos-amber);
}

.crm-status-badge.is-paused {
    background: var(--kos-info-bg);
    border-color: var(--kos-info-border);
    color: var(--kos-cyan);
}

.crm-status-badge.is-archived {
    background: var(--kos-danger-bg);
    border-color: var(--kos-danger-border);
    color: var(--kos-red);
}

.communications-toolbar {
    grid-template-columns: minmax(16rem, 1.5fr) repeat(4, minmax(9rem, 1fr)) auto;
}

.communications-panel-actions,
.communications-section-header,
.communications-pagination,
.communications-sticky-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

.communications-panel-subtitle {
    color: var(--kos-muted);
    font-size: .84rem;
    font-weight: 700;
    margin: .2rem 0 0;
}

.communications-toggle {
    align-items: center;
    color: var(--kos-muted);
    display: inline-flex;
    font-size: .84rem;
    font-weight: 800;
    gap: .42rem;
    white-space: nowrap;
}

.communications-form-section {
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .7rem;
    padding: .8rem;
}

.communications-section-header {
    justify-content: space-between;
}

.communications-section-header h3 {
    color: var(--kos-purple-950);
    font-size: .95rem;
    margin: 0;
}

.communications-choice-list {
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    max-height: 17rem;
    overflow: auto;
}

.communications-choice-list.is-detail {
    max-height: 22rem;
}

.communications-check-row {
    align-items: center;
    border-bottom: 1px solid var(--kos-row-border);
    color: var(--kos-text);
    display: grid;
    gap: .65rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: .55rem .65rem;
}

.communications-check-row:last-child {
    border-bottom: 0;
}

.communications-check-row strong,
.communications-check-row small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.communications-check-row small {
    color: var(--kos-soft);
    margin-top: .08rem;
}

.communications-participant-list {
    display: grid;
    gap: .6rem;
}

.communications-participant-row {
    align-items: end;
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .55rem;
    grid-template-columns: minmax(8rem, .8fr) minmax(10rem, 1fr) minmax(10rem, 1fr) minmax(8rem, .8fr) auto;
    padding: .65rem;
}

.communications-notes-input {
    min-height: 8.5rem;
}

.communications-note-body {
    color: var(--kos-text);
    display: grid;
    gap: .45rem;
}

.communications-note-body p {
    margin: 0;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.communications-reference-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .75rem;
}

.communications-chip {
    align-items: center;
    background: var(--kos-purple-100);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    color: var(--kos-purple-850);
    display: inline-flex;
    font-size: .82rem;
    font-weight: 850;
    gap: .35rem;
    padding: .28rem .55rem;
    text-decoration: none;
}

.communications-chip span {
    color: var(--kos-soft);
    font-size: .72rem;
    text-transform: uppercase;
}

.communications-detail-form {
    display: grid;
    gap: 14px;
}

.communications-sticky-actions {
    background: var(--kos-panel-bg);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    justify-content: flex-end;
    padding: .8rem;
    position: sticky;
    bottom: 1rem;
}

.crm-state-panel {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-text);
    display: grid;
    gap: .35rem;
    padding: 1rem;
}

.crm-state-panel strong {
    font-size: 1rem;
}

.crm-state-panel p {
    color: var(--kos-muted);
    margin: 0;
}

.crm-state-danger {
    background: var(--kos-danger-bg);
    border-color: var(--kos-danger-border);
}

.crm-state-blocked {
    background: var(--kos-purple-100);
    border-color: var(--kos-line);
}

.crm-drawer-layer {
    inset: 0;
    position: fixed;
    z-index: 1001;
}

.crm-drawer-scrim {
    background: var(--kos-overlay);
    border: 0;
    height: 100%;
    inset: 0;
    position: absolute;
    width: 100%;
}

.crm-create-drawer {
    background: var(--kos-surface);
    box-shadow: var(--kos-drawer-shadow);
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%;
    max-width: 34rem;
    overflow-y: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: min(100%, 34rem);
}

.crm-modal-layer {
    align-items: center;
    display: grid;
    justify-items: center;
    padding: 1rem;
}

.crm-modal-panel {
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    box-shadow: 0 24px 64px rgba(61, 37, 110, .26);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    max-height: min(90vh, 54rem);
    overflow: hidden;
    position: relative;
    width: min(100%, 58rem);
}

.crm-modal-body {
    display: grid;
    gap: 1rem;
    overflow-y: auto;
    padding: 1rem;
}

.crm-drawer-header {
    align-items: start;
    border-bottom: 1px solid var(--kos-line);
    display: flex;
    justify-content: space-between;
    padding: 1rem;
}

.crm-drawer-header h2 {
    color: var(--kos-purple-950);
    font-size: 1.35rem;
    margin: 0;
}

.crm-icon-button {
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    color: var(--kos-muted);
    height: 2rem;
    min-height: 2rem;
    padding: 0;
    width: 2rem;
}

.crm-drawer-body {
    padding: 1rem;
}

.crm-drawer-form {
    display: grid;
    gap: 1rem;
}

.crm-form-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.crm-form-error {
    background: var(--kos-danger-bg);
    border: 1px solid var(--kos-danger-border);
    border-radius: var(--kos-radius);
    color: var(--kos-red);
    font-weight: 800;
    padding: .55rem .7rem;
}

.crm-drawer-actions {
    align-items: center;
    border-top: 1px solid var(--kos-line);
    display: flex;
    gap: .5rem;
    justify-content: flex-end;
    padding-top: .75rem;
}

.crm-inline-form {
    align-items: end;
    display: grid;
    gap: .65rem;
    grid-template-columns: minmax(12rem, 24rem) auto;
}

.crm-detail-shell {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: var(--kos-detail-rail-width) minmax(0, 1fr);
}

.crm-detail-shell--no-nav {
    grid-template-columns: minmax(0, 1fr);
}

.crm-detail-nav-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.crm-detail-nav-link {
    align-items: center;
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-muted);
    display: inline-flex;
    font-weight: 850;
    gap: .5rem;
    justify-content: flex-start;
    min-height: 36px;
    min-width: 0;
    padding: 8px 12px;
    text-decoration: none;
    white-space: nowrap;
    width: 100%;
}

.crm-detail-nav-text {
    align-items: center;
    display: inline-flex;
    gap: .45rem;
    min-width: 0;
    white-space: nowrap;
}

.crm-detail-nav-marker {
    color: inherit;
    font-size: .72rem;
    line-height: 1;
    opacity: .72;
}

.crm-detail-nav-link.is-active {
    background: var(--kos-primary-gradient);
    border-color: transparent;
    box-shadow: 0 9px 18px var(--kos-focus-outer);
    color: var(--kos-on-primary);
}

.crm-detail-nav-link.is-disabled {
    background: var(--kos-control-disabled-bg);
    color: var(--kos-soft);
    cursor: not-allowed;
}

.crm-detail-header {
    box-shadow: none;
}

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

.crm-summary-item {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .25rem;
    min-width: 0;
    padding: .75rem;
}

.crm-summary-label {
    color: var(--kos-soft);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.crm-summary-value {
    color: var(--kos-text);
    font-weight: 850;
    overflow-wrap: anywhere;
}

.crm-detail-panel {
    display: grid;
    gap: .9rem;
    min-width: 0;
    padding: 1rem;
}

.crm-detail-panel-header {
    align-items: center;
    border-bottom: 1px solid var(--kos-row-border);
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    padding-bottom: .7rem;
}

.crm-detail-panel-header h2 {
    color: var(--kos-purple-950);
    font-size: 1rem;
    margin: 0;
}

.crm-detail-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    margin: 0;
}

.crm-detail-grid div {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    min-width: 0;
    padding: .68rem;
}

.crm-detail-grid dt {
    color: var(--kos-soft);
    font-size: .74rem;
    font-weight: 850;
    margin-bottom: .2rem;
    text-transform: uppercase;
}

.crm-detail-grid dd {
    color: var(--kos-text);
    font-weight: 800;
    margin: 0;
    overflow-wrap: anywhere;
}

.crm-detail-body-text {
    color: var(--kos-muted);
    margin: 0;
    white-space: pre-wrap;
}

.crm-count-pill {
    background: var(--kos-info-bg);
    border: 1px solid var(--kos-info-border);
    border-radius: 999px;
    color: var(--kos-cyan);
    font-size: .76rem;
    font-weight: 850;
    min-width: 2rem;
    padding: .15rem .55rem;
    text-align: center;
}

.staff-calendar-preview {
    display: grid;
    gap: 12px;
}

.staff-calendar-preview-list {
    display: grid;
    gap: 8px;
}

.staff-calendar-preview-item {
    align-items: center;
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-text);
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .75rem;
    text-decoration: none;
}

.staff-calendar-preview-item:hover {
    border-color: var(--kos-line-strong);
    box-shadow: var(--kos-shadow-tight);
}

.staff-calendar-preview-item span {
    display: grid;
    gap: .2rem;
    min-width: 0;
}

.staff-calendar-preview-item strong {
    overflow-wrap: anywhere;
}

.staff-calendar-preview-item small {
    color: var(--kos-muted);
}

.staff-calendar-preview-actions {
    display: flex;
    justify-content: flex-start;
}

.scheduler-workspace-shell {
    --scheduler-template-panel-bg: var(--kos-panel-bg-strong);
    --scheduler-template-panel-border: var(--kos-panel-border);
    display: grid;
    gap: 16px;
    min-width: 0;
}

.scheduler-header {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    position: relative;
}

.scheduler-header-title {
    display: grid;
    gap: .2rem;
    min-width: 0;
}

.scheduler-header-title-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.scheduler-warning-pill {
    white-space: nowrap;
}

.scheduler-week-actions {
    align-items: center;
    display: flex;
    gap: .5rem;
    justify-content: center;
}

.scheduler-header-actions,
.scheduler-panel-actions,
.scheduler-table-actions,
.scheduler-section-heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.scheduler-header-actions {
    align-self: center;
}

.scheduler-header-conflicts {
    display: grid;
}

.scheduler-workspace-layout {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(15rem, 18rem) minmax(0, 1fr);
    min-width: 0;
}

.scheduler-side-rail,
.scheduler-provider-rail,
.scheduler-main-stage {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.scheduler-template-region {
    display: grid;
    min-width: 0;
}

.scheduler-side-rail,
.scheduler-provider-rail {
    position: sticky;
    top: calc(var(--kos-topbar-height) + 18px);
}

.scheduler-panel {
    background: var(--scheduler-template-panel-bg);
    border: 1px solid var(--scheduler-template-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-tight);
    display: grid;
    gap: .75rem;
    min-width: 0;
    padding: .85rem;
}

.scheduler-panel-header,
.scheduler-section-heading {
    border-bottom: 1px solid var(--kos-row-border);
    justify-content: space-between;
    padding-bottom: .65rem;
}

.scheduler-panel-header {
    align-items: start;
    display: flex;
    gap: .75rem;
}

.scheduler-panel-header h2,
.scheduler-section-heading h3,
.scheduler-provider-stack h3 {
    color: var(--kos-purple-950);
    font-size: 1rem;
    margin: 0;
}

.scheduler-muted {
    color: var(--kos-muted);
    margin: 0;
}

.scheduler-phone-feed-actions {
    display: grid;
    gap: .45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.scheduler-phone-feed-link {
    min-width: 0;
}

.scheduler-phone-feed-link input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.scheduler-phone-feed-qr {
    background: #fff;
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius-sm);
    display: grid;
    place-items: center;
    padding: .75rem;
}

.scheduler-phone-feed-qr svg {
    display: block;
    height: auto;
    max-width: 100%;
}

.scheduler-phone-feed-meta {
    color: var(--kos-muted);
    display: grid;
    gap: .25rem;
    overflow-wrap: anywhere;
}

.scheduler-list {
    display: grid;
    gap: .55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.scheduler-list li {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .25rem;
    min-width: 0;
    padding: .6rem;
}

.scheduler-list strong,
.scheduler-list span,
.scheduler-list small,
.scheduler-list p {
    min-width: 0;
    overflow-wrap: anywhere;
}

.scheduler-list small {
    color: var(--kos-soft);
}

.scheduler-list p {
    color: var(--kos-muted);
    margin: .1rem 0 0;
}

.scheduler-source-tabs {
    display: grid;
    gap: .4rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.scheduler-source-tabs.is-compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.scheduler-source-tab {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    color: var(--kos-muted);
    font-size: .78rem;
    font-weight: 850;
    min-height: 2rem;
    padding: .25rem .45rem;
}

.scheduler-source-tab.is-active {
    background: var(--kos-purple-100);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-850);
}

.scheduler-source-list {
    max-height: 18rem;
    overflow: auto;
}

.scheduler-source-row {
    cursor: grab;
    transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.scheduler-source-row:active {
    cursor: grabbing;
}

.scheduler-source-row:hover,
.scheduler-source-row:focus-within {
    border-color: var(--kos-purple-600);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--kos-purple-600) 20%, transparent);
}

.scheduler-list-button,
.scheduler-event-main {
    background: transparent;
    border: 0;
    color: inherit;
    display: grid;
    gap: .18rem;
    padding: 0;
    text-align: left;
    width: 100%;
}

.scheduler-status-pill {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    color: var(--kos-muted);
    display: inline-flex;
    font-size: .75rem;
    font-weight: 850;
    justify-content: center;
    padding: .18rem .5rem;
    width: fit-content;
}

.scheduler-status-pill.is-success {
    background: var(--kos-success-bg);
    border-color: var(--kos-success-border);
    color: var(--kos-green);
}

.scheduler-status-pill.is-warning {
    background: var(--kos-warning-bg);
    border-color: var(--kos-warning-border);
    color: var(--kos-amber);
}

.scheduler-status-pill.is-danger {
    background: var(--kos-danger-bg);
    border-color: var(--kos-danger-border);
    color: var(--kos-red);
}

.scheduler-status-pill.is-muted {
    background: var(--kos-purple-100);
    color: var(--kos-soft);
}

.scheduler-week {
    overflow: hidden;
}

.scheduler-week-grid {
    --scheduler-slot-height: 2.35rem;
    background: var(--kos-surface);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: 4.75rem repeat(7, minmax(9.25rem, 1fr));
    grid-template-rows: 3.25rem repeat(48, var(--scheduler-slot-height));
    max-height: 72vh;
    min-height: 34rem;
    min-width: 0;
    overflow: auto;
    position: relative;
    width: 100%;
}

.scheduler-time-head,
.scheduler-day-head,
.scheduler-time-cell,
.scheduler-slot {
    border-bottom: 1px solid var(--kos-row-border);
    border-right: 1px solid var(--kos-row-border);
}

.scheduler-day-head,
.scheduler-time-head {
    background: var(--kos-surface-strong);
    position: sticky;
    top: 0;
    z-index: 6;
}

.scheduler-time-head {
    left: 0;
    z-index: 7;
}

.scheduler-day-head {
    display: grid;
    gap: .1rem;
    min-height: 3.25rem;
    padding: .55rem;
}

.scheduler-day-head.is-today {
    background: color-mix(in srgb, var(--kos-purple-100) 70%, var(--kos-surface));
    box-shadow: inset 0 -3px 0 var(--kos-purple-600);
}

.scheduler-day-head span {
    color: var(--kos-soft);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.scheduler-day-head strong {
    color: var(--kos-purple-950);
    font-size: 1rem;
}

.scheduler-time-cell {
    background: var(--kos-surface-soft);
    color: var(--kos-soft);
    font-size: .72rem;
    font-weight: 850;
    min-height: 0;
    padding: .28rem .45rem;
    position: sticky;
    left: 0;
    z-index: 5;
}

.scheduler-time-cell.is-hour-row {
    background: color-mix(in srgb, var(--kos-surface-strong) 72%, var(--kos-surface));
    color: var(--kos-purple-850);
}

.scheduler-slot {
    align-content: start;
    background: color-mix(in srgb, var(--kos-surface) 88%, var(--kos-surface-soft));
    min-height: 0;
    min-width: 0;
    position: relative;
}

.scheduler-slot.is-hour-row {
    background: color-mix(in srgb, var(--kos-surface-soft) 72%, var(--kos-surface));
}

.scheduler-slot.is-initial-focus {
    background: color-mix(in srgb, var(--kos-purple-100) 64%, var(--kos-surface));
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--kos-purple-600) 42%, transparent);
}

.scheduler-slot-add {
    background: transparent;
    border: 1px dashed transparent;
    border-radius: 6px;
    color: var(--kos-soft);
    font-weight: 850;
    inset: .16rem;
    min-height: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    transition: opacity .14s ease, background .14s ease, border-color .14s ease, color .14s ease;
}

.scheduler-slot-add:hover,
.scheduler-slot-add:focus,
.scheduler-slot.is-initial-focus .scheduler-slot-add {
    background: var(--kos-purple-100);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-850);
    opacity: 1;
}

.scheduler-slot:hover .scheduler-slot-add,
.scheduler-slot:focus-within .scheduler-slot-add {
    opacity: 1;
}

.scheduler-week-grid.is-scheduler-dragging-source .scheduler-slot {
    background: color-mix(in srgb, var(--kos-purple-100) 42%, var(--kos-surface));
}

.scheduler-week-grid.is-scheduler-dragging-staff .scheduler-event-card {
    border-style: dashed;
}

.scheduler-week-grid.is-scheduler-dragging-event .scheduler-slot,
.scheduler-week-grid.is-scheduler-resizing-event .scheduler-slot,
.scheduler-week-grid.is-scheduler-spanning-event .scheduler-slot {
    background: color-mix(in srgb, var(--kos-cyan) 13%, var(--kos-surface));
}

.scheduler-week-grid.is-scheduler-drop-out-target {
    box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--kos-red) 42%, transparent);
}

.scheduler-week-grid.is-scheduler-drop-out-target .scheduler-event-card.is-scheduler-gesture-active,
.scheduler-week-grid.is-scheduler-dragging-event.is-scheduler-drop-out-target .scheduler-event-card {
    border-color: var(--kos-red);
}

.scheduler-slot.is-scheduler-drop-target,
.scheduler-event-card.is-scheduler-drop-target {
    border-color: var(--kos-cyan);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--kos-cyan) 22%, transparent);
}

.scheduler-event-card {
    align-self: stretch;
    background: var(--kos-panel-bg-strong);
    border: 1px solid var(--kos-line);
    border-left: 4px solid var(--kos-purple-600);
    border-radius: 8px;
    box-shadow: var(--kos-shadow-tight);
    display: grid;
    gap: .22rem;
    inline-size: calc(var(--scheduler-lane-width) - .32rem);
    justify-self: start;
    margin: .16rem 0 .16rem calc(var(--scheduler-lane-left) + .16rem);
    min-height: 0;
    min-width: 0;
    overflow: visible;
    padding: .38rem 2rem .38rem .48rem;
    position: relative;
    z-index: 3;
}

.scheduler-event-card.is-warning {
    border-left-color: var(--kos-amber);
}

.scheduler-event-card.is-success {
    border-left-color: var(--kos-green);
}

.scheduler-event-card.is-danger {
    border-left-color: var(--kos-red);
}

.scheduler-event-card.is-scheduler-gesture-active {
    border-color: var(--kos-cyan);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--kos-cyan) 18%, transparent), var(--kos-shadow-tight);
}

.scheduler-event-card.is-continued-before {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

.scheduler-event-card.is-continued-after {
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
}

.scheduler-event-main strong,
.scheduler-event-main span,
.scheduler-event-main small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.scheduler-event-main strong {
    color: var(--kos-purple-950);
    font-size: .8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.scheduler-event-main span,
.scheduler-event-main small {
    color: var(--kos-muted);
    font-size: .78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.scheduler-event-card.is-compact .scheduler-event-main small,
.scheduler-event-card.is-compact .scheduler-event-meta {
    display: none;
}

.scheduler-event-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .18rem;
    overflow: hidden;
}

.scheduler-event-meta span {
    background: var(--kos-purple-100);
    border-radius: 999px;
    color: var(--kos-soft);
    font-size: .7rem;
    font-weight: 800;
    padding: .12rem .38rem;
}

.scheduler-event-handle {
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: 6px;
    color: var(--kos-muted);
    font-size: .72rem;
    font-weight: 850;
    height: 1.2rem;
    line-height: 1;
    opacity: 0;
    padding: 0;
    position: absolute;
    transition: opacity .14s ease, background .14s ease, border-color .14s ease, color .14s ease;
    width: 1.3rem;
    z-index: 5;
}

.scheduler-event-card:hover .scheduler-event-handle,
.scheduler-event-card:focus-within .scheduler-event-handle,
.scheduler-event-card.is-scheduler-gesture-active .scheduler-event-handle {
    opacity: 1;
}

.scheduler-event-handle:hover,
.scheduler-event-handle:focus {
    background: var(--kos-purple-100);
    border-color: var(--kos-line-strong);
    color: var(--kos-purple-850);
}

.scheduler-event-handle.is-move-earlier {
    right: 2.1rem;
    top: .18rem;
}

.scheduler-event-handle.is-move-later {
    bottom: .18rem;
    right: 2.1rem;
}

.scheduler-event-handle.is-shorten {
    left: .18rem;
    top: .18rem;
}

.scheduler-event-handle.is-lengthen {
    bottom: .18rem;
    left: .18rem;
    cursor: ns-resize;
}

.scheduler-event-handle.is-span-start,
.scheduler-event-handle.is-span-end {
    cursor: ew-resize;
    top: 50%;
    transform: translateY(-50%);
}

.scheduler-event-handle.is-span-start {
    left: -.42rem;
}

.scheduler-event-handle.is-span-end {
    right: -.42rem;
}

.scheduler-event-menu {
    position: absolute;
    right: .22rem;
    top: .2rem;
    z-index: 6;
}

.scheduler-event-menu summary {
    align-items: center;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: 6px;
    color: var(--kos-purple-700);
    cursor: pointer;
    display: inline-flex;
    font-size: .76rem;
    font-weight: 850;
    height: 1.35rem;
    justify-content: center;
    list-style: none;
    width: 1.55rem;
}

.scheduler-event-menu summary::-webkit-details-marker {
    display: none;
}

.scheduler-event-menu[open] summary,
.scheduler-event-menu summary:hover,
.scheduler-event-menu summary:focus {
    background: var(--kos-purple-100);
    border-color: var(--kos-line-strong);
}

.scheduler-event-menu-panel {
    background: var(--kos-panel-bg-strong);
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-soft);
    display: grid;
    gap: .18rem;
    min-width: 10.5rem;
    padding: .35rem;
    position: absolute;
    right: 0;
    top: calc(100% + .22rem);
}

.scheduler-event-menu-panel button,
.scheduler-event-menu-panel a {
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--kos-text);
    font-size: .78rem;
    font-weight: 800;
    padding: .35rem .45rem;
    text-align: left;
    text-decoration: none;
}

.scheduler-event-menu-panel button:hover,
.scheduler-event-menu-panel button:focus,
.scheduler-event-menu-panel a:hover,
.scheduler-event-menu-panel a:focus {
    background: var(--kos-purple-100);
    color: var(--kos-purple-850);
}

.scheduler-provider-note {
    background: var(--kos-warning-bg);
    border: 1px solid var(--kos-warning-border);
    border-radius: var(--kos-radius);
    color: var(--kos-amber);
    font-weight: 800;
    padding: .55rem .7rem;
}

.scheduler-attendee-editor,
.scheduler-provider-stack,
.scheduler-review-drawer,
.scheduler-connection-form {
    display: grid;
    gap: .75rem;
}

.scheduler-connection-workflow {
    display: grid;
    gap: .65rem;
}

.scheduler-connection-step {
    align-items: start;
    border: 1px solid var(--kos-row-border);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .75rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: .75rem;
}

.scheduler-connection-step.is-complete {
    border-color: var(--kos-success-border);
    background: var(--kos-success-bg);
}

.scheduler-connection-step-number {
    align-items: center;
    background: var(--kos-surface-soft);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    color: var(--kos-purple-950);
    display: inline-flex;
    font-size: .78rem;
    font-weight: 900;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}

.scheduler-connection-step h3 {
    color: var(--kos-purple-950);
    font-size: .96rem;
    margin: 0 0 .45rem;
}

.scheduler-provider-stack {
    border-top: 1px solid var(--kos-row-border);
    padding-top: .75rem;
}

.scheduler-attendee-list {
    display: grid;
    gap: .6rem;
}

.scheduler-attendee-row {
    align-items: end;
    border: 1px solid var(--kos-line);
    border-radius: var(--kos-radius);
    display: grid;
    gap: .55rem;
    grid-template-columns: minmax(8rem, 1fr) minmax(10rem, 1fr) minmax(8rem, .8fr) auto;
    padding: .65rem;
}

.scheduler-toggle {
    align-items: center;
    color: var(--kos-muted);
    display: inline-flex;
    font-size: .84rem;
    font-weight: 800;
    gap: .45rem;
}

.scheduler-review-summary {
    color: var(--kos-muted);
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.scheduler-review-summary span {
    background: var(--kos-purple-100);
    border: 1px solid var(--kos-line);
    border-radius: 999px;
    padding: .25rem .55rem;
}

.kos-login-page {
    grid-template-rows: minmax(0, 1fr) auto;
    margin: 0 auto;
    max-width: none;
    min-height: 100dvh;
    padding: 24px;
    width: min(100%, 760px);
}

.kos-login-card {
    align-self: center;
    background: var(--kos-panel-bg-strong);
    border: 1px solid var(--kos-panel-border);
    border-radius: var(--kos-radius);
    box-shadow: var(--kos-shadow-soft);
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr;
    overflow: hidden;
}

.kos-login-intro {
    background: var(--kos-surface-soft);
    display: grid;
    gap: .75rem;
    padding: 24px;
}

.kos-login-intro h1 {
    color: var(--kos-purple-950);
    font-size: 2rem;
    line-height: 1.05;
    margin: 0;
}

.kos-login-intro p {
    color: var(--kos-muted);
    margin: 0;
}

.kos-login-form {
    display: grid;
    gap: 1rem;
    justify-items: center;
    padding: 0 24px 24px;
}

.kos-login-form form {
    display: grid;
    gap: .65rem;
    width: min(100%, 430px);
}

.kos-login-form h2 {
    color: var(--kos-purple-950);
    font-size: 1.1rem;
    margin: 0;
}

.kos-login-actions {
    display: grid;
    gap: .65rem;
}

.kos-login-submit {
    background: var(--kos-primary-gradient);
    border: 0;
    border-radius: var(--kos-radius);
    color: var(--kos-on-primary);
    font-weight: 850;
    min-height: 2.65rem;
    padding: .6rem 1rem;
}

.kos-login-note {
    color: var(--kos-soft);
    font-size: .86rem;
    margin: 0;
}

.kos-login-footer {
    align-self: end;
    color: var(--kos-soft);
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.2;
    padding: .3rem .5rem;
    text-align: center;
}

@media (max-width: 1020px) {
    .kos-topbar {
        grid-template-columns: 1fr;
    }

    .kos-topnav,
    .kos-top-actions {
        justify-content: flex-start;
    }

    .admin-shell-layout,
    .crm-module-layout,
    .crm-detail-shell,
    .scheduler-workspace-layout {
        grid-template-columns: 1fr;
    }

    .scheduler-header {
        grid-template-columns: 1fr;
    }

    .admin-shell-sidebar,
    .crm-shortcut-rail,
    .crm-details-nav,
    .scheduler-side-rail,
    .scheduler-provider-rail {
        position: static;
    }

    .crm-details-nav .crm-detail-nav-list {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .crm-details-nav .crm-detail-nav-link {
        width: auto;
    }

    .admin-shell-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .communications-toolbar,
    .communications-participant-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .scheduler-week-grid {
        min-width: 0;
    }
}

@media (max-width: 700px) {
    .kos-app-shell {
        padding: 12px;
    }

    .kos-page-header,
    .crm-module-header,
    .kos-template-header {
        align-items: stretch;
        display: grid;
    }

    .admin-shell-nav,
    .crm-form-grid,
    .crm-inline-form,
    .crm-toolbar,
    .crm-list-toolbar,
    .crm-index-bottom-action-bar,
    .kos-login-card,
    .crm-record-summary,
    .communications-toolbar,
    .communications-participant-row {
        grid-template-columns: 1fr;
    }

    .crm-index-actions-left,
    .crm-index-actions-right,
    .crm-index-pagination {
        justify-content: flex-start;
    }

    .crm-field.is-wide {
        grid-column: auto;
    }

    .kos-login-page {
        padding: 14px;
    }

    .kos-login-footer {
        font-size: .68rem;
        padding: .28rem .45rem;
    }

    .communications-panel-actions,
    .communications-section-header,
    .communications-sticky-actions,
    .scheduler-header-actions,
    .scheduler-week-actions,
    .scheduler-panel-actions,
    .scheduler-table-actions,
    .scheduler-section-heading {
        align-items: stretch;
        display: grid;
        justify-content: stretch;
    }

    .scheduler-attendee-row {
        grid-template-columns: 1fr;
    }

    .scheduler-week-grid {
        min-width: 0;
    }
}
