:root {
    --sc-bg: #f5f5f7;
    --sc-surface: #ffffff;
    --sc-surface-muted: #fbfbfd;
    --sc-text: #1d1d1f;
    --sc-muted: #6e6e73;
    --sc-border: #e5e5ea;
    --sc-border-strong: #d2d2d7;
    --sc-primary: #245b5a;
    --sc-primary-soft: #e7f0ef;
    --sc-primary-hover: #1d4a49;
    --sc-home: #245b5a;
    --sc-patients: #1f8a7a;
    --sc-professionals: #4c6793;
    --sc-appointments: #247ba0;
    --sc-reports: #9a6b22;
    --sc-module: var(--sc-home);
    --sc-module-soft: #e7f0ef;
    --sc-warning-soft: #fff7e6;
    --sc-danger-soft: #fff0ef;
    --sc-radius: 8px;
    --sc-radius-sm: 8px;
    --sc-shadow: 0 18px 50px rgba(29, 29, 31, 0.08);
    --sc-shadow-soft: 0 10px 24px rgba(29, 29, 31, 0.06);
    --sc-sidebar-width: 280px;
    --sc-topbar-height: 86px;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    background: var(--sc-bg);
    color: var(--sc-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 15px;
    letter-spacing: 0;
    overflow-x: hidden;
}

a {
    color: inherit;
}

.sc-app-shell {
    min-height: 100vh;
}

.sc-module-home {
    --sc-module: var(--sc-home);
    --sc-module-soft: #e7f0ef;
}

.sc-module-patients {
    --sc-module: var(--sc-patients);
    --sc-module-soft: #e4f5f1;
}

.sc-module-professionals {
    --sc-module: var(--sc-professionals);
    --sc-module-soft: #eaf0fa;
}

.sc-module-appointments {
    --sc-module: var(--sc-appointments);
    --sc-module-soft: #e6f3f8;
}

.sc-module-reports {
    --sc-module: var(--sc-reports);
    --sc-module-soft: #fbf1df;
}

.sc-module-reminders {
    --sc-module: #7d6aa9;
    --sc-module-soft: #f0ecf8;
}

.sc-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--sc-sidebar-width);
    padding: 28px 18px;
    background: rgba(255, 255, 255, 0.92);
    border-right: 1px solid var(--sc-border);
    display: flex;
    flex-direction: column;
    gap: 34px;
    z-index: 20;
}

.sc-sidebar.offcanvas {
    visibility: visible;
    transform: none;
}

.sc-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sc-sidebar-close,
.sc-menu-button {
    width: 40px;
    height: 40px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: var(--sc-surface);
    color: var(--sc-muted);
    display: none;
    place-items: center;
}

.sc-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 10px;
    text-decoration: none;
}

.sc-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sc-primary);
    color: #fff;
    font-weight: 700;
    font-size: 0;
    line-height: 0;
    box-shadow: var(--sc-shadow-soft);
    flex-shrink: 0;
}

.sc-brand-mark::before {
    content: "S";
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    transform: translateY(1px);
}

.sc-brand-name {
    display: block;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.1;
}

.sc-brand-subtitle {
    display: block;
    margin-top: 3px;
    color: var(--sc-muted);
    font-size: 12px;
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-nav {
    display: grid;
    gap: 6px;
}

.sc-nav-link {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 13px;
    border-radius: 14px;
    color: var(--sc-muted);
    text-decoration: none;
    font-weight: 600;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.sc-nav-link i {
    width: 20px;
    color: inherit;
    text-align: center;
}

.sc-nav-link:hover {
    background: var(--sc-primary-soft);
    color: var(--sc-primary);
    transform: translateX(2px);
}

.sc-nav-link.active {
    background: var(--sc-primary);
    color: #fff;
    box-shadow: 0 12px 26px rgba(36, 91, 90, 0.2);
}

.sc-main-shell {
    min-height: 100vh;
    padding-left: var(--sc-sidebar-width);
}

.sc-topbar {
    position: sticky;
    top: 0;
    min-height: var(--sc-topbar-height);
    padding: 20px 36px;
    background: rgba(245, 245, 247, 0.86);
    border-bottom: 1px solid rgba(229, 229, 234, 0.72);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    z-index: 10;
}

.sc-topbar-heading {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 14px;
}

.sc-topbar h1 {
    margin: 0;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 720;
    overflow-wrap: anywhere;
}

.sc-eyebrow {
    margin: 0 0 4px;
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
}

.sc-topbar-subtitle {
    margin: 3px 0 0;
    color: var(--sc-muted);
    overflow-wrap: anywhere;
}

.sc-topbar-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

.sc-icon-button {
    width: 40px;
    height: 40px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: var(--sc-surface);
    color: var(--sc-muted);
    display: grid;
    place-items: center;
    transition: border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

.sc-icon-button:hover {
    color: var(--sc-primary);
    border-color: var(--sc-border-strong);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-user-button {
    min-height: 46px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 5px 12px 5px 5px;
    background: var(--sc-surface);
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--sc-text);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-user-button:hover,
.sc-user-button[aria-expanded="true"] {
    border-color: var(--sc-border-strong);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--sc-primary-soft);
    color: var(--sc-primary);
    font-size: 12px;
    font-weight: 800;
}

.sc-user-meta {
    display: grid;
    text-align: left;
}

.sc-user-name {
    font-size: 13px;
    font-weight: 700;
}

.sc-user-role {
    color: var(--sc-muted);
    font-size: 12px;
}

.sc-dropdown {
    margin-top: 10px;
    padding: 8px;
    border: 1px solid var(--sc-border);
    border-radius: 16px;
    box-shadow: var(--sc-shadow);
}

.sc-dropdown .dropdown-item {
    border-radius: 10px;
    padding: 9px 10px;
    font-size: 14px;
}

.sc-dropdown .dropdown-item.active,
.sc-dropdown .dropdown-item:active {
    background: var(--sc-primary-soft);
    color: var(--sc-primary);
}

.sc-role-switcher-button {
    min-height: 40px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 0 13px;
    background: var(--sc-surface);
    color: var(--sc-muted);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 750;
    transition: border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

.sc-role-switcher-button:hover,
.sc-role-switcher-button[aria-expanded="true"] {
    color: var(--sc-primary);
    border-color: var(--sc-border-strong);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-page {
    padding: 30px 36px 48px;
}

.sc-page-header {
    margin-bottom: 22px;
    padding: 22px;
    border: 1px solid rgba(229, 229, 234, .8);
    border-left: 5px solid var(--sc-module);
    border-radius: var(--sc-radius);
    background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, .72) 100%);
    box-shadow: var(--sc-shadow-soft);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.sc-page-header h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 760;
}

.sc-page-header p {
    margin: 8px 0 0;
    color: var(--sc-muted);
    max-width: 680px;
}

.sc-card {
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    box-shadow: var(--sc-shadow-soft);
}

.sc-card-body {
    padding: 28px;
}

.sc-card-title {
    margin: 0;
    font-size: 16px;
    font-weight: 740;
}

.sc-card-muted {
    color: var(--sc-muted);
}

.sc-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

.sc-stat-grid-compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sc-stat-card {
    padding: 18px;
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-left: 5px solid var(--sc-module);
    border-radius: var(--sc-radius);
    box-shadow: var(--sc-shadow-soft);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.sc-accent-agenda {
    --sc-module: var(--sc-appointments);
    --sc-module-soft: #e6f3f8;
}

.sc-accent-patients {
    --sc-module: var(--sc-patients);
    --sc-module-soft: #e4f5f1;
}

.sc-accent-finance {
    --sc-module: var(--sc-reports);
    --sc-module-soft: #fbf1df;
}

.sc-accent-reminders {
    --sc-module: #7d6aa9;
    --sc-module-soft: #f0ecf8;
}

.sc-stat-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}

.sc-stat-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--sc-radius-sm);
    display: grid;
    place-items: center;
    background: var(--sc-module-soft);
    color: var(--sc-module);
}

.sc-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--sc-shadow);
}

.sc-stat-label {
    margin: 0 0 12px;
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 650;
}

.sc-stat-value {
    margin: 0;
    font-size: 32px;
    line-height: 1;
    font-weight: 780;
}

.sc-stat-note {
    margin: 10px 0 0;
    color: var(--sc-muted);
    font-size: 13px;
}

.sc-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr);
    gap: 18px;
}

.sc-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 18px;
}

.sc-stack {
    display: grid;
    align-content: start;
    gap: 18px;
}

.sc-card-accent {
    border-left: 5px solid var(--sc-module);
}

.sc-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.sc-list {
    display: grid;
    gap: 10px;
}

.sc-list-item {
    padding: 14px;
    border: 1px solid var(--sc-border);
    border-radius: 14px;
    background: var(--sc-surface-muted);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sc-list-compact {
    padding: 12px;
}

.sc-list-item strong {
    display: block;
    font-size: 14px;
}

.sc-list-item span {
    color: var(--sc-muted);
    font-size: 13px;
}

.sc-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--sc-primary-soft);
    color: var(--sc-primary);
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.sc-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.sc-status-active,
.sc-status-open,
.sc-status-paid,
.sc-status-present {
    background: #e5f6ee;
    color: #17683f;
    border-color: #bfe8d1;
}

.sc-status-scheduled {
    background: #eaf3ff;
    color: #235f92;
    border-color: #bdd7f0;
}

.sc-status-inactive {
    background: #fff0ef;
    color: #8d2c25;
    border-color: #f2c0bb;
}

.sc-status-waiting {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

.sc-status-financial {
    background: #fff1e7;
    color: #9a4a14;
    border-color: #f2c9a9;
}

.sc-status-info {
    background: #e5f0fb;
    color: #235f92;
    border-color: #bdd7f0;
}

.sc-status-confirmed {
    background: #e8fbf7;
    color: #11685c;
    border-color: #b9e8df;
}

.sc-status-pending,
.sc-status-warning,
.sc-status-receipt,
.sc-status-partial,
.sc-status-notified {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

.sc-status-rescheduled {
    background: #f1edff;
    color: #5942a4;
    border-color: #d6ccff;
}

.sc-status-late,
.sc-status-canceled,
.sc-status-absent {
    background: #fff0ef;
    color: #9d2c22;
    border-color: #f2c0bb;
}

.sc-status-blocked {
    background: #eeeeef;
    color: #53535a;
    border-color: #d4d4d8;
}

.sc-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.sc-filter-card {
    margin-bottom: 18px;
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-left: 5px solid var(--sc-module);
    border-radius: var(--sc-radius);
    background: var(--sc-surface);
    box-shadow: var(--sc-shadow-soft);
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.sc-filter-card-inset {
    margin: 18px 0 16px;
    box-shadow: none;
}

.sc-filter-search {
    min-height: 42px;
    flex: 1 1 280px;
    padding: 0 14px;
    border-radius: 999px;
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    color: var(--sc-muted);
    display: flex;
    align-items: center;
    gap: 10px;
}

.sc-filter-input {
    width: 100%;
    min-width: 0;
    border: 0;
    background: transparent;
    color: var(--sc-text);
    outline: 0;
}

.sc-filter-input::placeholder {
    color: var(--sc-muted);
}

.sc-filter-select {
    min-height: 38px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 0 13px;
    background: #fff;
    color: var(--sc-muted);
    font-weight: 700;
}

.sc-filter-chip {
    min-height: 38px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 5px 13px;
    background: #fff;
    color: var(--sc-muted);
    font-weight: 700;
    justify-content: center;
}

.sc-filter-chip.active {
    background: var(--sc-module-soft);
    border-color: color-mix(in srgb, var(--sc-module) 24%, #ffffff);
    color: var(--sc-module);
}

.sc-filter-manage {
    min-height: 38px;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0 10px;
    background: transparent;
    color: var(--sc-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 750;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.sc-filter-manage:hover {
    background: var(--sc-module-soft);
    border-color: color-mix(in srgb, var(--sc-module) 18%, #ffffff);
    color: var(--sc-module);
}

.sc-profile-preview {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border-radius: var(--sc-radius);
    background: var(--sc-module-soft);
}

.sc-profile-preview strong,
.sc-profile-preview span:not(.sys-avatar):not(.sc-profile-avatar) {
    display: block;
}

.sc-profile-preview span:not(.sys-avatar):not(.sc-profile-avatar) {
    color: var(--sc-muted);
    font-size: 13px;
}

.sys-avatar,
.sc-profile-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--sc-primary, #0f766e);
    color: #fff;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    flex-shrink: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.sys-avatar-sm,
.sc-profile-avatar-sm {
    width: 32px;
    height: 32px;
    font-size: .75rem;
}

.sys-avatar-md,
.sc-profile-avatar-md {
    width: 44px;
    height: 44px;
    font-size: .85rem;
}

.sys-avatar-lg {
    width: 56px;
    height: 56px;
    font-size: 1rem;
}

.sc-table-person {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sc-mini-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.sc-mini-grid span {
    min-height: 42px;
    padding: 10px;
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    color: var(--sc-muted);
    font-weight: 700;
}

.sc-week-strip {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
}

.sc-week-strip div {
    min-height: 92px;
    padding: 12px;
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    display: grid;
    align-content: space-between;
}

.sc-week-strip strong {
    font-size: 13px;
}

.sc-button-primary,
.sc-button-secondary,
.sc-button-success {
    min-height: 42px;
    border-radius: 999px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid transparent;
    font-weight: 700;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.sc-button-primary {
    background: var(--sc-primary);
    color: #fff;
    box-shadow: 0 12px 24px rgba(36, 91, 90, 0.18);
}

.sc-button-primary:hover:not(:disabled) {
    background: var(--sc-primary-hover);
    transform: translateY(-1px);
}

.sc-button-primary:disabled {
    opacity: .72;
    cursor: not-allowed;
}

.sc-button-success {
    background: #1f8a4c;
    color: #fff;
    border-color: #1f8a4c;
    box-shadow: 0 12px 24px rgba(31, 138, 76, 0.18);
}

.sc-button-success:hover:not(:disabled) {
    background: #17683f;
    border-color: #17683f;
    color: #fff;
    transform: translateY(-1px);
}

.sc-button-secondary {
    background: var(--sc-surface);
    border-color: var(--sc-border);
    color: var(--sc-text);
}

.sc-button-secondary:hover {
    border-color: var(--sc-border-strong);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-table-shell {
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface);
    -webkit-overflow-scrolling: touch;
}

.sc-table {
    width: 100%;
    min-width: 0px;
    table-layout: auto;
    margin: 0;
    border-collapse: collapse;
}

.sc-table th,
.sc-table td {
    padding: 13px 14px;
    border-bottom: 1px solid var(--sc-border);
    vertical-align: middle;
}

.sc-table th {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0;
    background: var(--sc-surface-muted);
}

.sc-table tr:last-child td {
    border-bottom: 0;
}

.sc-table-subtitle {
    display: block;
    margin-top: 3px;
    color: var(--sc-muted);
    font-size: 12px;
}

.sc-table-action {
    min-height: 34px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 0 12px;
    background: #fff;
    color: var(--sc-module);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 750;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-table-action:hover {
    border-color: color-mix(in srgb, var(--sc-module) 30%, #ffffff);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-action-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    justify-content: center;
}

.sc-icon-mini {
    width: 34px;
    height: 34px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: #fff;
    color: var(--sc-muted);
    display: grid;
    place-items: center;
    transition: border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

.sc-icon-danger {
    color: #8d2c25;
}

.sc-icon-success {
    color: #17683f;
}

.sc-icon-mini:hover {
    color: var(--sc-module);
    border-color: color-mix(in srgb, var(--sc-module) 30%, #ffffff);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-icon-danger:hover {
    color: #8d2c25;
    border-color: #f2c0bb;
}

.sc-icon-success:hover {
    color: #17683f;
    border-color: #bfe8d1;
}

.sc-actions-cell {
    width: 120px;
    min-width: 120px;
    text-align: center;
    white-space: nowrap;
}

.sc-table-footer {
    margin-top: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--sc-muted);
    font-size: 13px;
}

.sc-pagination-preview {
    display: flex;
    gap: 6px;
}

.sc-pagination-preview button {
    min-height: 34px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 0 12px;
    background: #fff;
    color: var(--sc-muted);
    font-weight: 700;
}

.sc-pagination-preview button.active {
    background: var(--sc-module);
    color: #fff;
    border-color: var(--sc-module);
}

/* ─── Pagination component ───────────────────────────────────────────── */

.sc-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--sc-border);
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-pagination-info-only {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--sc-border);
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-pagination-info strong {
    color: var(--sc-text);
    font-weight: 600;
}

.sc-pagination-controls {
    display: flex;
    align-items: center;
    gap: 4px;
}

.sc-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    border: 1px solid var(--sc-border);
    border-radius: 8px;
    background: #fff;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    cursor: pointer;
}

a.sc-pagination-btn:hover {
    background: var(--sc-accent-soft);
    border-color: var(--sc-module);
    color: var(--sc-module);
}

.sc-pagination-btn.is-active {
    background: var(--sc-module);
    border-color: var(--sc-module);
    color: #fff;
    font-weight: 700;
    cursor: default;
}

.sc-pagination-btn.is-disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.sc-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    color: var(--sc-muted);
    font-size: 13px;
}

.sc-pagination-size {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sc-pagination-size-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    padding: 0 10px;
    border: 1px solid var(--sc-border);
    border-radius: 6px;
    background: #fff;
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

a.sc-pagination-size-btn:hover {
    background: var(--sc-accent-soft);
    border-color: var(--sc-module);
    color: var(--sc-module);
}

.sc-pagination-size-btn.is-active {
    background: var(--sc-module);
    border-color: var(--sc-module);
    color: #fff;
    font-weight: 700;
    cursor: default;
}

.sc-pagination-nav {
    gap: 6px;
    padding: 0 14px;
    min-height: 38px;
    min-width: 0;
}

.sc-pagination-indicator {
    color: var(--sc-text);
    font-weight: 700;
    font-size: 13px;
    white-space: nowrap;
    padding: 0 10px;
}

.sc-attendance-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--sc-border);
    color: var(--sc-muted);
    font-size: 13px;
}

.sc-attendance-pagination-count strong,
.sc-attendance-page-indicator {
    color: var(--sc-text);
    font-weight: 750;
}

.sc-attendance-pagination-controls {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sc-attendance-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--sc-border);
    border-radius: 10px;
    background: var(--sc-surface);
    color: var(--sc-text);
    font-weight: 750;
    text-decoration: none;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.sc-attendance-page-btn:not(.is-disabled):not(:disabled):hover {
    background: var(--sc-accent-soft);
    border-color: var(--sc-module);
    color: var(--sc-module);
    transform: translateY(-1px);
}

.sc-attendance-page-btn.is-disabled {
    opacity: .46;
    cursor: not-allowed;
    pointer-events: none;
}

.sc-attendance-page-indicator {
    min-width: 112px;
    text-align: center;
}

[data-sc-attendance-list-region] {
    transition: opacity .16s ease;
}

[data-sc-attendance-list-region].is-loading {
    opacity: .58;
    pointer-events: none;
}

.sc-service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}

.sc-service-card {
    min-width: 0;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: #fff;
    box-shadow: var(--sc-shadow-soft);
    padding: 16px;
    display: grid;
    gap: 16px;
}

.sc-service-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.sc-service-card-header h3 {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--sc-text);
}

.sc-service-card-header p,
.sc-service-card-footer small {
    margin: 0;
    color: var(--sc-muted);
    font-size: .84rem;
    line-height: 1.45;
}

.sc-service-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.sc-service-metrics div {
    min-width: 0;
    padding: 10px;
    border-radius: 12px;
    border: 1px solid var(--sc-border);
    background: var(--sc-surface-muted);
}

.sc-service-metrics span,
.sc-service-metrics strong {
    display: block;
}

.sc-service-metrics span {
    color: var(--sc-muted);
    font-size: .72rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.sc-service-metrics strong {
    margin-top: 3px;
    color: var(--sc-text);
    font-size: .88rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.sc-service-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 2px;
}

.sc-filter-number {
    max-width: 132px;
}

.sc-list-loading {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.sc-empty-state {
    min-height: 180px;
    border: 1px dashed var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
    color: var(--sc-muted);
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    text-align: center;
    padding: 24px;
}

.sc-empty-state i {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--sc-primary-soft);
    color: var(--sc-module);
}

.sc-empty-state strong {
    color: var(--sc-text);
    font-weight: 800;
}

.sc-empty-state-compact {
    min-height: 150px;
}

.sc-schedule-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr);
    gap: 18px;
    align-items: start;
}

.sc-schedule-week-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 12px;
}

.sc-schedule-day-card,
.sc-block-card {
    min-width: 0;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: #fff;
    box-shadow: var(--sc-shadow-soft);
}

.sc-schedule-day-card {
    padding: 14px;
    display: grid;
    gap: 14px;
}

.sc-schedule-day-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.sc-schedule-day-head strong,
.sc-schedule-day-head span,
.sc-schedule-day-body span,
.sc-block-card strong,
.sc-block-card span,
.sc-block-card small {
    display: block;
}

.sc-schedule-day-head strong,
.sc-block-card strong {
    color: var(--sc-text);
    font-weight: 850;
}

.sc-schedule-day-head div > span,
.sc-schedule-day-body span,
.sc-block-card span,
.sc-block-card small {
    color: var(--sc-muted);
    font-size: .84rem;
}

.sc-schedule-day-body {
    display: grid;
    gap: 7px;
}

.sc-schedule-day-body span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sc-schedule-day-body i {
    width: 18px;
    color: var(--sc-module);
}

.sc-block-list {
    display: grid;
    gap: 10px;
}

.sc-block-card {
    padding: 13px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: start;
}

.sc-block-card .sc-action-row {
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.sc-placeholder-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
}

.sc-skeleton-list {
    display: grid;
    gap: 12px;
}

.sc-skeleton-row {
    min-height: 58px;
    border: 1px solid var(--sc-border);
    border-radius: 14px;
    background: linear-gradient(90deg, #fbfbfd 0%, #f4f4f6 50%, #fbfbfd 100%);
}

.sc-calendar-preview {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
}

.sc-calendar-preview span {
    aspect-ratio: 1;
    border-radius: 12px;
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
}

.sc-calendar-preview .is-filled {
    background: var(--sc-primary-soft);
    border-color: rgba(36, 91, 90, .22);
}

.sc-segmented {
    min-height: 42px;
    padding: 4px;
    border-radius: 999px;
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    display: inline-flex;
    gap: 4px;
}

.sc-segmented button {
    min-width: 78px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--sc-muted);
    font-weight: 750;
}

.sc-segmented button.active {
    background: var(--sc-module);
    color: #fff;
}

.sc-agenda-legend {
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.sc-agenda-main {
    min-height: 620px;
    overflow: hidden;
}

.sc-agenda-view {
    display: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sc-agenda-view.active {
    display: block;
    animation: scFadeIn 160ms ease;
}

@keyframes scFadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.sc-agenda-shell {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}

.sc-day-timeline {
    display: grid;
    gap: 12px;
}

.sc-time-slot {
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
}

.sc-time {
    padding-top: 12px;
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 750;
}

.sc-appointment-block {
    position: relative;
    width: 100%;
    text-align: left;
    min-height: 72px;
    padding: 14px 16px;
    border-radius: var(--sc-radius);
    border: 1px solid var(--sc-border);
    background: var(--sc-surface-muted);
    display: grid;
    gap: 3px;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-appointment-block:hover {
    border-color: color-mix(in srgb, var(--sc-module) 24%, #ffffff);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-appointment-block::before {
    content: "";
    position: absolute;
    inset: 12px auto 12px 0;
    width: 4px;
    border-radius: 999px;
    background: var(--sc-module);
}

.sc-appointment-block strong,
.sc-appointment-block span,
.sc-appointment-block em {
    display: block;
}

.sc-appointment-block span,
.sc-appointment-block em {
    color: var(--sc-muted);
    font-size: 13px;
    font-style: normal;
}

.sc-appointment-block.is-free {
    background: #f8fbfa;
}

.sc-appointment-block.is-free::before {
    background: #82b39d;
}

.sc-appointment-block.is-confirmed::before {
    background: #2f7db7;
}

.sc-appointment-block.is-pending::before {
    background: #b9821f;
}

.sc-appointment-block.is-blocked::before {
    background: #77777d;
}

.sc-appointment-block.is-late::before {
    background: #b9473e;
}

.sc-week-calendar {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
}

.sc-week-calendar div {
    min-height: 126px;
    padding: 10px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
    display: grid;
    align-content: start;
    gap: 8px;
}

.sc-week-calendar strong {
    font-size: 12px;
}

.sc-week-calendar span {
    min-height: 18px;
    border-radius: 999px;
    display: block;
}

.sc-week-calendar .is-confirmed {
    background: #b9d8f0;
}

.sc-week-calendar .is-present,
.sc-week-calendar .is-free {
    background: #bce6d0;
}

.sc-week-calendar .is-pending {
    background: #f2d59a;
}

.sc-week-calendar .is-blocked {
    background: #d6d6da;
}

.sc-week-calendar .is-late {
    background: #f0b7b0;
}

.sc-week-schedule {
    display: grid;
    grid-template-columns: 72px repeat(5, minmax(0, 1fr));
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
}

.sc-week-schedule strong,
.sc-week-hour {
    min-width: 120px;
    min-height: 38px;
    padding: 10px;
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-week-schedule button {
    min-width: 120px;
    min-height: 76px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    padding: 10px;
    text-align: left;
    color: var(--sc-text);
    font-weight: 750;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-week-schedule button:hover,
.sc-month-calendar button:hover {
    border-color: color-mix(in srgb, var(--sc-module) 24%, #ffffff);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-week-schedule .is-confirmed,
.sc-month-calendar .has-events {
    background: #e5f0fb;
}

.sc-week-schedule .is-free,
.sc-week-schedule .is-present {
    background: #e5f6ee;
}

.sc-week-schedule .is-pending,
.sc-week-schedule .is-rescheduled {
    background: #fff4dc;
}

.sc-week-schedule .is-blocked {
    background: #eeeeef;
}

.sc-week-schedule .is-late,
.sc-week-schedule .is-canceled,
.sc-week-schedule .is-absent {
    background: #fff0ef;
}

.sc-month-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    min-width: 760px;
}

.sc-month-calendar strong {
    min-height: 34px;
    display: grid;
    place-items: center;
    color: var(--sc-muted);
    font-size: 12px;
}

.sc-month-calendar button,
.sc-month-calendar a {
    min-height: 104px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    padding: 10px;
    background: var(--sc-surface-muted);
    text-align: left;
    display: grid;
    align-content: start;
    gap: 6px;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-month-calendar button > span,
.sc-month-calendar a > span {
    font-weight: 800;
}

.sc-month-calendar small {
    width: fit-content;
    min-height: 22px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #fff;
    color: var(--sc-muted);
    font-size: 11px;
    font-weight: 750;
}

.sc-month-calendar .has-block {
    background: #eeeeef;
}

.sc-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 7px;
}

.sc-month-grid span {
    aspect-ratio: 1;
    padding: 7px;
    border-radius: var(--sc-radius-sm);
    border: 1px solid var(--sc-border);
    background: var(--sc-surface-muted);
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
    position: relative;
}

.sc-month-grid span.has-events {
    background: var(--sc-module-soft);
    color: var(--sc-module);
    border-color: color-mix(in srgb, var(--sc-module) 24%, #ffffff);
}

.sc-month-grid small {
    position: absolute;
    width: 7px;
    height: 7px;
    right: 7px;
    bottom: 7px;
    border-radius: 999px;
    background: var(--sc-module);
}

.sc-agenda-toolbar {
    margin-bottom: 20px;
    padding: 14px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: color-mix(in srgb, var(--sc-surface) 84%, #f5f5f7);
    display: grid;
    gap: 12px;
}

.sc-agenda-toolbar-main,
.sc-agenda-toolbar-filters,
.sc-agenda-nav-group {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.sc-agenda-toolbar-main {
    justify-content: space-between;
}

.sc-agenda-toolbar-filters .form-select {
    flex: 1 1 210px;
    min-width: 180px;
}

.sc-agenda-new-button {
    flex: 0 0 auto;
}

.sc-filter-date {
    width: 164px;
    flex: 0 0 164px;
}

.sc-agenda-calendar-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.sc-agenda-shell.is-current-period {
    padding: 12px;
    margin: -12px;
    border-radius: calc(var(--sc-radius) + 4px);
    box-shadow: 0 0 0 1px rgba(63, 155, 114, .16), 0 0 0 5px rgba(63, 155, 114, .045);
}

.sc-agenda-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.sc-period-badge,
.sc-period-mini-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    border: 1px solid rgba(63, 155, 114, .22);
    border-radius: 999px;
    background: rgba(244, 251, 247, .9);
    color: #2f7659;
    line-height: 1;
    font-style: normal;
    white-space: nowrap;
}

.sc-period-badge {
    min-height: 24px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 800;
}

.sc-period-mini-badge {
    min-height: 18px;
    padding: 3px 7px;
    font-size: 10px;
    font-weight: 850;
}

.sc-agenda-day-view {
    display: grid;
    gap: 10px;
}

.sc-agenda-day-row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
}

.sc-agenda-day-row > time {
    padding-top: 14px;
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 800;
}

.sc-agenda-event,
.sc-agenda-week-event,
.sc-agenda-availability,
.sc-agenda-month-day {
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
    color: var(--sc-text);
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-agenda-event {
    position: relative;
    width: 100%;
    min-height: 76px;
    padding: 14px 16px 14px 18px;
    text-align: left;
    display: grid;
    gap: 4px;
    overflow: hidden;
}

.sc-agenda-event::before {
    content: "";
    position: absolute;
    inset: 12px auto 12px 0;
    width: 4px;
    border-radius: 999px;
    background: #2f7db7;
}

.sc-agenda-event:hover,
.sc-agenda-week-event:hover,
.sc-agenda-availability:hover,
.sc-agenda-month-day:hover {
    border-color: color-mix(in srgb, var(--sc-module) 24%, #ffffff);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-agenda-event-time,
.sc-agenda-event small {
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 650;
}

.sc-agenda-event-badges {
    margin-top: 4px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.sc-agenda-event.is-free {
    background: #f4fbf7;
}

.sc-agenda-event.is-free::before {
    background: #6fab8c;
}

.sc-agenda-event.is-disabled,
.sc-time-picker-slot:disabled,
.sc-reschedule-slot:disabled {
    cursor: not-allowed;
    background: #f2f3f4;
    color: var(--sc-muted);
    opacity: .68;
    box-shadow: none;
    transform: none;
}

.sc-agenda-event.is-disabled::before {
    background: #a5a6ab;
}

.sc-agenda-event.is-blocked,
.sc-agenda-week-event.is-blocked {
    background: #f0f0f2;
}

.sc-agenda-event.is-break,
.sc-agenda-week-event.is-break {
    background: #f6f4ef;
    cursor: not-allowed;
}

.sc-agenda-event.is-blocked::before {
    background: #77777d;
}

.sc-agenda-event.is-break::before {
    background: #9b8f72;
}

.sc-agenda-event.is-scheduled::before {
    background: #2f7db7;
}

.sc-agenda-event.is-confirmed::before {
    background: #1f9d8a;
}

.sc-agenda-event.is-notified::before,
.sc-agenda-event.is-pending::before {
    background: #c38a22;
}

.sc-agenda-event.is-rescheduled::before {
    background: #7057c8;
}

.sc-agenda-event.is-canceled::before,
.sc-agenda-event.is-late::before,
.sc-agenda-event.is-absent::before {
    background: #b9473e;
}

.sc-agenda-event.is-present::before {
    background: #3f9b72;
}

.sc-agenda-event.is-past-summary-card {
    min-height: 68px;
    background: #f0f1f3;
}

.sc-agenda-event.is-past-summary-card::before {
    background: #a5a6ab;
}

.sc-agenda-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 12px;
}

.sc-agenda-week-day {
    min-width: 0;
    min-height: 260px;
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sc-agenda-week-day.is-today,
.sc-agenda-month-day.is-today {
    border-color: rgba(63, 155, 114, .34);
    box-shadow: 0 0 0 3px rgba(63, 155, 114, .075), var(--sc-shadow-soft);
}

.sc-agenda-week-day.is-past-muted,
.sc-agenda-month-day.is-past-muted {
    opacity: .54;
}

.sc-agenda-week-day-head {
    padding-bottom: 8px;
    border-bottom: 1px solid var(--sc-border);
    color: var(--sc-text);
    text-decoration: none;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.sc-agenda-week-day-head > span:first-child {
    display: grid;
    gap: 5px;
}

.sc-agenda-week-day-head strong,
.sc-agenda-week-event strong {
    font-size: 13px;
    font-weight: 850;
}

.sc-agenda-week-day-head span,
.sc-agenda-week-event span,
.sc-agenda-week-empty,
.sc-agenda-week-more,
.sc-agenda-availability {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-agenda-week-empty {
    min-height: 54px;
    border: 1px dashed var(--sc-border);
    border-radius: var(--sc-radius-sm);
    display: grid;
    place-items: center;
}

.sc-agenda-week-event {
    width: 100%;
    min-height: 56px;
    padding: 9px 10px;
    text-align: left;
    display: grid;
    gap: 2px;
}

.sc-agenda-week-event.is-scheduled {
    background: #edf6ff;
}

.sc-agenda-week-event.is-confirmed {
    background: #eafbf7;
}

.sc-agenda-week-event.is-present {
    background: #edf9f2;
}

.sc-agenda-week-event.is-pending,
.sc-agenda-week-event.is-notified {
    background: #fff7e6;
}

.sc-agenda-week-event.is-rescheduled {
    background: #f4f0ff;
}

.sc-agenda-week-event.is-canceled,
.sc-agenda-week-event.is-late,
.sc-agenda-week-event.is-absent {
    background: #fff2f0;
}

.sc-agenda-week-more {
    text-decoration: none;
}

.sc-agenda-availability {
    margin-top: auto;
    padding: 9px 10px;
    background: #f4fbf7;
    color: #2f7659;
    text-align: center;
}

.sc-agenda-availability.is-muted {
    background: var(--sc-surface-muted);
    color: var(--sc-muted);
}

.sc-agenda-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.sc-agenda-month-grid > span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 850;
    text-align: center;
}

.sc-agenda-month-day {
    min-height: 108px;
    padding: 10px;
    display: grid;
    align-content: start;
    gap: 5px;
}

.sc-agenda-month-day strong {
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.sc-agenda-month-day span,
.sc-agenda-month-day small,
.sc-agenda-month-day em {
    color: var(--sc-muted);
    font-size: 11px;
    font-style: normal;
    font-weight: 750;
}

.sc-agenda-month-day.has-events {
    background: #edf6ff;
}

.sc-agenda-month-day.has-blocks {
    box-shadow: inset 0 0 0 1px rgba(119, 119, 125, .16);
}

.sc-agenda-month-day.is-outside {
    opacity: 1;
    background: #e7e9ee;
    border-color: #cfd3dc;
    color: #69707b;
    box-shadow: inset 0 0 0 1px rgba(105, 112, 123, .08);
}

.sc-agenda-month-day.is-outside strong,
.sc-agenda-month-day.is-outside span,
.sc-agenda-month-day.is-outside small,
.sc-agenda-month-day.is-outside em {
    color: #6e7580;
}

.sc-selected-slot,
.sc-reschedule-summary {
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid rgba(111, 171, 140, .26);
    border-radius: var(--sc-radius);
    background: #f4fbf7;
}

.sc-selected-slot {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sc-selected-slot .sc-appointment-summary-icon {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    line-height: 1;
}

.sc-selected-slot .sc-appointment-summary-icon i {
    line-height: 1;
    display: block;
}

.sc-selected-slot strong,
.sc-selected-slot span,
.sc-reschedule-summary strong,
.sc-reschedule-summary span,
.sc-reschedule-summary small {
    display: block;
}

.sc-selected-slot strong,
.sc-reschedule-summary strong {
    color: var(--sc-text);
    font-size: 16px;
}

.sc-selected-slot div > span,
.sc-reschedule-summary span,
.sc-reschedule-summary small {
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 700;
}

.sc-patient-combobox {
    position: relative;
}

.sc-patient-search-shell {
    position: relative;
}

.sc-patient-search-shell i {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--sc-muted);
    font-size: 13px;
    pointer-events: none;
}

.sc-patient-search-shell .form-control {
    padding-left: 36px;
}

.sc-patient-options {
    position: absolute;
    z-index: 40;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    max-height: 260px;
    padding: 6px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--sc-shadow);
    display: none;
    gap: 4px;
    overflow-y: auto;
}

.sc-patient-combobox.is-open .sc-patient-options {
    display: grid;
}

.sc-attendance-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
    align-items: stretch;
    gap: 12px;
    width: 100%;
}

.sc-attendance-filter .form-control,
.sc-attendance-filter .form-select,
.sc-attendance-filter .sc-button-primary,
.sc-attendance-filter .sc-button-secondary {
    min-height: 42px;
    width: 100%;
    max-width: none;
}

.sc-attendance-filter .sc-filter-patient-combobox {
    min-width: 0;
    grid-column: span 2;
}

.sc-attendance-filter .sc-filter-date {
    width: 100%;
    flex: initial;
}

#sc-operational-form .form-switch .form-check-input[role="switch"],
#sc-professional-policy-form .form-switch .form-check-input[role="switch"] {
    width: 2.65rem;
    height: 1.38rem;
    margin-top: 0.08rem;
    cursor: pointer;
    background-color: #e5e7eb;
    border: 1px solid #cbd5e1;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3.2' fill='%23ffffff'/%3e%3c/svg%3e");
    background-position: left center;
    background-size: 1.15rem 1.15rem;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
    transition: background-color .18s ease, border-color .18s ease, background-position .18s ease, box-shadow .18s ease;
}

#sc-operational-form .form-switch .form-check-input[role="switch"]:checked,
#sc-professional-policy-form .form-switch .form-check-input[role="switch"]:checked {
    background-color: var(--sc-accent, #245b5a);
    border-color: var(--sc-accent, #245b5a);
    background-position: right center;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--sc-accent, #245b5a) 18%, transparent);
}

#sc-operational-form .form-switch .form-check-input[role="switch"]:hover:not(:disabled),
#sc-professional-policy-form .form-switch .form-check-input[role="switch"]:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--sc-accent, #245b5a) 45%, #cbd5e1);
}

#sc-operational-form .form-switch .form-check-input[role="switch"]:focus,
#sc-professional-policy-form .form-switch .form-check-input[role="switch"]:focus {
    border-color: var(--sc-accent, #245b5a);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--sc-accent, #245b5a) 18%, transparent);
}

#sc-operational-form .form-switch .form-check-input[role="switch"]:disabled,
#sc-professional-policy-form .form-switch .form-check-input[role="switch"]:disabled {
    cursor: not-allowed;
    opacity: .55;
}

#sc-operational-form .form-switch .form-check-input[role="switch"]:disabled:checked,
#sc-professional-policy-form .form-switch .form-check-input[role="switch"]:disabled:checked {
    background-color: color-mix(in srgb, var(--sc-accent, #245b5a) 55%, #e5e7eb);
    border-color: color-mix(in srgb, var(--sc-accent, #245b5a) 50%, #cbd5e1);
}

.sc-policy-block {
    padding: 16px;
    border: 1px solid color-mix(in srgb, var(--sc-module, #245b5a) 14%, var(--sc-border, #e2e8f0));
    border-radius: 12px;
    background: color-mix(in srgb, var(--sc-module, #245b5a) 4%, var(--sc-surface, #ffffff));
}

.sc-policy-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.sc-policy-block-header strong {
    display: block;
    color: var(--sc-text, #0f172a);
    font-size: .96rem;
}

.sc-policy-block-header span {
    display: block;
    margin-top: 2px;
    color: var(--sc-muted, #64748b);
    font-size: .84rem;
}

.sc-policy-block-header .form-switch {
    min-width: 260px;
    margin: 0;
}

@media (max-width: 768px) {
    .sc-policy-block {
        padding: 14px;
    }

    .sc-policy-block-header {
        display: block;
    }

    .sc-policy-block-header .form-switch {
        min-width: 0;
        margin-top: 12px;
    }
}

.sc-attendance-period-control {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--sc-module) 18%, var(--sc-border));
    border-radius: 10px;
    background: color-mix(in srgb, var(--sc-module) 5%, var(--sc-surface));
    grid-column: span 2;
}

.sc-attendance-all-period {
    font-weight: 700;
}

.sc-attendance-period-field {
    min-width: 0;
    overflow: hidden;
    max-height: 74px;
    opacity: 1;
    transform: translateY(0);
    transition: max-height .18s ease, max-width .18s ease, opacity .16s ease, transform .16s ease, margin .16s ease, padding .16s ease;
}

.sc-attendance-period-field .form-label {
    margin-bottom: 4px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--sc-muted);
}

.sc-attendance-period-field.is-collapsed {
    display: none;
    width: 0;
    max-width: 0;
    max-height: 0;
    opacity: 0;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateY(-4px);
    pointer-events: none;
}

.sc-financial-summary-grid,
.sc-financial-form-grid {
    display: grid;
    gap: 12px;
}

.sc-financial-summary-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sc-financial-summary-grid section {
    padding: 14px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
}

.sc-financial-summary-grid span,
.sc-financial-summary-grid strong {
    display: block;
}

.sc-financial-summary-grid span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-financial-summary-grid strong {
    margin-top: 4px;
    color: var(--sc-text);
    font-size: 15px;
}

.sc-charge-progress {
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
    display: grid;
    gap: 10px;
}

.sc-charge-progress strong,
.sc-charge-progress span {
    display: block;
}

.sc-charge-progress strong {
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 850;
}

.sc-charge-progress span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-charge-progress-track {
    height: 7px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.sc-charge-progress-track span {
    height: 100%;
    border-radius: inherit;
    background: #3f9b72;
}

.sc-installments-panel {
    display: grid;
    gap: 10px;
}

.sc-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.sc-section-heading h6 {
    margin: 0;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 850;
}

.sc-section-heading span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-installments-table th,
.sc-installments-table td {
    padding: 10px 9px;
    font-size: 12px;
}

.sc-payment-entry-panel {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid rgba(63, 155, 114, .2);
    border-radius: var(--sc-radius-sm);
    background: #f8fcfa;
    display: grid;
    gap: 14px;
}

.sc-financial-form-grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.sc-financial-form-grid .sc-field-wide {
    grid-column: 1 / -1;
}

.sc-modal-inline-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
}

.sc-button-danger {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid rgba(188, 64, 52, .22);
    border-radius: var(--sc-radius-sm);
    background: #fff4f2;
    color: #9d3128;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 800;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.sc-button-danger:hover {
    border-color: rgba(188, 64, 52, .36);
    box-shadow: 0 10px 24px rgba(188, 64, 52, .12);
    transform: translateY(-1px);
}

.sc-money-adjust {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 8px;
}

.sc-charge-calculation {
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.sc-charge-calculation span,
.sc-charge-calculation strong {
    display: block;
}

.sc-charge-calculation span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-charge-calculation strong {
    margin-top: 2px;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 850;
}

.sc-finance-action-pill {
    width: fit-content;
    max-width: 100%;
    min-width: 0;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid rgba(63, 155, 114, .22);
    border-radius: 999px;
    background: #f4fbf7;
    color: #2f7659;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 850;
    white-space: nowrap;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.sc-finance-action-pill span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-attendance-table {
    width: 100%;
    table-layout: fixed;
}

.sc-attendance-table-shell {
    overflow-x: hidden;
}

.sc-attendance-table th,
.sc-attendance-table td {
    padding-left: 9px;
    padding-right: 9px;
    overflow: hidden;
}

.sc-cell-nowrap {
    white-space: nowrap;
}

.sc-cell-ellipsis {
    display: block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-attendance-table .sc-attendance-col-date {
    width: 10%;
}

.sc-attendance-table .sc-attendance-col-patient {
    width: 13%;
}

.sc-attendance-table .sc-attendance-col-professional {
    width: 11%;
}

.sc-attendance-table .sc-attendance-col-service {
    width: 14%;
}

.sc-attendance-table .sc-attendance-col-status {
    width: 14%;
}

.sc-attendance-table .sc-attendance-col-finance {
    width: 14%;
}

.sc-attendance-table .sc-attendance-col-values {
    width: 16%;
}

.sc-attendance-actions-col,
.sc-attendance-actions-cell {
    width: 8%;
    padding-left: 6px;
    padding-right: 6px;
}

.sc-attendance-table-no-professional .sc-attendance-col-date {
    width: 10%;
}

.sc-attendance-table-no-professional .sc-attendance-col-patient {
    width: 16%;
}

.sc-attendance-table-no-professional .sc-attendance-col-service {
    width: 18%;
}

.sc-attendance-table-no-professional .sc-attendance-col-status {
    width: 16%;
}

.sc-attendance-table-no-professional .sc-attendance-col-finance {
    width: 16%;
}

.sc-attendance-table-no-professional .sc-attendance-col-values {
    width: 16%;
}

.sc-attendance-table-no-professional .sc-attendance-actions-col,
.sc-attendance-table-no-professional .sc-attendance-actions-cell {
    width: 8%;
}

.sc-status-cell {
    min-width: 0;
    padding-left: 10px;
    padding-right: 14px;
}

.sc-finance-cell .sc-status {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-status-cell .sc-status {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 11.5px;
}

.sc-finance-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
}

.sc-finance-cell {
    min-width: 0;
    padding-left: 10px;
    padding-right: 12px;
}

@media (max-width: 1180px) {
    .sc-status-cell .sc-status {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

.sc-values-stack {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sc-values-main {
    font-weight: 700;
    white-space: nowrap;
}

.sc-values-sub {
    font-size: 0.82rem;
    color: var(--sc-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-attendance-actions-cell .sc-action-row {
    justify-content: center;
}

.sc-table-action-compact {
    min-height: 28px;
    padding: 0 8px;
    gap: 5px;
    font-size: 11px;
    line-height: 1;
    white-space: nowrap;
    max-width: 100%;
}

.sc-table-action-compact span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-table-action-compact i,
.sc-finance-action-pill i {
    font-size: 11px;
}

.sc-status-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.sc-attendance-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.sc-attendance-action-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    padding: 0;
    border-radius: 999px;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.sc-attendance-action-btn i {
    font-size: .88rem;
    line-height: 1;
}

.sc-attendance-action-btn.is-view i {
    color: #1f7db6;
}

.sc-attendance-action-btn.is-edit i {
    color: #d4a017;
}

.sc-financial-charge-form {
    min-height: 0;
    flex: 1 1 auto;
}

.sc-finance-action-pill:hover {
    border-color: rgba(63, 155, 114, .36);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-attendance-pending-card {
    margin-bottom: 18px;
}

.sc-attendance-pending-list {
    display: grid;
    gap: 10px;
}

.sc-attendance-pending-item {
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto auto auto;
    align-items: center;
    gap: 12px;
}

.sc-attendance-pending-item strong,
.sc-attendance-pending-item span {
    display: block;
}

.sc-attendance-pending-item div > strong {
    color: var(--sc-text);
    font-size: 14px;
}

.sc-attendance-pending-item div > span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

@media (max-width: 1280px) {
    .sc-attendance-filter {
        grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    }
}

@media (max-width: 768px) {
    .sc-attendance-filter,
    .sc-financial-summary-grid,
    .sc-financial-form-grid {
        grid-template-columns: 1fr;
    }

    .sc-attendance-filter .sc-filter-patient-combobox {
        min-width: 0;
    }

    .sc-modal-inline-actions {
        justify-content: stretch;
        flex-direction: column;
    }

    .sc-charge-calculation,
    .sc-attendance-pending-item {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .sc-attendance-filter .sc-filter-patient-combobox {
        grid-column: span 1;
    }
}

.sc-patient-option {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid transparent;
    border-radius: var(--sc-radius-sm);
    background: transparent;
    color: var(--sc-text);
    text-align: left;
    display: grid;
    gap: 2px;
}

.sc-patient-option:hover,
.sc-patient-option.is-selected {
    border-color: rgba(63, 155, 114, .2);
    background: #f4fbf7;
}

.sc-patient-option strong {
    font-size: 13px;
    font-weight: 800;
}

.sc-patient-option span,
.sc-patient-empty,
.sc-field-hint {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-patient-empty {
    padding: 10px;
}

.sc-field-hint {
    display: block;
    margin-top: 6px;
    color: #2f7659;
}

.sc-inline-check {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
    user-select: none;
}

.sc-inline-check input {
    width: 16px;
    height: 16px;
    accent-color: var(--sc-module);
}

.sc-notes-panel {
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 180ms ease, opacity 180ms ease, margin-top 180ms ease;
}

.sc-notes-panel.is-open {
    max-height: 180px;
    margin-top: 10px;
    opacity: 1;
}

.sc-filter-empty-note {
    padding: 10px 12px;
    border: 1px solid rgba(185, 130, 31, .18);
    border-radius: var(--sc-radius-sm);
    background: #fff8ea;
    color: #8a641e;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 750;
}

.sc-filter-patient-combobox {
    flex: 1 1 210px;
    min-width: 210px;
}

.sc-quick-actions-card {
    margin-top: 18px;
}

.sc-quick-action-nav {
    margin: 12px 0 14px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.sc-quick-action-date {
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: var(--sc-surface-muted);
    color: var(--sc-text);
    font-size: 12px;
    font-weight: 850;
}

.sc-link-subtle {
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.sc-link-subtle:hover {
    color: var(--sc-module);
}

.sc-quick-action-list {
    display: grid;
    gap: 10px;
}

.sc-quick-action-item {
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto minmax(260px, auto);
    align-items: center;
    gap: 12px;
}

.sc-quick-action-item.is-pending-close {
    border-color: rgba(185, 130, 31, .24);
    background: #fff8ea;
}

.sc-quick-action-main {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.sc-quick-action-main strong,
.sc-quick-action-main small,
.sc-quick-action-time {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-quick-action-main strong {
    color: var(--sc-text);
    font-size: 14px;
    font-weight: 850;
}

.sc-quick-action-main small,
.sc-quick-action-time {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-quick-action-patient-link {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    text-align: left;
    cursor: pointer;
    color: var(--sc-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.sc-quick-action-patient-link:hover {
    text-decoration: underline;
}

.sc-quick-action-patient-link strong {
    color: inherit;
    font-size: 14px;
    font-weight: 850;
}

.sc-quick-action-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
}

.sc-quick-action-buttons form,
.sc-modal-footer form {
    margin: 0;
}

.sc-chip-button {
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: #fff;
    color: var(--sc-text);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-chip-button:hover {
    border-color: rgba(63, 155, 114, .24);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-chip-button.is-danger {
    color: #a33d35;
    border-color: rgba(179, 71, 62, .24);
    background: #fff5f3;
}

@media (max-width: 900px) {
    .sc-quick-action-item {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .sc-quick-action-buttons {
        justify-content: flex-start;
    }
}

.sc-reschedule-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.sc-reschedule-summary section {
    min-width: 0;
    padding: 12px;
    border-radius: var(--sc-radius-sm);
    background: rgba(255, 255, 255, .76);
}

.sc-reschedule-slot-grid,
.sc-time-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: 8px;
}

.sc-reschedule-slot,
.sc-time-picker-slot {
    min-height: 66px;
    padding: 10px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: #f4fbf7;
    color: var(--sc-text);
    display: grid;
    place-items: center;
    gap: 2px;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-reschedule-slot strong,
.sc-reschedule-slot span,
.sc-time-picker-slot strong,
.sc-time-picker-slot span {
    display: block;
}

.sc-reschedule-slot strong,
.sc-time-picker-slot strong {
    font-size: 15px;
}

.sc-reschedule-slot span,
.sc-time-picker-slot span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-reschedule-slot:hover,
.sc-reschedule-slot.active,
.sc-time-picker-slot:hover {
    border-color: rgba(63, 155, 114, .42);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-1px);
}

.sc-reschedule-slot.active {
    background: #e2f5eb;
    color: #225f46;
}

.sc-report-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.sc-report-tile {
    padding: 16px;
    border-radius: var(--sc-radius);
    border: 1px solid var(--sc-border);
    background: var(--sc-surface-muted);
}

.sc-report-tile span,
.sc-report-tile small {
    display: block;
    color: var(--sc-muted);
}

.sc-report-tile strong {
    display: block;
    margin: 8px 0 6px;
    font-size: 30px;
    line-height: 1;
}

.sc-report-bars {
    display: grid;
    gap: 10px;
}

.sc-report-bars div {
    min-height: 48px;
    padding: 12px;
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42%;
    align-items: center;
    gap: 12px;
}

.sc-report-bars strong {
    min-height: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--sc-module) 68%, #e1e1e5 68%);
}

.sc-alert-surface {
    border-left: 5px solid #b9821f;
}

.sc-feedback {
    padding: 14px 16px;
    border-radius: var(--sc-radius);
    border: 1px solid var(--sc-border);
    background: var(--sc-surface);
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.sc-feedback-success {
    background: #e5f6ee;
    color: #17683f;
    border-color: #bfe8d1;
}

.sc-feedback-error {
    background: #fff0ef;
    color: #9d2c22;
    border-color: #f2c0bb;
}

.sc-feedback-warning,
.sc-feedback-confirm {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

.sc-modal-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr);
    gap: 14px;
}

.sc-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.sc-detail-grid section {
    min-height: 112px;
    padding: 14px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
}

.sc-detail-grid h6 {
    margin: 0 0 8px;
    font-weight: 800;
}

.sc-detail-grid p {
    margin: 0;
    color: var(--sc-muted);
}

.sc-appointment-details-grid > section {
    min-width: 0;
}

.sc-appointment-detail-status {
    order: 1;
}

.sc-appointment-detail-billing {
    order: 2;
}

.sc-appointment-detail-plan {
    order: 3;
}

.sc-appointment-detail-notes {
    order: 4;
}

.sc-appointment-detail-service {
    order: 5;
}

.sc-appointment-detail-professional {
    order: 6;
}

.sc-appointment-detail-cancel {
    grid-column: 1 / -1;
    order: 7;
}

.sc-appointment-history-section {
    grid-column: 1 / -1;
    order: 8;
}

.sc-appointment-history-list {
    display: grid;
    gap: 8px;
}

.sc-appointment-history-item {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid rgba(36, 91, 90, 0.12);
    border-radius: 8px;
    background: rgba(36, 91, 90, 0.04);
}

.sc-appointment-history-item strong {
    color: var(--sc-text);
    font-size: 0.9rem;
}

.sc-appointment-history-item span,
.sc-appointment-history-item small,
.sc-appointment-history-item p {
    margin: 0;
    color: var(--sc-muted);
    font-size: 0.82rem;
    font-weight: 600;
}

.sc-modal-tabs {
    gap: 8px;
    border-bottom: 1px solid var(--sc-border);
    padding-bottom: 10px;
    flex-wrap: wrap;
}

.sc-modal-tabs button {
    min-height: 36px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 0 13px;
    background: #fff;
    color: var(--sc-muted);
    font-weight: 750;
}

.sc-modal-tabs button.active {
    background: var(--sc-module);
    border-color: var(--sc-module);
    color: #fff;
}

.sc-modal-tab-content {
    padding-top: 16px;
}

.sc-patient-summary-strip,
.sc-patient-finance-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.sc-patient-summary-strip section,
.sc-patient-finance-summary section {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
}

.sc-patient-summary-strip span,
.sc-patient-finance-summary span,
.sc-patient-history-head span,
.sc-muted-note {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-patient-summary-strip strong,
.sc-patient-finance-summary strong {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--sc-ink);
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-patient-finance-meta,
.sc-patient-history-head {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 12px;
}

.sc-patient-finance-meta span,
.sc-patient-history-head span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: #fff;
}

.sc-patient-finance-table {
    max-height: 360px;
    overflow: auto;
}

.sc-patient-finance-table .sc-status {
    width: fit-content;
    margin-right: 4px;
}

.sc-patient-files-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.sc-patient-linked-block {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
}

.sc-patient-linked-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.sc-patient-linked-head h6 {
    margin: 0;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 850;
}

.sc-patient-linked-head span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.sc-patient-linked-list {
    display: grid;
    gap: 8px;
}

.sc-patient-linked-item {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: #fff;
}

.sc-patient-linked-item > i {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: var(--sc-primary-soft);
    color: var(--sc-module);
    font-size: 12px;
}

.sc-patient-linked-item > div {
    min-width: 0;
    flex: 1 1 auto;
}

.sc-patient-linked-item strong,
.sc-patient-linked-item span:not(.sc-status) {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-patient-linked-item strong {
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 800;
}

.sc-patient-linked-item span:not(.sc-status) {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 650;
}

.sc-patient-timeline {
    position: relative;
    display: grid;
    gap: 12px;
}

.sc-patient-timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px;
}

.sc-patient-timeline-marker {
    width: 12px;
    height: 12px;
    margin-top: 16px;
    border: 3px solid #fff;
    border-radius: 999px;
    background: var(--sc-module);
    box-shadow: 0 0 0 1px var(--sc-border);
}

.sc-patient-timeline-content {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: #fff;
}

.sc-patient-timeline-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.sc-patient-timeline-top strong,
.sc-patient-timeline-top span,
.sc-patient-timeline-content p,
.sc-patient-timeline-content small {
    display: block;
}

.sc-patient-timeline-top span,
.sc-patient-timeline-content small {
    color: var(--sc-muted);
    font-size: 12px;
}

.sc-patient-timeline-content p {
    margin: 8px 0 0;
    color: var(--sc-muted);
}

.sc-patient-timeline-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.sc-patient-clinical-timeline-card {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding: 11px;
    border: 1px solid rgba(12, 138, 113, .16);
    border-radius: var(--sc-radius-sm);
    background: linear-gradient(180deg, rgba(12, 138, 113, .06), rgba(255, 255, 255, .92));
}

.sc-patient-clinical-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.sc-patient-clinical-head > span:first-child {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    color: var(--sc-ink);
    font-size: 13px;
    font-weight: 850;
}

.sc-patient-clinical-head i {
    color: var(--sc-module);
}

.sc-patient-clinical-summary,
.sc-patient-clinical-empty {
    margin: 0;
    color: var(--sc-muted);
    font-size: 13px;
    line-height: 1.45;
}

.sc-patient-history-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.sc-chip-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 34px;
    max-width: 100%;
    padding: 0 12px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: #fff;
    color: var(--sc-text);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.sc-chip-button-primary {
    border-color: rgba(12, 138, 113, .22);
    background: var(--sc-primary-soft);
    color: var(--sc-module);
}

.sc-link-button {
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--sc-module);
    font-size: 13px;
    font-weight: 800;
}

.sc-link-button-muted {
    color: var(--sc-muted);
    font-weight: 600;
}

.sc-professional-summary-strip,
.sc-professional-finance-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.sc-professional-summary-strip section,
.sc-professional-finance-summary section,
.sc-professional-info-card {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
}

.sc-professional-summary-strip span,
.sc-professional-finance-summary span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-professional-summary-strip strong,
.sc-professional-finance-summary strong {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--sc-ink);
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-professional-card-list,
.sc-professional-schedule-grid {
    display: grid;
    gap: 10px;
}

.sc-professional-schedule-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sc-professional-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.sc-professional-card-head strong {
    min-width: 0;
}

.sc-professional-info-card p {
    margin: 8px 0 0;
    color: var(--sc-muted);
}

.sc-professional-info-card small {
    display: block;
    margin-top: 8px;
    color: var(--sc-muted);
}

.sc-professional-break-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.sc-professional-break-list span {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 0 8px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    background: #fff;
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 700;
}

.sc-professional-finance-table {
    max-height: 360px;
    overflow: auto;
}

.modal-content {
    border: 1px solid var(--sc-border);
    border-radius: 16px;
    box-shadow: var(--sc-shadow);
}

.sc-modal .modal-dialog {
    width: min(1120px, calc(100vw - 32px));
    max-width: none;
    max-height: calc(100dvh - 32px);
    margin: 16px auto;
}

.sc-modal .modal-dialog.modal-lg {
    width: min(860px, calc(100vw - 32px));
}

.sc-modal .modal-dialog:not(.modal-lg):not(.modal-xl) {
    width: min(620px, calc(100vw - 32px));
}

.sc-modal .modal-content,
.sc-modal-content {
    max-height: calc(100dvh - 32px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.sc-modal-form {
    min-height: 0;
    max-height: inherit;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.sc-modal-header,
.sc-modal-footer {
    flex: 0 0 auto;
    background: rgba(255, 255, 255, .96);
    z-index: 1;
}

.sc-modal-header {
    align-items: flex-start;
}

.modal-header.has-modal-back,
.sc-modal-header.has-modal-back {
    gap: 10px;
}

.sc-modal-back-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    border: 1px solid var(--sc-border);
    border-radius: 8px;
    background: var(--sc-surface-1);
    color: var(--sc-text);
    padding: 7px 10px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.sc-modal-back-button:hover,
.sc-modal-back-button:focus {
    background: var(--sc-primary-soft);
    border-color: rgba(36, 91, 90, .28);
    color: var(--sc-primary);
}

.sc-modal-back-button + div {
    min-width: 0;
}

.sc-modal-back-button + div .modal-title,
.sc-modal-back-button + div .sc-modal-subtitle {
    overflow-wrap: anywhere;
}

.sc-modal-body {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 18px;
}

.sc-modal-footer {
    gap: 10px;
    justify-content: flex-end;
}

.sc-modal-content > form.sc-modal-form {
    min-height: 0;
}

.sc-user-modal-content {
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
}

.sc-user-modal-content .sc-modal-body {
    padding-bottom: 24px;
}

@media (max-width: 575.98px) {
    .sc-modal-back-button {
        padding-inline: 8px;
    }

    .sc-modal-back-button span {
        display: none;
    }
}

.sc-user-prof-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.sc-user-prof-head .form-label {
    margin-bottom: 0;
}

.sc-user-prof-add {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--sc-module);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.sc-user-prof-add:hover,
.sc-user-prof-add:focus {
    color: var(--sc-module-dark);
    text-decoration: underline;
}

.modal.fade .modal-dialog {
    transition: transform 180ms ease, opacity 180ms ease;
    transform: translateY(10px) scale(.985);
}

.modal.show .modal-dialog {
    transform: translateY(0) scale(1);
}

.modal-header,
.modal-footer {
    border-color: var(--sc-border);
    padding: 18px 22px;
}

.modal-body {
    padding: 22px;
}

.sc-modal-subtitle {
    margin: 6px 0 0;
    color: var(--sc-muted);
    font-size: 13px;
}

.form-control,
.form-select {
    min-height: 44px;
    border-color: var(--sc-border);
    border-radius: 12px;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--sc-primary);
    box-shadow: 0 0 0 .2rem rgba(36, 91, 90, .12);
}

.form-label {
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 750;
}

.sc-required {
    color: #8d2c25;
    font-weight: 850;
}

.sc-field-hint {
    min-height: 18px;
    margin-top: 5px;
    display: block;
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 650;
}

.sc-field-hint[data-state="success"] {
    color: #17683f;
}

.sc-field-hint[data-state="error"] {
    color: #8d2c25;
}

.sc-field-hint[data-state="loading"] {
    color: #80560f;
}

[data-sc-patient-list] {
    transition: opacity 160ms ease;
}

[data-sc-patient-list].is-loading {
    opacity: .58;
}

.sc-form-grid {
    display: grid;
    gap: 24px;
}

.sc-form-section {
    padding-bottom: 22px;
    border-bottom: 1px solid var(--sc-border);
}

.sc-form-section:last-of-type {
    padding-bottom: 0;
    border-bottom: 0;
}

.sc-form-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.sc-optional-toggle-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.sc-optional-toggle {
    width: fit-content;
    min-height: 34px;
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    padding: 0 12px;
    background: var(--sc-surface-muted);
    color: var(--sc-muted);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
    user-select: none;
    transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.sc-optional-toggle input {
    width: 15px;
    height: 15px;
    accent-color: var(--sc-module);
}

.sc-optional-toggle:has(input:checked) {
    background: var(--sc-module-soft);
    border-color: color-mix(in srgb, var(--sc-module) 26%, #ffffff);
    color: var(--sc-module);
}

.sc-optional-toggle:hover {
    border-color: var(--sc-border-strong);
    box-shadow: var(--sc-shadow-soft);
}

.sc-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.sc-login-page {
    min-height: 100vh;
    padding: 32px;
    background:
        radial-gradient(circle at top left, rgba(36, 91, 90, .11), transparent 34%),
        linear-gradient(180deg, #fbfbfd 0%, var(--sc-bg) 100%);
    display: grid;
    place-items: center;
}

.sc-login-panel {
    width: min(100%, 460px);
    display: grid;
    gap: 22px;
}

.sc-login-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.sc-login-brand strong,
.sc-login-brand span {
    display: block;
}

.sc-login-brand .sc-brand-mark {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-login-brand strong {
    font-size: 20px;
    line-height: 1.1;
}

.sc-login-brand div > span {
    margin-top: 3px;
    color: var(--sc-muted);
    font-size: 13px;
}

.sc-login-card {
    padding: 30px;
    border: 1px solid rgba(229, 229, 234, .86);
    border-radius: 24px;
    background: rgba(255, 255, 255, .88);
    box-shadow: var(--sc-shadow);
}

.sc-login-heading {
    margin-bottom: 24px;
}

.sc-login-heading h1 {
    margin: 0;
    font-size: 30px;
    line-height: 1.12;
    font-weight: 780;
}

.sc-login-heading p:not(.sc-eyebrow) {
    margin: 10px 0 0;
    color: var(--sc-muted);
}

.sc-login-form {
    display: grid;
    gap: 14px;
}

.sc-field {
    display: grid;
    gap: 7px;
}

.sc-field span {
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 750;
}

.sc-field input {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--sc-border);
    border-radius: 14px;
    padding: 0 14px;
    background: var(--sc-surface-muted);
    color: var(--sc-text);
    outline: 0;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.sc-field input:focus {
    background: #fff;
    border-color: var(--sc-primary);
    box-shadow: 0 0 0 .2rem rgba(36, 91, 90, .12);
}

.sc-login-role-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 4px;
}

.sc-login-role-option {
    cursor: pointer;
}

.sc-login-role-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sc-login-role-option span {
    min-height: 64px;
    padding: 11px;
    border: 1px solid var(--sc-border);
    border-radius: 14px;
    background: var(--sc-surface-muted);
    display: grid;
    align-content: center;
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-login-role-option strong,
.sc-login-role-option small {
    display: block;
}

.sc-login-role-option strong {
    font-size: 13px;
    line-height: 1.15;
}

.sc-login-role-option small {
    margin-top: 4px;
    color: var(--sc-muted);
    font-size: 11px;
    font-weight: 750;
}

.sc-login-role-option input:checked + span {
    background: var(--sc-primary-soft);
    border-color: rgba(36, 91, 90, .32);
    box-shadow: 0 10px 22px rgba(36, 91, 90, .08);
}

.sc-login-role-option:hover span {
    transform: translateY(-1px);
}

.sc-login-submit {
    width: 100%;
    margin-top: 6px;
}

.sc-login-forgot {
    width: fit-content;
    margin: 2px auto 0;
    color: var(--sc-muted);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.sc-login-forgot:hover {
    color: var(--sc-primary);
}

.swal2-popup.sc-swal-popup {
    border: 1px solid rgba(229, 229, 234, .86);
    border-radius: 20px;
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--sc-shadow);
    color: var(--sc-text);
    padding: 24px 24px 22px;
    font-family: inherit;
}

.swal2-title.sc-swal-title {
    color: var(--sc-text);
    font-size: 21px;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.22;
    padding: 0;
}

.swal2-html-container.sc-swal-html {
    color: var(--sc-muted);
    font-size: 14px;
    line-height: 1.5;
    margin: 12px 0 0;
    overflow-wrap: anywhere;
}

.swal2-actions.sc-swal-actions {
    gap: 10px;
    margin-top: 22px;
}

.swal2-confirm.sc-swal-confirm,
.swal2-cancel.sc-swal-cancel {
    min-height: 42px;
    border-radius: 10px !important;
    padding: 0 18px !important;
    font-weight: 750;
    font-size: 14px;
    box-shadow: none !important;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.swal2-confirm.sc-swal-confirm {
    background: var(--sc-primary) !important;
    border: 1px solid var(--sc-primary) !important;
    color: #fff !important;
}

.swal2-confirm.sc-swal-confirm:hover {
    background: var(--sc-primary-hover, #1b4948) !important;
    border-color: var(--sc-primary-hover, #1b4948) !important;
}

.swal2-confirm.sc-swal-confirm.sc-swal-danger {
    background: #b9473e !important;
    border-color: #b9473e !important;
}

.swal2-confirm.sc-swal-confirm.sc-swal-danger:hover {
    background: #94352f !important;
    border-color: #94352f !important;
}

.swal2-cancel.sc-swal-cancel {
    background: #fff !important;
    border: 1px solid var(--sc-border) !important;
    color: var(--sc-text) !important;
}

.swal2-cancel.sc-swal-cancel:hover {
    background: var(--sc-surface-muted) !important;
    border-color: color-mix(in srgb, var(--sc-primary) 18%, var(--sc-border)) !important;
}

.swal2-icon.sc-swal-icon,
.swal2-icon {
    border-width: 2px !important;
    margin: 8px auto 16px;
}

.swal2-icon.swal2-success {
    border-color: rgba(36, 91, 90, .35) !important;
    color: var(--sc-primary) !important;
}

.swal2-icon.swal2-success [class^="swal2-success-line"] {
    background-color: var(--sc-primary) !important;
}

.swal2-icon.swal2-success .swal2-success-ring {
    border-color: rgba(36, 91, 90, .24) !important;
}

.swal2-icon.swal2-error {
    border-color: rgba(185, 71, 62, .34) !important;
    color: #b9473e !important;
}

.swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
    background-color: #b9473e !important;
}

.swal2-icon.swal2-warning {
    border-color: rgba(185, 130, 31, .34) !important;
    color: #b9821f !important;
}

.swal2-icon.swal2-info,
.swal2-icon.swal2-question {
    border-color: rgba(35, 95, 146, .32) !important;
    color: #235f92 !important;
}

.swal2-container {
    z-index: 2000;
}

@media (max-width: 520px) {
    .swal2-popup.sc-swal-popup {
        width: calc(100% - 28px) !important;
        padding: 22px 18px 20px;
    }

    .swal2-actions.sc-swal-actions {
        width: 100%;
    }

    .swal2-confirm.sc-swal-confirm,
    .swal2-cancel.sc-swal-cancel {
        flex: 1 1 100%;
    }
}

@media (max-width: 1199px) {
    :root {
        --sc-sidebar-width: 240px;
        --sc-topbar-height: 78px;
    }

    .sc-sidebar {
        padding: 22px 14px;
        gap: 24px;
    }

    .sc-topbar {
        padding: 16px 24px;
    }

    .sc-page {
        padding: 24px 24px 40px;
    }

    .sc-page-header {
        padding: 18px;
    }

    .sc-card-body {
        padding: 18px;
    }

    .sc-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sc-stat-grid-compact {
        grid-template-columns: 1fr;
    }

    .sc-dashboard-grid,
    .sc-placeholder-grid,
    .sc-workspace-grid,
    .sc-agenda-shell {
        grid-template-columns: 1fr;
    }

    .sc-report-grid {
        grid-template-columns: 1fr;
    }

    .sc-modal-summary,
    .sc-detail-grid {
        grid-template-columns: 1fr;
    }

    .sc-patient-summary-strip,
    .sc-patient-finance-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sc-patient-files-grid {
        grid-template-columns: 1fr;
    }

    .sc-professional-summary-strip,
    .sc-professional-finance-summary,
    .sc-professional-schedule-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sc-patient-timeline-top {
        display: grid;
    }

    .sc-patient-timeline-badges {
        justify-content: flex-start;
    }

    .sc-agenda-week-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    :root {
        --sc-sidebar-width: 88px;
    }

    .sc-sidebar {
        width: var(--sc-sidebar-width);
        padding: 18px 12px;
        align-items: center;
    }

    .sc-sidebar-header {
        justify-content: center;
    }

    .sc-brand {
        padding: 0;
    }

    .sc-brand > span:not(.sc-brand-mark),
    .sc-nav-link span {
        display: none;
    }

    .sc-nav-link {
        width: 52px;
        height: 52px;
        justify-content: center;
        padding: 0;
    }

    .sc-nav-link:hover {
        transform: translateY(-1px);
    }

    .sc-topbar {
        padding: 16px 20px;
        gap: 16px;
    }
}

@media (max-width: 767px) {
    :root {
        --sc-topbar-height: auto;
    }

    .sc-sidebar.offcanvas {
        width: min(320px, calc(100vw - 28px));
        padding: 20px 16px;
        visibility: hidden;
        transform: translateX(-100%);
        border-right: 1px solid var(--sc-border);
        box-shadow: var(--sc-shadow);
        z-index: 1045;
    }

    .sc-sidebar.offcanvas.show,
    .sc-sidebar.offcanvas.showing {
        visibility: visible;
        transform: none;
    }

    .sc-sidebar.offcanvas.hiding {
        visibility: visible;
    }

    .sc-sidebar-close,
    .sc-menu-button {
        display: grid;
    }

    .sc-nav {
        gap: 8px;
    }

    .sc-nav-link {
        min-height: 48px;
        white-space: nowrap;
    }

    .sc-main-shell {
        padding-left: 0;
    }

    .sc-topbar {
        position: sticky;
        padding: 14px 16px;
        align-items: center;
        gap: 12px;
    }

    .sc-page {
        padding: 18px 16px 32px;
    }

    .sc-topbar h1 {
        font-size: 21px;
    }

    .sc-topbar-subtitle,
    .sc-eyebrow {
        display: none;
    }

    .sc-role-switcher {
        display: none;
    }

    .sc-page-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .sc-week-calendar,
    .sc-week-strip {
        grid-template-columns: 1fr;
    }

    .sc-modal .modal-dialog {
        max-width: none;
        width: calc(100vw - 24px);
        max-height: calc(100dvh - 24px);
        margin: 12px auto;
    }

    .sc-modal .modal-content,
    .sc-modal-content {
        max-height: calc(100dvh - 24px);
    }

    .sc-agenda-toolbar-main {
        align-items: stretch;
        flex-direction: column;
    }

    .sc-agenda-nav-group,
    .sc-agenda-toolbar-filters {
        align-items: stretch;
    }

    .sc-agenda-week-grid,
    .sc-agenda-month-grid {
        grid-template-columns: 1fr;
    }

    .sc-agenda-month-grid > span {
        display: none;
    }

    .sc-agenda-day-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .sc-reschedule-summary {
        grid-template-columns: 1fr;
    }

    .modal-body {
        overflow-y: auto;
    }

    .modal-footer {
        background: var(--sc-surface);
        flex-wrap: wrap;
    }
}

@media (max-width: 575px) {
    .sc-brand-subtitle,
    .sc-user-meta,
    .sc-topbar-actions .sc-icon-button {
        display: none;
    }

    .sc-topbar {
        padding: 12px;
    }

    .sc-topbar-heading {
        gap: 10px;
    }

    .sc-user-button {
        padding-right: 5px;
    }

    .sc-stat-grid,
    .sc-quick-actions {
        grid-template-columns: 1fr;
    }

    .sc-table th,
    .sc-table td {
        padding: 11px;
    }

    .sc-table-action span {
        display: none;
    }

    .sc-action-row {
        flex-wrap: nowrap;
    }

    .sc-actions-cell {
        width: 116px;
        min-width: 116px;
    }

    .sc-table-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .sc-filter-card {
        align-items: stretch;
        flex-direction: column;
    }

    .sc-filter-chip,
    .sc-filter-search,
    .sc-filter-select,
    .sc-segmented {
        width: 100%;
    }

    .sc-filter-number {
        max-width: none;
    }

    .sc-service-grid,
    .sc-service-metrics,
    .sc-schedule-layout,
    .sc-schedule-week-grid,
    .sc-block-card {
        grid-template-columns: 1fr;
    }

    .sc-service-card-header,
    .sc-service-card-footer,
    .sc-schedule-day-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .sc-block-card .sc-action-row {
        justify-content: flex-start;
    }

    .sc-segmented button {
        flex: 1;
        min-width: 0;
    }

    .sc-agenda-toolbar .sc-button-primary,
    .sc-agenda-toolbar .sc-button-secondary {
        width: auto;
    }

    .sc-agenda-new-button,
    .sc-agenda-toolbar-filters .form-select,
    .sc-agenda-toolbar-filters .sc-button-secondary,
    .sc-filter-date {
        width: 100%;
        flex: 1 1 100%;
    }

    .sc-time-slot {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .sc-mini-grid {
        grid-template-columns: 1fr;
    }

    .sc-month-calendar {
        min-width: 620px;
    }

    .sc-month-calendar strong {
        min-height: 28px;
    }

    .sc-page-header h2 {
        font-size: 24px;
    }

    .sc-button-primary,
    .sc-button-secondary {
        width: 100%;
    }

    .sc-form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .sc-modal-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 12px;
    }

    .sc-modal-tabs button {
        white-space: nowrap;
    }

    .sc-login-page {
        padding: 18px;
    }

    .sc-login-card {
        padding: 22px;
        border-radius: 20px;
    }

    .sc-login-heading h1 {
        font-size: 26px;
    }

    .sc-login-role-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Admin Home Dashboard ───────────────────────────────────────── */

.sc-shortcuts-section {
    margin-bottom: 18px;
}

/* Avatares dentro de listas herdam cor cinza via .sc-list-item span — override explícito */
.sc-list-item .sys-avatar,
.sc-list-item .sc-profile-avatar {
    color: #fff;
}

.sc-alerts-strip {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    margin-bottom: 18px;
}

.sc-alert-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 1 1 0;
    min-width: 0;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 650;
    border: 1px solid transparent;
}

.sc-alert-item i {
    flex: 0 0 auto;
}

.sc-alert-item span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-alert-danger {
    background: #fff0ef;
    color: #8d2c25;
    border-color: #f2c0bb;
}

.sc-alert-warning {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

.sc-alert-info {
    background: #e5f0fb;
    color: #235f92;
    border-color: #bdd7f0;
}

.sc-charts-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}

.sc-chart-wrap {
    position: relative;
    height: 200px;
}

.sc-chart-donut-wrap {
    height: 180px;
}

.sc-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 12px;
}

.sc-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--sc-muted);
    font-weight: 600;
}

.sc-legend-item strong {
    color: var(--sc-text);
    font-weight: 760;
}

.sc-legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.sc-pending-info {
    min-width: 0;
}

.sc-pending-info strong {
    display: block;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-pending-info span {
    display: block;
    font-size: 12px;
    color: var(--sc-muted);
}

.sc-pending-right {
    flex-shrink: 0;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
}

.sc-pending-amount {
    font-size: 13px;
    font-weight: 760;
    color: var(--sc-text);
    display: block;
}

.sc-home-preview-grid {
    align-items: stretch;
}

.sc-home-preview-card {
    min-width: 0;
}

.sc-home-preview-card > .sc-card-body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.sc-home-agenda-table {
    flex: 0 1 auto;
}

.sc-home-pending-list {
    gap: 8px;
}

.sc-home-pending-list .sc-list-item {
    min-height: 58px;
    padding: 10px 12px;
}

.sc-home-preview-empty {
    flex: 1 1 auto;
    min-height: 126px;
}

.sc-home-mini-summary,
.sc-home-chart-summary {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.sc-home-mini-summary {
    margin-top: 10px;
}

.sc-home-chart-summary {
    margin-top: 14px;
}

.sc-home-period-panel {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
    display: grid;
    gap: 12px;
}

.sc-home-period-head {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.sc-home-period-head div {
    min-width: 0;
}

.sc-home-period-head strong,
.sc-home-period-head span {
    display: block;
}

.sc-home-period-head strong {
    color: var(--sc-text);
    font-size: 14px;
    font-weight: 850;
}

.sc-home-period-head span {
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-home-period-head > span {
    flex: 0 0 auto;
    max-width: 45%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: right;
}

.sc-home-period-bars {
    display: grid;
    gap: 9px;
}

.sc-home-period-row {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) 34px;
    align-items: center;
    gap: 10px;
}

.sc-home-period-row span,
.sc-home-period-row strong {
    font-size: 12px;
    font-weight: 800;
}

.sc-home-period-row span {
    color: var(--sc-muted);
}

.sc-home-period-row strong {
    color: var(--sc-text);
    text-align: right;
}

.sc-home-period-row i {
    height: 8px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.sc-home-period-row b {
    display: block;
    height: 100%;
    min-width: 3px;
    border-radius: inherit;
    background: var(--sc-module);
}

.sc-home-mini-summary section,
.sc-home-chart-summary section {
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-sm);
    background: var(--sc-surface-muted);
}

.sc-home-mini-summary span,
.sc-home-mini-summary strong,
.sc-home-chart-summary span,
.sc-home-chart-summary strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-home-mini-summary span,
.sc-home-chart-summary span {
    color: var(--sc-muted);
    font-size: 11px;
    font-weight: 750;
}

.sc-home-mini-summary strong,
.sc-home-chart-summary strong {
    margin-top: 3px;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 850;
}

.sc-home-preview-footer {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid var(--sc-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--sc-muted);
    font-size: 12px;
    font-weight: 750;
}

.sc-alert-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid transparent;
}

.sc-alert-card i {
    flex-shrink: 0;
    width: 16px;
    text-align: center;
}

.sc-alert-card-danger {
    background: #fff0ef;
    color: #8d2c25;
    border-color: #f2c0bb;
}

.sc-alert-card-warning {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

.sc-alert-card-info {
    background: #e5f0fb;
    color: #235f92;
    border-color: #bdd7f0;
}

.sc-finance-bar-group {
    display: grid;
    gap: 14px;
}

.sc-finance-bar-item {
    display: grid;
    gap: 6px;
}

.sc-finance-bar-label {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
    color: var(--sc-muted);
    font-weight: 600;
}

.sc-finance-bar-label strong {
    font-size: 14px;
    color: var(--sc-text);
    font-weight: 760;
}

.sc-progress-track {
    height: 8px;
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    border-radius: 999px;
    overflow: hidden;
}

.sc-progress-fill {
    height: 100%;
    border-radius: 999px;
    transition: width 600ms ease;
}

.sc-progress-received {
    background: #17683f;
}

.sc-progress-pending {
    background: #b9821f;
}

.sc-shortcuts-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}

.sc-shortcut {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 14px 8px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface);
    text-align: center;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sc-shortcut:hover {
    border-color: var(--sc-border-strong);
    box-shadow: var(--sc-shadow-soft);
    transform: translateY(-2px);
}

.sc-shortcut-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: color-mix(in srgb, var(--accent, var(--sc-primary)) 12%, #ffffff);
    color: var(--accent, var(--sc-primary));
    font-size: 16px;
}

.sc-shortcut-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--sc-text);
    line-height: 1.3;
}

/* ── Professional resumo strip ──────────────────────────────────── */

.sc-prof-resumo-strip {
    display: flex;
    align-items: center;
    gap: 0;
    margin-bottom: 18px;
    padding: 14px 20px;
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    box-shadow: var(--sc-shadow-soft);
    flex-wrap: wrap;
    row-gap: 10px;
}

.sc-prof-resumo-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 20px;
    min-width: 0;
}

.sc-prof-resumo-item:first-child {
    padding-left: 0;
}

.sc-prof-resumo-item span {
    font-size: 12px;
    font-weight: 650;
    color: var(--sc-muted);
    text-transform: uppercase;
    white-space: nowrap;
}

.sc-prof-resumo-item strong {
    font-size: 22px;
    font-weight: 760;
    line-height: 1.1;
    color: var(--sc-text);
}

.sc-prof-resumo-warn {
    color: #9d2c22 !important;
}

.sc-prof-resumo-sep {
    width: 1px;
    height: 32px;
    background: var(--sc-border);
    flex-shrink: 0;
}

@media (max-width: 1280px) {
    .sc-charts-grid {
        grid-template-columns: 1fr;
    }

    .sc-shortcuts-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .sc-charts-grid {
        grid-template-columns: 1fr;
    }

    .sc-alerts-strip {
        flex-wrap: wrap;
    }

    .sc-alert-item {
        flex: 1 1 100%;
    }

    .sc-home-mini-summary,
    .sc-home-chart-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sc-home-period-head {
        display: grid;
    }

    .sc-home-period-head > span {
        max-width: 100%;
        text-align: left;
    }

    .sc-home-period-row {
        grid-template-columns: 92px minmax(0, 1fr) 28px;
    }

    .sc-shortcuts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sc-prof-resumo-sep {
        display: none;
    }

    .sc-prof-resumo-item {
        padding: 0 10px;
    }
}

/* ── Minha conta ────────────────────────────────────────────────── */

.sc-account-meta {
    display: grid;
    gap: 6px;
    margin-top: 14px;
    text-align: left;
}

.sc-account-meta-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-account-meta-row i {
    width: 14px;
    text-align: center;
    flex-shrink: 0;
    color: var(--sc-primary);
}

.sc-account-readonly-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-account-field-head {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.sc-account-field-head .form-label {
    min-width: 0;
    margin-bottom: 0;
}

.sc-account-link-action {
    min-width: 0;
    max-width: 100%;
    border: 0;
    background: transparent;
    color: var(--sc-module);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0;
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: left;
    width: fit-content;
}

.sc-account-link-action span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.sc-account-link-action:hover,
.sc-account-link-action:focus {
    color: var(--sc-module-dark);
    text-decoration: underline;
}

/* ─── Reminder priority block ──────────────────────────────────── */

.sc-reminder-priority-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
    margin-bottom: 4px;
}

.sc-reminder-priority-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: start;
    padding: 12px 14px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface);
    border-left-width: 4px;
}

.sc-reminder-priority-item.is-overdue {
    border-left-color: #ff3b30;
    background: rgba(255, 59, 48, 0.04);
    border-color: rgba(255, 59, 48, 0.22);
}

.sc-reminder-priority-item.is-today {
    border-left-color: #1a73e8;
    background: rgba(26, 115, 232, 0.04);
    border-color: rgba(26, 115, 232, 0.22);
}

.sc-reminder-priority-main {
    min-width: 0;
}

.sc-reminder-priority-head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.sc-reminder-priority-title-text {
    font-size: 14px;
    font-weight: 650;
    color: var(--sc-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
}

.sc-reminder-priority-desc {
    font-size: 12px;
    color: var(--sc-muted);
    margin: 0 0 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-reminder-priority-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.sc-reminder-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--sc-muted);
    background: var(--sc-accent-soft);
    border-radius: 6px;
    padding: 2px 8px;
}

.sc-reminder-meta-chip.is-overdue {
    color: #c0392b;
    background: rgba(255, 59, 48, 0.1);
}

.sc-reminder-priority-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    padding-top: 2px;
}

.sc-reminder-alert {
    display: grid;
    gap: 12px;
    text-align: left;
}

.sc-reminder-alert p {
    margin: 0;
    color: var(--sc-text);
    line-height: 1.5;
}

.sc-reminder-alert dl {
    margin: 0;
    display: grid;
    gap: 8px;
}

.sc-reminder-alert dl > div {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 10px;
}

.sc-reminder-alert dt,
.sc-reminder-alert dd {
    margin: 0;
    font-size: 13px;
}

.sc-reminder-alert dt {
    color: var(--sc-muted);
    font-weight: 800;
}

.sc-reminder-alert dd {
    color: var(--sc-text);
    font-weight: 650;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* ── Notifications ──────────────────────────────────────────────── */

.sc-notif-wrap {
    position: relative;
}

.sc-notif-btn {
    position: relative;
}

.sc-notif-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #9d2c22;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    display: grid;
    place-items: center;
    padding: 0 4px;
    border: 2px solid var(--sc-bg);
    line-height: 1;
}

.sc-notif-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 10px);
    width: 340px;
    z-index: 200;
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    box-shadow: var(--sc-shadow);
    overflow: hidden;
}

.sc-notif-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--sc-border);
}

.sc-notif-title {
    font-size: 14px;
    font-weight: 760;
    color: var(--sc-text);
}

.sc-notif-count-label {
    font-size: 12px;
    font-weight: 650;
    color: var(--sc-muted);
}

.sc-notif-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 28px 16px;
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-notif-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 28px 16px;
    font-size: 13px;
    color: var(--sc-muted);
    text-align: center;
}

.sc-notif-empty i {
    font-size: 22px;
    opacity: .55;
}

.sc-notif-list {
    list-style: none;
    margin: 0;
    padding: 6px 0;
    max-height: 320px;
    overflow-y: auto;
}

.sc-notif-item {
    border-bottom: 1px solid var(--sc-border);
}

.sc-notif-item:last-child {
    border-bottom: 0;
}

.sc-notif-link {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 16px;
    transition: background-color 120ms ease;
    color: var(--sc-text);
}

.sc-notif-link:hover {
    background: var(--sc-surface-muted);
}

.sc-notif-icon {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    font-size: 13px;
}

.sc-notif-danger {
    background: #fff0ef;
    color: #9d2c22;
}

.sc-notif-warning {
    background: #fff4dc;
    color: #80560f;
}

.sc-notif-info {
    background: #e5f0fb;
    color: #235f92;
}

.sc-notif-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sc-notif-item-title {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--sc-text);
    overflow-wrap: anywhere;
}

.sc-notif-item-desc {
    display: block;
    font-size: 11px;
    color: var(--sc-muted);
    overflow-wrap: anywhere;
}

.sc-notif-date {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: var(--sc-muted);
    margin-top: 2px;
    white-space: nowrap;
}

.sc-notif-footer {
    padding: 10px 16px;
    border-top: 1px solid var(--sc-border);
    display: flex;
    justify-content: center;
}

.sc-notif-view-all {
    font-size: 13px;
    font-weight: 700;
    color: var(--sc-primary);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: opacity 120ms ease;
}

.sc-notif-view-all:hover {
    opacity: .75;
}

/* ── Notifications index page ───────────────────────────────────── */

.sc-notif-index-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    overflow: hidden;
}

.sc-notif-index-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--sc-border);
    background: var(--sc-surface);
    color: var(--sc-text);
    transition: background-color 120ms ease;
}

.sc-notif-index-item:last-child {
    border-bottom: 0;
}

.sc-notif-index-item:hover {
    background: var(--sc-surface-muted);
}

.sc-notif-index-icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    font-size: 15px;
}

.sc-notif-index-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.sc-notif-index-content strong {
    font-size: 14px;
    font-weight: 760;
    display: block;
}

.sc-notif-index-content span {
    font-size: 13px;
    color: var(--sc-muted);
    display: block;
}

.sc-notif-index-right {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

@media (max-width: 600px) {
    .sc-notif-panel {
        width: 300px;
        right: -40px;
    }
}


/* Reminders module */
.sc-reminder-table-shell {
    overflow-x: hidden;
    width: 100%;
}

.sc-reminder-table {
    width: 100%;
    table-layout: fixed;
}

.sc-reminder-table th,
.sc-reminder-table td {
    min-width: 0;
    overflow: hidden;
    vertical-align: middle;
}

.sc-reminder-table-admin .sc-reminder-col-main { width: 27%; }
.sc-reminder-table-admin .sc-reminder-col-audience { width: 18%; }
.sc-reminder-table-admin .sc-reminder-col-patient { width: 18%; }
.sc-reminder-table-admin .sc-reminder-col-date { width: 15%; }
.sc-reminder-table-admin .sc-reminder-col-status { width: 12%; }
.sc-reminder-table-admin .sc-reminder-col-actions { width: 10%; }

.sc-reminder-table-professional .sc-reminder-col-main { width: 41%; }
.sc-reminder-table-professional .sc-reminder-col-patient { width: 21%; }
.sc-reminder-table-professional .sc-reminder-col-date { width: 16%; }
.sc-reminder-table-professional .sc-reminder-col-status { width: 12%; }
.sc-reminder-table-professional .sc-reminder-col-actions { width: 10%; }

.sc-reminder-table .sc-actions-cell {
    width: auto;
    min-width: 0;
}

.sc-reminder-table th,
.sc-reminder-table td {
    padding-left: 12px;
    padding-right: 12px;
}

.sc-reminder-table th:last-child,
.sc-reminder-table td:last-child {
    padding-left: 8px;
    padding-right: 8px;
}

.sc-reminder-main,
.sc-reminder-truncate-cell,
.sc-reminder-patient-cell {
    min-width: 0;
}

.sc-reminder-title,
.sc-reminder-description,
.sc-reminder-one-line,
.sc-reminder-type-badge {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-reminder-type-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-reminder-description {
    max-width: 100%;
}

.sc-reminder-table td.sc-reminder-date-cell {
    text-align: center;
}

.sc-reminder-table th.sc-reminder-date-cell {
    text-align: center;
}

/* especificidade (0,2,1) — sobrepõe o padding geral e o :last-child */
.sc-reminder-table td.sc-reminder-status-cell {
    text-align: center;
    padding-right: 20px;
    padding-left: 12px;
}

.sc-reminder-table th.sc-reminder-status-cell {
    text-align: center;
    padding-right: 20px;
    padding-left: 12px;
}

.sc-reminder-date {
    display: block;
    white-space: normal;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
    overflow-wrap: normal;
}

.sc-reminder-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    min-width: 84px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
}

/* especificidade (0,2,1) — sobrepõe padding geral e :last-child */
.sc-reminder-details-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.sc-reminder-details-footer-left,
.sc-reminder-details-footer-right {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sc-reminder-details-footer-right {
    margin-left: auto;
}

.sc-reminder-edit-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.sc-reminder-edit-footer-left,
.sc-reminder-edit-footer-right {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sc-reminder-edit-footer-right {
    margin-left: auto;
}

.sc-reminder-table td.sc-reminder-actions-cell {
    white-space: nowrap;
    overflow: visible;
    padding-left: 8px;
    padding-right: 20px;
    text-align: center;
}

.sc-reminder-table th.sc-reminder-actions-cell {
    padding-left: 8px;
    padding-right: 20px;
    text-align: center;
}

.sc-reminder-actions-cell .sc-action-row {
    justify-content: center;
    flex-wrap: nowrap;
    gap: 10px;
}

.sc-reminder-actions-cell .sc-icon-mini {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    flex: 0 0 auto;
    font-size: 15px;
}

.sc-reminder-type-badge i {
    flex: 0 0 auto;
}

.sc-reminder-patient-link {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    text-align: left;
    cursor: pointer;
    color: var(--sc-primary);
    overflow: hidden;
    display: block;
    max-width: 100%;
}

.sc-reminder-patient-link:hover {
    text-decoration: underline;
}

.sc-reminder-patient-link strong {
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

.sc-reminder-quick-actions {
    display: flex;
    min-width: 0;
    gap: 4px;
    margin-top: 4px;
}

.sc-reminder-quick-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--sc-muted);
    background: var(--sc-border);
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
    line-height: 1;
}

.sc-reminder-quick-btn:hover {
    background: var(--sc-primary-soft);
    color: var(--sc-primary);
}

.sc-reminder-quick-wa {
    color: #25d366;
    background: #e8fdf2;
}

.sc-reminder-quick-wa:hover {
    background: #d0f7e6;
    color: #1aab52;
}

.sc-reminder-patient-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface-muted);
}

.sc-reminder-patient-head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sc-reminder-patient-head > i {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--sc-primary-soft);
    color: var(--sc-primary);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.sc-reminder-patient-head > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sc-text-danger {
    color: #ff3b30;
    font-weight: 600;
}

.sc-row-overdue > td:first-child {
    border-left: 3px solid #ff3b30;
}

.sc-reminder-row-overdue > td:first-child {
    border-left: 3px solid #ff3b30;
}

.sc-reminder-row-overdue {
    background-color: rgba(255, 59, 48, 0.04);
}

.sc-reminder-row-today > td:first-child {
    border-left: 3px solid #1a73e8;
}

.sc-reminder-row-today {
    background-color: rgba(26, 115, 232, 0.04);
}

.sc-reminder-today-block {
    margin-bottom: 8px;
}

.sc-reminder-today-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sc-reminder-today-title i {
    color: var(--sc-primary);
    font-size: 14px;
}

/* Nav badge (sidebar) */
.sc-nav-icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.sc-nav-badge {
    position: absolute;
    top: -5px;
    right: -7px;
    min-width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #9d2c22;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    display: grid;
    place-items: center;
    padding: 0 3px;
    border: 2px solid var(--sc-sidebar-bg, var(--sc-surface));
    line-height: 1;
    pointer-events: none;
}


/* Search overlay */
.sc-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 1080;
    background: rgba(0, 0, 0, 0.48);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 80px;
    opacity: 0;
    transition: opacity 0.18s ease;
}

.sc-search-overlay.is-open {
    opacity: 1;
}

.sc-search-box {
    width: 100%;
    max-width: 660px;
    max-height: calc(100vh - 120px);
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateY(-12px);
    transition: transform 0.18s ease;
}

.sc-search-overlay.is-open .sc-search-box {
    transform: translateY(0);
}

.sc-search-input-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--sc-border);
    flex-shrink: 0;
}

.sc-search-icon {
    color: var(--sc-muted);
    font-size: 16px;
    flex-shrink: 0;
}

.sc-search-input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 16px;
    color: var(--sc-text);
    font-family: inherit;
}

.sc-search-input::placeholder {
    color: var(--sc-muted);
}

.sc-search-kbd {
    font-size: 11px;
    font-weight: 600;
    color: var(--sc-muted);
    background: var(--sc-border);
    border: 1px solid var(--sc-border-strong);
    border-radius: 4px;
    padding: 2px 6px;
    flex-shrink: 0;
    font-family: inherit;
}

.sc-search-results {
    flex: 1;
    overflow-y: auto;
    padding: 10px 0;
    min-height: 80px;
}

.sc-search-state {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 24px 20px;
    color: var(--sc-muted);
    font-size: 14px;
}

.sc-search-state i {
    font-size: 16px;
    flex-shrink: 0;
}

.sc-search-groups {
    padding: 4px 0;
}

.sc-search-group {
    margin-bottom: 6px;
}

.sc-search-group-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 18px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sc-muted);
}

.sc-search-group-items {
    display: flex;
    flex-direction: column;
}

.sc-search-result-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 18px;
    text-decoration: none;
    color: var(--sc-text);
    transition: background 0.12s;
    cursor: pointer;
}

.sc-search-result-item:hover {
    background: var(--sc-primary-soft);
    color: var(--sc-text);
    text-decoration: none;
}

.sc-search-result-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--sc-border);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-search-result-body {
    flex: 1;
    min-width: 0;
}

.sc-search-result-title {
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-search-result-sub {
    font-size: 12px;
    color: var(--sc-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}

.sc-search-result-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    flex-shrink: 0;
}

.sc-search-result-date {
    font-size: 11px;
    color: var(--sc-muted);
    white-space: nowrap;
}

@media (max-width: 720px) {
    .sc-search-overlay {
        padding-top: 0;
        align-items: flex-end;
    }

    .sc-search-box {
        max-width: 100%;
        border-radius: 16px 16px 0 0;
        max-height: 80vh;
    }
}


/* Reports module */
.sc-module-reports { --sc-module: var(--sc-reports); --sc-module-soft: #fbf1df; }

.sc-accent-professionals { --sc-module: #4c6793; --sc-module-soft: #eaf0fa; }

.sc-report-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    padding: 0;
}

.sc-report-index-card {
    background: var(--sc-surface);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: box-shadow 0.15s, transform 0.15s;
    color: inherit;
    cursor: pointer;
}

.sc-report-index-card:hover { box-shadow: var(--sc-shadow-soft); transform: translateY(-2px); }

.sc-report-featured-card {
    border-color: color-mix(in srgb, var(--sc-module) 44%, var(--sc-border));
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
    position: relative;
}

.sc-report-featured-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    border-radius: var(--sc-radius) 0 0 var(--sc-radius);
    background: var(--sc-module);
    opacity: .72;
}

.sc-report-featured-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--sc-module) 12%, #fff);
    color: var(--sc-module);
    border: 1px solid color-mix(in srgb, var(--sc-module) 24%, transparent);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.sc-report-index-card.is-disabled {
    cursor: default;
    opacity: 0.78;
}

.sc-report-index-card.is-disabled:hover {
    box-shadow: none;
    transform: none;
}

.sc-report-index-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sc-report-index-card h3 {
    font-size: 15px;
    font-weight: 700;
    color: var(--sc-text);
    margin: 0;
}

.sc-report-open-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--sc-module);
    padding: 7px 12px;
    border-radius: 8px;
    background: var(--sc-module-soft);
    cursor: pointer;
    transition: background 0.12s;
    border: none;
    text-decoration: none;
    width: fit-content;
}

.sc-report-open-btn:hover { filter: brightness(0.94); }

.sc-report-open-btn-disabled {
    color: var(--sc-muted);
    background: var(--sc-border);
    cursor: default;
}

.sc-dossier-period-control {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--sc-module) 18%, var(--sc-border));
    border-radius: 10px;
    background: color-mix(in srgb, var(--sc-module) 5%, var(--sc-surface));
}

.sc-dossier-all-period {
    font-weight: 700;
}

[data-sc-dossier-period-field] {
    overflow: hidden;
    max-height: 96px;
    opacity: 1;
    transform: translateY(0);
    transition: max-height .18s ease, max-width .18s ease, opacity .16s ease, transform .16s ease, margin .16s ease, padding .16s ease;
}

[data-sc-dossier-period-field].is-collapsed {
    flex: 0 0 0;
    width: 0;
    max-width: 0;
    max-height: 0;
    opacity: 0;
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    transform: translateY(-4px);
    pointer-events: none;
}

.sc-report-manual-filter {
    display: none !important;
}

.sc-report-chart-box {
    width: 260px;
    max-width: 100%;
    height: 130px;
    position: relative;
}

.sc-report-chart-box canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.sc-filter-card.is-loading {
    opacity: .72;
    pointer-events: none;
}

.sc-table-totals td {
    background: var(--sc-border);
    font-weight: 700;
    font-size: 13px;
}

@media (max-width: 768px) {
    .sc-report-card-grid { grid-template-columns: 1fr; }
}


/* Custom report builder */
.sc-report-custom-card {
    border: 2px solid var(--sc-module);
    order: -1;
}

.sc-custom-report-sections {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sc-custom-report-section {
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    overflow: hidden;
}

.sc-custom-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--sc-surface-muted);
    border-bottom: 1px solid var(--sc-border);
    gap: 10px;
    flex-wrap: wrap;
}

.sc-custom-fields-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 6px;
    padding: 12px 14px;
}

.sc-custom-field-check {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid var(--sc-border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.12s, border-color 0.12s;
    user-select: none;
    background: var(--sc-surface);
}

.sc-custom-field-check:hover {
    background: var(--sc-primary-soft);
    border-color: var(--sc-primary);
}

.sc-custom-field-check.is-selected {
    background: var(--sc-primary-soft);
    border-color: rgba(36, 91, 90, .36);
    color: var(--sc-primary);
    font-weight: 600;
}

.sc-custom-field-check input[type="checkbox"] {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    accent-color: var(--sc-primary);
}

.sc-custom-field-default {
    margin-left: auto;
    font-size: 10px;
    color: var(--sc-module);
    opacity: 0.7;
}

.sc-select-all-btn {
    font-size: 11px;
    padding: 3px 8px;
    height: auto;
}

@media (max-width: 768px) {
    .sc-custom-fields-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .sc-custom-section-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

.sc-stat-sub {
    font-size: 11px;
    color: var(--sc-muted);
    margin: 2px 0 0;
    font-weight: 500;
}


/* Settings module */
.sc-settings-color-picker {
    width: 44px;
    height: 44px;
    border: 2px solid var(--sc-border);
    border-radius: 8px;
    cursor: pointer;
    padding: 2px;
    background: none;
    flex-shrink: 0;
}

.sc-settings-color-hex {
    width: 110px;
    flex-shrink: 0;
    font-family: monospace;
    font-size: 14px;
}

.sc-settings-color-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--sc-surface-muted);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    flex-wrap: wrap;
}

.sc-preview-nav {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.sc-cep-spinner {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--sc-muted);
    pointer-events: none;
}

/* =====================================================
   Patient combobox disabled state
   ===================================================== */

.sc-patient-combobox.is-disabled .sc-patient-search-shell {
    opacity: 0.55;
    pointer-events: none;
    background: var(--sc-surface-1);
}

/* =====================================================
   Historico clinico da sessao
   ===================================================== */

.sc-status-clinical {
    background: #eef3ff;
    color: #3a5fa0;
    border-color: #c3d4f2;
}

.sc-agenda-clinical-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-top: 4px;
    border-radius: 999px;
    background: #eef3ff;
    color: #3a5fa0;
    font-size: 11px;
}

.sc-attendance-clinical-badge {
    width: fit-content;
    margin-top: 5px;
    gap: 4px;
}

.sc-session-history-block {
    border: 1px solid var(--sc-border);
    border-radius: 10px;
    overflow: hidden;
}

.sc-session-history-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--sc-surface-1);
    border-bottom: 1px solid var(--sc-border);
    font-size: 13px;
    font-weight: 600;
    color: var(--sc-text);
    gap: 8px;
}

.sc-session-history-header i {
    color: #3a5fa0;
}

.sc-session-history-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sc-session-field strong {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--sc-muted);
    margin-bottom: 4px;
}

.sc-session-field p {
    margin: 0;
    font-size: 14px;
    color: var(--sc-text);
    white-space: pre-wrap;
    line-height: 1.5;
}

.sc-session-notes-preview {
    font-size: 13px;
    color: #3a5fa0;
    background: #eef3ff;
    border-radius: 6px;
    padding: 6px 10px;
    display: flex;
    align-items: flex-start;
    gap: 6px;
    line-height: 1.4;
}

.sc-session-notes-preview.sc-session-notes-restricted {
    color: var(--sc-muted);
    background: var(--sc-surface-1);
}

.sc-session-context {
    font-size: 12px;
    color: var(--sc-muted);
}

.sc-session-textarea {
    resize: vertical;
    min-height: 80px;
    line-height: 1.6;
}

.sc-session-history-context {
    font-size: 13px;
    color: var(--sc-muted);
}

/* ── Patient Files (Anexos) ───────────────────────────────────────────────── */

.sc-patient-files-area {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sc-patient-files-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.sc-file-upload-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
}

.sc-file-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sc-file-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--sc-surface-1, #f7f8fa);
    border-radius: 8px;
    border: 1px solid var(--sc-border, #e5e7eb);
    transition: background 0.15s;
}

.sc-file-item:hover {
    background: var(--sc-surface-2, #eef0f3);
}

.sc-file-icon {
    font-size: 20px;
    color: var(--sc-primary, #245b5a);
    flex-shrink: 0;
    width: 24px;
    text-align: center;
}

.sc-file-info {
    flex: 1;
    min-width: 0;
}

.sc-file-name {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--sc-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-file-meta {
    display: block;
    font-size: 11px;
    color: var(--sc-muted);
    margin-top: 2px;
}

.sc-file-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.sc-file-empty-state {
    margin-top: 8px;
}

.sc-patient-form-attachments {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--sc-border, #e5e7eb);
    border-radius: 8px;
    background: var(--sc-surface-1, #f7f8fa);
}

.sc-selected-file-list {
    display: grid;
    gap: 6px;
}

.sc-selected-file-item {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--sc-border, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.sc-selected-file-item span {
    min-width: 0;
    color: var(--sc-text);
    font-size: 13px;
    font-weight: 650;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-icon-mini-danger {
    color: #c0392b;
}

.sc-icon-mini-danger:hover {
    background: #fdecea;
    color: #922b21;
}

.sc-file-preview-modal .modal-dialog {
    max-width: min(1120px, calc(100vw - 32px));
}

.sc-file-preview-modal .modal-content {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 48px);
}

.sc-file-preview-modal .modal-header,
.sc-file-preview-modal .modal-footer {
    flex-shrink: 0;
}

.sc-file-preview-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.sc-file-preview-frame {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: min(360px, 54vh);
    max-height: 62vh;
    background: var(--sc-surface-1, #f7f8fa);
    border: 1px solid var(--sc-border, #e5e7eb);
    border-radius: 8px;
    overflow: auto;
}

.sc-file-preview-frame.is-image-preview {
    position: relative;
}

.sc-file-preview-frame.is-zoomed {
    align-items: flex-start;
    justify-content: flex-start;
}

.sc-file-preview-pdf {
    width: 100%;
    height: 62vh;
    min-height: min(360px, 54vh);
    border: 0;
    background: #fff;
}

.sc-file-preview-image-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 100%;
    min-height: min(360px, 54vh);
    padding: 12px;
}

.sc-file-preview-image {
    display: block;
    max-width: 100%;
    max-height: 62vh;
    object-fit: contain;
    cursor: zoom-in;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.sc-file-preview-image:hover {
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.sc-file-preview-image.is-zoomed {
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
    cursor: zoom-out;
}

.sc-file-preview-frame.is-zoomed .sc-file-preview-image-wrap {
    align-items: flex-start;
    justify-content: flex-start;
    min-width: max-content;
    min-height: max-content;
}

.sc-file-preview-error {
    margin-top: 12px;
}

@media (max-height: 720px) {
    .sc-file-preview-modal .modal-content {
        max-height: calc(100vh - 24px);
    }

    .sc-file-preview-frame,
    .sc-file-preview-pdf,
    .sc-file-preview-image {
        max-height: 56vh;
    }
}

/* ─── Ações de comunicação (WhatsApp / E-mail / Copiar) — Fase 1.2 ──────────── */
.sc-comm-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.sc-comm-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: #56507a;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 2px;
}

.sc-comm-button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: #f1f3f7;
    color: #1d1d1f;
    font-weight: 600;
    font-size: 0.86rem;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.sc-comm-button:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.10);
}

.sc-comm-button.is-loading {
    opacity: 0.65;
    pointer-events: none;
}

.sc-comm-whatsapp {
    background: #e8f8ee;
    color: #1c7a45;
    border-color: rgba(37, 211, 102, 0.35);
}

.sc-comm-email {
    background: #eef2fd;
    color: #2c4a9c;
    border-color: rgba(79, 70, 229, 0.28);
}

.sc-comm-copy {
    background: #f1f3f7;
    color: #4a4a52;
    border-color: rgba(0, 0, 0, 0.08);
}

.sc-comm-compact .sc-comm-button {
    padding: 6px 10px;
    font-size: 0.8rem;
}

.sc-comm-compact .sc-comm-button span {
    display: none;
}

@media (max-width: 575.98px) {
    .sc-comm-actions {
        gap: 6px;
    }
    .sc-comm-button {
        flex: 1 1 auto;
        justify-content: center;
    }
}

.sc-modal-header-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    min-width: 0;
}

.sc-modal-header-actions .sc-comm-actions {
    gap: 6px;
    flex-wrap: nowrap;
}

.sc-modal-header-actions .sc-comm-button,
.sc-comm-actions .sc-comm-button {
    justify-content: center;
    min-height: 32px;
    padding: 5px 10px;
    gap: 6px;
    background: rgba(255, 255, 255, 0.72);
    font-size: 0.78rem;
    line-height: 1;
    box-shadow: none;
}

.sc-modal-header-actions .sc-comm-button:hover:not(:disabled),
.sc-comm-actions .sc-comm-button:hover:not(:disabled) {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.sc-modal-header-actions .sc-comm-whatsapp,
.sc-comm-actions .sc-comm-whatsapp {
    background: rgba(232, 248, 238, 0.78);
    color: #1c7a45;
    border-color: rgba(37, 211, 102, 0.35);
}

.sc-modal-header-actions .sc-comm-email,
.sc-comm-actions .sc-comm-email {
    background: rgba(238, 242, 253, 0.78);
    color: #2f4f8f;
    border-color: rgba(72, 98, 158, 0.24);
}

.sc-comm-compact .sc-comm-button span {
    display: inline;
}

.sc-comm-email-confirm {
    display: grid;
    gap: 8px;
    text-align: left;
}

.sc-comm-email-confirm label {
    margin-top: 4px;
    color: #475569;
    font-size: 0.78rem;
    font-weight: 700;
}

.sc-comm-email-confirm .swal2-input,
.sc-comm-email-confirm .swal2-textarea {
    width: 100%;
    margin: 0;
    border-radius: 10px;
    font-size: 0.9rem;
}

.sc-comm-email-confirm .swal2-textarea {
    resize: vertical;
}

@media (max-width: 575.98px) {
    .sc-modal-header-actions {
        flex: 0 0 auto;
        gap: 6px;
    }

    .sc-modal-header-actions .sc-comm-button {
        width: 34px;
        height: 34px;
        min-height: 34px;
        padding: 0;
    }

    .sc-modal-header-actions .sc-comm-button span {
        display: none !important;
    }
}

/* ─── Chip WhatsApp em "Consultas para ação" ────────────────────────────────── */
.sc-chip-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-color: rgba(37, 211, 102, 0.45);
    color: #1c7a45;
}

.sc-chip-whatsapp i {
    font-size: 14px;
}

.sc-chip-whatsapp:hover {
    border-color: #25d366;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.18);
}

.sc-chip-whatsapp.is-loading {
    opacity: 0.6;
    pointer-events: none;
}

/* ─── Modal de e-mail (overlay próprio, padrão SysConsult) ───────────────────── */
.sc-email-overlay {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.sc-email-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
}

.sc-email-dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 560px;
    margin: 0;
}

.sc-email-dialog .sc-modal-content {
    max-height: calc(100dvh - 32px);
}

.sc-email-textarea {
    min-height: 200px;
    resize: vertical;
    line-height: 1.5;
}

@media (max-width: 575.98px) {
    .sc-email-overlay {
        padding: 0;
        align-items: flex-end;
    }
    .sc-email-dialog {
        max-width: 100%;
    }
    .sc-email-dialog .sc-modal-content {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        max-height: 92dvh;
    }
}

/* ─── Follow-up de status (próximos passos) — Fase 1.3 ──────────────────────── */
.sc-followup-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sc-followup-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 13px 16px;
    border-radius: 12px;
    border: 1px solid var(--sc-border);
    background: #fff;
    color: var(--sc-text);
    font-weight: 600;
    font-size: 0.95rem;
    text-align: left;
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 120ms ease, background 160ms ease;
}

.sc-followup-btn > i {
    width: 20px;
    text-align: center;
    color: var(--sc-accent, #245b5a);
    flex-shrink: 0;
}

.sc-followup-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    border-color: var(--sc-accent, #245b5a);
}

.sc-followup-btn.is-primary {
    background: var(--sc-accent, #245b5a);
    border-color: var(--sc-accent, #245b5a);
    color: #fff;
}

.sc-followup-btn.is-primary > i {
    color: #fff;
}

.sc-followup-btn.is-primary:hover {
    background: var(--sc-accent-hover, #1d4a49);
}

.sc-followup-close {
    justify-content: center;
    color: var(--sc-text-muted, #6b6b73);
    background: var(--sc-surface-muted, #f5f6f8);
}

.sc-followup-close > i {
    color: var(--sc-text-muted, #6b6b73);
}

/* ─── Dossiê do paciente (Relatórios) — Fase 1.4 ────────────────────────────── */
.sc-dossier-group-label {
    font-weight: 700;
    font-size: 0.82rem;
    color: var(--sc-text-muted, #6b6b73);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 4px 0 6px;
}

.sc-dossier-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
}

.sc-check-inline {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    font-size: 0.9rem;
    user-select: none;
}

.sc-check-inline input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--sc-accent, #245b5a);
}

.sc-dossier-fixed {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
    color: var(--sc-accent, #245b5a);
    font-weight: 600;
}

.sc-dossier-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.sc-dossier-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.sc-dossier-stat {
    flex: 1 1 110px;
    background: var(--sc-surface-muted, #f5f6f8);
    border-radius: 12px;
    padding: 12px 14px;
    text-align: center;
}

.sc-dossier-stat strong {
    display: block;
    font-size: 1.4rem;
    color: var(--sc-accent, #245b5a);
    line-height: 1.1;
}

.sc-dossier-stat span {
    font-size: 0.78rem;
    color: var(--sc-text-muted, #6b6b73);
}

.sc-dossier-timeline {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sc-dossier-session {
    border: 1px solid var(--sc-border, #e5e5ea);
    border-left: 3px solid var(--sc-accent, #245b5a);
    border-radius: 12px;
    padding: 14px 16px;
}

.sc-dossier-session-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
}

.sc-dossier-session-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    color: var(--sc-text-muted, #6b6b73);
    font-size: 0.85rem;
    margin-bottom: 8px;
}

.sc-dossier-financial-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin: 8px 0;
    padding: 9px 10px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--sc-finance, #b7791f) 8%, var(--sc-surface));
    border: 1px solid color-mix(in srgb, var(--sc-finance, #b7791f) 18%, var(--sc-border));
    color: var(--sc-text);
    font-size: 0.84rem;
}

.sc-dossier-financial-line strong {
    color: var(--sc-muted);
    font-weight: 700;
}

.sc-dossier-list {
    margin: 0;
    padding-left: 18px;
}

.sc-dossier-list li {
    margin-bottom: 4px;
}

@media (max-width: 575.98px) {
    .sc-dossier-stat { flex: 1 1 calc(50% - 10px); }
    .sc-dossier-session-meta { flex-direction: column; gap: 4px; }
}

/* ============================================================
   MEUS ATENDIMENTOS - MELHORIAS VISUAIS (view profissional)
   ============================================================ */

/* Grid de 4 colunas para cards críticos */
.sc-stat-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sc-stat-grid-critical {
    margin-top: -6px;
}

/* Valor menor nos mini-cards críticos */
.sc-stat-value-sm {
    font-size: 26px;
}

/* Anotação de valor em destaque dentro do card */
.sc-stat-note-amount {
    color: inherit;
    font-weight: 750;
}

/* Acento vermelho - Em atraso */
.sc-accent-danger {
    --sc-module: #b91c1c;
    --sc-module-soft: #fef2f2;
}

/* Acento laranja/âmbar - Vence hoje */
.sc-accent-alert {
    --sc-module: #b45309;
    --sc-module-soft: #fffbeb;
}

/* Estado "limpo" nos mini-cards (sem itens críticos) */
.sc-stat-card.is-clear {
    opacity: 0.72;
}

.sc-stat-card.is-critical .sc-stat-value-sm {
    color: var(--sc-module);
}

/* ============================================================
   BLOCO DE ALERTAS CRÍTICOS
   ============================================================ */

.sc-critical-alert-block {
    padding: 14px 18px;
    border-radius: var(--sc-radius);
    border: 1.5px solid;
    margin-bottom: 18px;
}

.sc-critical-alert-block--danger {
    background: #fff8f7;
    border-color: #f2c0bb;
}

.sc-critical-alert-block--warning {
    background: #fffcf2;
    border-color: #f1d59d;
}

.sc-critical-alert-block--clear {
    background: #f5fbf8;
    border-color: #bfe8d1;
}

.sc-critical-alert-inner {
    display: flex;
    align-items: center;
    gap: 14px;
}

.sc-critical-alert-icon {
    font-size: 22px;
    flex-shrink: 0;
}

.sc-critical-alert-block--danger .sc-critical-alert-icon { color: #b91c1c; }
.sc-critical-alert-block--warning .sc-critical-alert-icon { color: #b45309; }
.sc-critical-alert-block--clear .sc-critical-alert-icon { color: #17683f; }

.sc-critical-alert-title {
    display: block;
    font-size: 14px;
    font-weight: 750;
    margin-bottom: 6px;
}

.sc-critical-alert-block--danger .sc-critical-alert-title { color: #7f1d1d; }
.sc-critical-alert-block--warning .sc-critical-alert-title { color: #78350f; }
.sc-critical-alert-block--clear .sc-critical-alert-title { color: #14532d; }

.sc-critical-alert-sub {
    margin: 0;
    font-size: 13px;
    color: var(--sc-muted);
}

.sc-critical-alert-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sc-critical-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 650;
    border: 1px solid transparent;
}

.sc-critical-chip strong {
    font-weight: 780;
}

.sc-critical-chip--overdue {
    background: #fff0ef;
    color: #9d2c22;
    border-color: #f2c0bb;
}

.sc-critical-chip--today {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

.sc-critical-chip--partial {
    background: #f1edff;
    color: #5942a4;
    border-color: #d6ccff;
}

.sc-critical-chip--without {
    background: #fff4dc;
    color: #80560f;
    border-color: #f1d59d;
}

/* ============================================================
   LISTA DE PENDÊNCIAS PRIORITÁRIAS - MELHORIAS
   ============================================================ */

.sc-attendance-pending-patient {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.sc-attendance-pending-patient strong {
    font-size: 14px;
    color: var(--sc-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-attendance-pending-patient span {
    font-size: 12px;
    color: var(--sc-muted);
    font-weight: 750;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-pending-urgency-badge {
    white-space: nowrap;
    flex-shrink: 0;
}

.sc-pending-value {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: right;
}

.sc-pending-value-main {
    font-size: 14px;
    font-weight: 780;
    color: var(--sc-text);
}

.sc-pending-value-sub {
    font-size: 11px;
    color: var(--sc-muted);
    font-weight: 650;
}

/* Variantes de urgência nos itens de pendência */
.sc-attendance-pending-item--overdue {
    border-left: 4px solid #b91c1c;
    background: #fff8f7;
    border-color: #f2c0bb;
    border-left-color: #b91c1c;
}

.sc-attendance-pending-item--today {
    border-left: 4px solid #b45309;
    background: #fffcf2;
    border-color: #f1d59d;
    border-left-color: #b45309;
}

.sc-attendance-pending-item--partial {
    border-left: 4px solid #5942a4;
    border-left-color: #5942a4;
}

/* ============================================================
   TABELA - DESTAQUE DE LINHAS CRÍTICAS
   ============================================================ */

.sc-attendance-row-overdue td {
    background: #fff8f7;
}

.sc-attendance-row-today td {
    background: #fffcf2;
}

/* Tag de urgência dentro da coluna data */
.sc-row-urgency-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    padding: 2px 7px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}

.sc-row-urgency-tag--overdue {
    background: #fff0ef;
    color: #9d2c22;
    border: 1px solid #f2c0bb;
}

.sc-row-urgency-tag--today {
    background: #fff4dc;
    color: #80560f;
    border: 1px solid #f1d59d;
}

/* Pendente com cor de destaque na coluna de valores */
.sc-values-pending {
    color: #80560f;
    font-weight: 650;
}

/* ============================================================
   MOBILE - CARDS COM URGÊNCIA
   ============================================================ */

.sc-attendance-mobile-card--overdue {
    border-left: 4px solid #b91c1c;
    background: #fff8f7;
}

.sc-attendance-mobile-card--today {
    border-left: 4px solid #b45309;
    background: #fffcf2;
}

.sc-attendance-mobile-urgency {
    display: flex;
    align-items: center;
    padding: 2px 0 4px;
}

.sc-attendance-mobile-urgency .sc-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 12px;
    padding: 4px 10px;
}

/* ============================================================
   RESPONSIVIDADE DOS NOVOS ELEMENTOS
   ============================================================ */

@media (max-width: 1100px) {
    .sc-stat-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .sc-attendance-stat-grid.sc-stat-grid-compact,
    .sc-attendance-stat-grid.sc-stat-grid-4 {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 14px;
    }

    .sc-stat-grid-critical {
        margin-top: 0;
    }

    .sc-attendance-stat-grid .sc-stat-card {
        min-width: 0;
        padding: 14px 15px;
    }

    .sc-attendance-stat-grid .sc-stat-head {
        gap: 10px;
    }

    .sc-attendance-stat-grid .sc-stat-value,
    .sc-attendance-stat-grid .sc-stat-value-sm {
        font-size: 24px;
        line-height: 1.1;
    }

    .sc-attendance-stat-grid .sc-stat-note {
        overflow-wrap: anywhere;
    }

    .sc-attendance-period-control,
    .sc-attendance-period-field {
        grid-column: 1 / -1;
    }

    .sc-attendance-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .sc-attendance-pagination-controls {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        width: 100%;
    }

    .sc-attendance-page-btn {
        min-height: 44px;
        padding: 0 12px;
    }

    .sc-attendance-page-indicator {
        align-self: center;
        min-width: 0;
        white-space: nowrap;
    }

    .sc-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .sc-pagination-controls {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        width: 100%;
        gap: 8px;
    }

    .sc-pagination-nav {
        min-height: 44px;
    }

    .sc-pagination-indicator {
        align-self: center;
        text-align: center;
    }

    .sc-pagination-controls > .sc-pagination-nav:last-child {
        justify-self: end;
    }

    .sc-critical-alert-inner {
        align-items: flex-start;
    }

    .sc-attendance-pending-item {
        grid-template-columns: 1fr;
    }

    .sc-pending-value {
        text-align: left;
    }
}

@media (max-width: 480px) {
    .sc-attendance-filter {
        grid-template-columns: 1fr;
    }

    .sc-attendance-filter .sc-filter-patient-combobox {
        grid-column: 1 / -1;
    }

    .sc-critical-alert-chips {
        gap: 6px;
    }
}

/* ============================================================
   CARROSSEL MOBILE — CARDS DE RESUMO
   ============================================================ */

.sc-attendance-stat-carousel-wrap {
    position: relative;
}

@media (max-width: 768px) {
    /* Seção principal: mostra apenas Recebido + Pendente em 2 colunas */
    .sc-attendance-stat-main {
        grid-template-columns: 1fr 1fr;
        margin-bottom: 12px;
    }

    /* Oculta o primeiro card (Atendimentos) — vai implicitamente para o carrossel */
    .sc-attendance-stat-main .sc-stat-card:first-child {
        display: none;
    }

    /* Carrossel: converte grid em fila scrollável horizontal */
    .sc-attendance-stat-carousel {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: 12px;
        padding-bottom: 22px;
        padding-right: 20px;
        margin-bottom: 0;
    }

    .sc-attendance-stat-carousel::-webkit-scrollbar {
        display: none;
    }

    .sc-attendance-stat-carousel .sc-stat-card {
        flex: 0 0 72%;
        min-width: 0;
        scroll-snap-align: start;
    }

    /* Gradiente lateral direita indica mais conteúdo */
    .sc-attendance-stat-carousel-wrap::after {
        content: "";
        position: absolute;
        right: 0;
        top: 0;
        bottom: 22px;
        width: 52px;
        background: linear-gradient(to right, transparent, var(--sc-bg) 85%);
        pointer-events: none;
        z-index: 1;
    }

    /* Indicador textual discreto abaixo do carrossel */
    .sc-attendance-stat-carousel-wrap::before {
        content: "deslize para ver mais \203A";
        position: absolute;
        bottom: 4px;
        right: 0;
        font-size: 11px;
        color: var(--sc-muted);
        font-weight: 650;
        pointer-events: none;
        z-index: 2;
    }
}

/* Campo de período colapsado via JS */
.sc-attendance-period-field.is-collapsed {
    display: none;
}

/* Botão limpar filtros */
.sc-attendance-filter-clear {
    white-space: nowrap;
}

/* ============================================================
   CARROSSEL GENÉRICO — CARDS DE RESUMO (MOBILE)
   Aplicável a qualquer módulo com sc-stat-carousel-wrap + sc-stat-carousel.
   Home e Atendimentos têm suas próprias variantes; não alterar.
   ============================================================ */

.sc-stat-carousel-wrap {
    position: relative;
}

@media (max-width: 768px) {
    .sc-stat-carousel {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: 12px;
        padding-bottom: 22px;
        padding-right: 20px;
        margin-bottom: 0;
    }

    .sc-stat-carousel::-webkit-scrollbar {
        display: none;
    }

    .sc-stat-carousel .sc-stat-card {
        flex: 0 0 78%;
        min-width: 0;
        scroll-snap-align: start;
    }

    .sc-stat-carousel-wrap::after {
        content: "";
        position: absolute;
        right: 0;
        top: 0;
        bottom: 22px;
        width: 52px;
        background: linear-gradient(to right, transparent, var(--sc-bg) 85%);
        pointer-events: none;
        z-index: 1;
    }

    .sc-stat-carousel-wrap::before {
        content: "deslize para ver mais \203A";
        position: absolute;
        bottom: 4px;
        right: 0;
        font-size: 11px;
        color: var(--sc-muted);
        font-weight: 650;
        pointer-events: none;
        z-index: 2;
    }
}

/* =====================================================
   Configurações operacionais
   ===================================================== */

.sc-op-section-divider {
    padding: 12px 0 4px;
    border-top: 2px solid var(--sc-border);
    margin-top: 8px;
}

.sc-op-accordion {
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    overflow: hidden;
}

.sc-op-accordion-item {
    border: none;
    border-bottom: 1px solid var(--sc-border);
}

.sc-op-accordion-item:last-child { border-bottom: none; }

.sc-op-accordion-btn {
    background: var(--sc-surface);
    color: var(--sc-text);
    font-weight: 500;
    font-size: 14px;
    padding: 12px 16px;
    box-shadow: none;
    gap: 8px;
}

.sc-op-accordion-btn:not(.collapsed) {
    background: var(--sc-surface-muted);
    color: var(--sc-text);
    box-shadow: none;
}

.sc-op-accordion-btn::after { margin-left: auto; }

.sc-op-tpl-label { flex: 1; }

.sc-op-tpl-badge {
    font-size: 11px;
    font-weight: 600;
    color: var(--sc-module);
    background: var(--sc-module-soft);
    padding: 2px 8px;
    border-radius: 10px;
    white-space: nowrap;
}

.sc-op-accordion-body {
    background: var(--sc-surface);
    padding: 16px;
}

.sc-op-tpl-channel-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--sc-text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.sc-op-tpl-area {
    font-size: 13px;
    resize: vertical;
    min-height: 90px;
}

.sc-alert-info {
    background: rgba(26, 115, 232, 0.07);
    border: 1px solid rgba(26, 115, 232, 0.22);
    color: #1a4a8a;
    border-radius: var(--sc-radius);
    padding: 10px 14px;
    font-size: 14px;
}

/* ── Packages Tab ──────────────────────────────── */
.sc-package-tab-header {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}

.sc-package-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sc-package-list-inactive {
    opacity: 0.75;
}

.sc-package-card {
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius);
    padding: 14px;
    background: #fff;
}

.sc-package-card-active {
    border-left: 3px solid var(--sc-primary);
}

.sc-package-card-inactive {
    background: var(--sc-bg-soft);
}

.sc-package-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
    gap: 8px;
}

.sc-package-card-header > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.sc-package-card-header strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--sc-text);
}

.sc-package-card-header span {
    font-size: 12px;
    color: var(--sc-text-muted);
}

.sc-package-balance-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    padding: 10px;
    background: var(--sc-bg-soft);
    border-radius: var(--sc-radius-sm);
    margin-bottom: 10px;
}

.sc-package-balance-strip section {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.sc-package-balance-strip span {
    font-size: 11px;
    color: var(--sc-text-muted);
}

.sc-package-balance-strip strong {
    font-size: 18px;
    font-weight: 700;
    color: var(--sc-text);
}

.sc-package-balance-ok strong {
    color: var(--sc-success);
}

.sc-package-balance-zero strong {
    color: var(--sc-text-muted);
}

.sc-package-card-meta {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: var(--sc-text-muted);
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.sc-package-card-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Package selector in appointment form */
.sc-package-selector-row {
    margin-top: 4px;
}

.sc-package-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: rgba(var(--sc-primary-rgb, 26, 115, 232), 0.06);
    border: 1px solid rgba(var(--sc-primary-rgb, 26, 115, 232), 0.18);
    border-radius: var(--sc-radius);
}

.sc-package-banner > i {
    font-size: 20px;
    color: var(--sc-primary);
    flex-shrink: 0;
}

.sc-package-banner-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.sc-package-banner-text strong {
    font-size: 13px;
    font-weight: 700;
    color: var(--sc-primary);
}

.sc-package-banner-text span {
    font-size: 12px;
    color: var(--sc-text-muted);
}

.sc-package-select {
    flex-shrink: 0;
    width: auto;
    max-width: 260px;
    font-size: 13px;
}

/* Package details modal */
.sc-package-balance-strip.modal-strip {
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 0;
}

/* Tab badge */
.sc-tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    background: var(--sc-primary);
    color: #fff;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
    margin-left: 4px;
    vertical-align: middle;
}

/* Tab action bar — small action row inside tab panes */
.sc-tab-action-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--sc-border);
}

/* Package shortcut row in appointment form */
.sc-package-shortcut-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
}

.sc-package-shortcut-hint {
    font-size: 13px;
    color: var(--sc-muted);
}

/* Finance preview banner in appointment form */
.sc-finance-preview-row {
    margin-top: 4px;
}

.sc-finance-preview-banner {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    background: rgba(var(--sc-primary-rgb, 26, 115, 232), 0.05);
    border: 1px solid rgba(var(--sc-primary-rgb, 26, 115, 232), 0.14);
    border-radius: var(--sc-radius);
    font-size: 13px;
    color: var(--sc-text-muted);
}

.sc-finance-preview-banner > i {
    font-size: 15px;
    color: var(--sc-primary);
    flex-shrink: 0;
    margin-top: 1px;
}

.sc-finance-banner-warning {
    background: rgba(220, 120, 0, 0.07);
    border-color: rgba(220, 120, 0, 0.25);
}

.sc-finance-banner-warning > i {
    color: #b96000;
}

.sc-finance-banner-monthly {
    background: rgba(20, 140, 90, 0.07);
    border-color: rgba(20, 140, 90, 0.22);
}

.sc-finance-banner-monthly > i {
    color: #14885a;
}

.sc-billing-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sc-billing-alt-action {
    display: flex;
}

.sc-chip-button-sm {
    padding: 4px 10px;
    font-size: 12px;
}

.sc-billing-options-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--sc-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 8px 0;
}

.sc-billing-options {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sc-billing-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 12px;
    border: 1.5px solid var(--sc-border);
    border-radius: var(--sc-radius);
    background: var(--sc-surface);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
}

.sc-billing-option:hover {
    border-color: var(--sc-primary);
    background: rgba(var(--sc-primary-rgb, 26, 115, 232), 0.04);
}

.sc-billing-option.is-selected {
    border-color: var(--sc-primary);
    background: rgba(var(--sc-primary-rgb, 26, 115, 232), 0.07);
}

.sc-billing-option-icon {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    background: rgba(var(--sc-primary-rgb, 26, 115, 232), 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sc-billing-option-icon i {
    font-size: 14px;
    color: var(--sc-primary);
}

.sc-billing-option.is-selected .sc-billing-option-icon {
    background: var(--sc-primary);
}

.sc-billing-option.is-selected .sc-billing-option-icon i {
    color: #fff;
}

.sc-billing-option-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.sc-billing-option-content strong {
    font-size: 13px;
    font-weight: 600;
    color: var(--sc-text);
}

.sc-billing-option-content span {
    font-size: 12px;
    color: var(--sc-text-muted);
}

.sc-billing-option-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--sc-primary);
    color: #fff;
    padding: 2px 7px;
    border-radius: 20px;
}

.sc-billing-pkg-select {
    margin-top: 4px;
    font-size: 12px;
}

.sc-billing-actions-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.sc-billing-add-row {
    margin-top: 8px;
}

.sc-billing-add-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 4px 2px;
    font-size: 12px;
    font-weight: 600;
    color: var(--sc-primary);
    cursor: pointer;
    border-radius: 4px;
    transition: opacity 0.15s;
}

.sc-billing-add-toggle:hover {
    opacity: 0.75;
}

.sc-billing-add-toggle i {
    font-size: 11px;
    transition: transform 0.2s;
}

.sc-billing-add-toggle.is-expanded i {
    transform: rotate(45deg);
}

.sc-billing-add-options {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 6px;
    padding: 8px 10px;
    background: rgba(var(--sc-primary-rgb, 26, 115, 232), 0.04);
    border-radius: var(--sc-radius);
}

.sc-billing-add-options[hidden],
.sc-billing-add-options.d-none {
    display: none !important;
}

.sc-appointment-recurrence {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: var(--sc-radius);
    padding: 12px;
    background: rgba(15, 23, 42, 0.02);
}

.sc-inline-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: var(--sc-text);
    cursor: pointer;
}

.sc-inline-toggle input {
    width: 16px;
    height: 16px;
}

.sc-recurrence-options {
    margin-top: 12px;
}

.sc-recurrence-options[hidden] {
    display: none !important;
}

@media (max-width: 576px) {
    .sc-billing-option {
        padding: 8px 10px;
    }

    .sc-billing-option-icon {
        width: 26px;
        height: 26px;
    }

    .sc-billing-option-badge {
        position: static;
        align-self: flex-start;
        margin-top: 4px;
    }
}

@media (max-width: 576px) {
    .sc-package-balance-strip {
        grid-template-columns: repeat(2, 1fr);
    }

    .sc-package-banner {
        flex-direction: column;
        align-items: flex-start;
    }

    .sc-package-select {
        max-width: 100%;
        width: 100%;
    }

    .sc-package-shortcut-row {
        flex-direction: column;
        align-items: flex-start;
    }
}
