html[data-text-size="small"] { font-size: 56.25%; }
html[data-text-size="large"] { font-size: 75%; }
html[data-text-size="extra-large"] { font-size: 87.5%; }
html[data-high-contrast="1"] body { background: white; color: #111; }
html[data-high-contrast="1"] :is(p,small,span,dt,dd,label,h1,h2,h3,h4,th,td) { color: #111; }
html[data-high-contrast="1"] :is(.care-card,.account-settings-card,.pending-action-card,.workspace-sidebar) { background: white; border-color: #111; }
html[data-high-contrast="1"] a:not(.btn) { color: #003b73; text-decoration: underline; }
html[data-high-contrast="1"] .btn-primary { background: #111; border-color: #111; color: white; }
html[data-high-contrast="1"] .btn-primary * { color: white; }
html[data-high-contrast="1"] .workspace-sidebar-link.is-active { background: #111; color: white; }
html[data-high-contrast="1"] .workspace-sidebar-link.is-active * { color: white; }
html[data-high-contrast="1"] .workspace-sidebar-link.is-active .workspace-sidebar-icon { background: #111; border-color: white; }
html[data-high-contrast="1"] :is(input,select,textarea) { border-color: #111; color: #111; background-color: white; }
html[data-high-contrast="1"] input[type="checkbox"] { accent-color: #111; }
html[data-high-contrast="1"] .btn-outline-primary { color: #111; background: white; border-color: #111; }
/* A dark high-contrast palette must override both sets of component colours. */
html[data-high-contrast="1"][data-theme="dark"] {
    --ui-background: #080d0a;
    --ui-surface: #101b14;
    --ui-text: #fff;
    --ui-muted: #fff;
    --ui-line: #a8c9b4;
}
html[data-high-contrast="1"][data-theme="dark"] :is(body, main) { background: #080d0a; color: #fff; }
html[data-high-contrast="1"][data-theme="dark"] :is(.top-nav, .navbar-collapse, .workspace-sidebar, .care-card, .card, .account-settings-card, .pending-action-card, .dashboard-stat-card, .dashboard-simple-header, .manager-monitor, .admin-panel, .manager-weekly-chart, .manager-monitor-controls, .manager-monitor-meta, .physio-weekly-day, .schedule-day) { background: #101b14 !important; color: #fff; border-color: #a8c9b4; }
html[data-high-contrast="1"][data-theme="dark"] :is(h1,h2,h3,h4,h5,h6,p,small,span,strong,dt,dd,label,legend,th,td,time) { color: #fff !important; }
html[data-high-contrast="1"][data-theme="dark"] a:not(.btn) { color: #a8ffd0 !important; text-decoration: underline; }
html[data-high-contrast="1"][data-theme="dark"] :is(.btn, button, input[type="submit"], .workspace-sidebar-link.is-active) { color: #fff !important; background-color: #101b14 !important; border-color: #a8c9b4 !important; }
html[data-high-contrast="1"][data-theme="dark"] :is(.btn, button, .workspace-sidebar-link.is-active) :is(span,strong,small) { color: inherit !important; }
html[data-high-contrast="1"][data-theme="dark"] :is(.btn-primary, .workspace-sidebar-link.is-active) { background: #fff !important; color: #080d0a !important; border-color: #fff !important; }
html[data-high-contrast="1"][data-theme="dark"] .workspace-sidebar-link.is-active .workspace-sidebar-icon { background: #080d0a; color: #fff !important; border-color: #080d0a; }
html[data-high-contrast="1"][data-theme="dark"] :is(input,select,textarea) { background-color: #101b14 !important; color: #fff !important; border-color: #a8c9b4 !important; }
html[data-high-contrast="1"][data-theme="dark"] :is(input,textarea)::placeholder { color: #d8e9df; opacity: 1; }
html[data-high-contrast="1"][data-theme="dark"] :focus-visible { outline: 3px solid #ffe18a; outline-offset: 3px; }
html[data-high-contrast="1"][data-theme="dark"] .top-nav .nav-contact .nav-contact-label { color: #fff !important; }
html[data-high-contrast="1"][data-theme="dark"] .dropdown-menu { background: #101b14 !important; border-color: #a8c9b4; }
html[data-high-contrast="1"][data-theme="dark"] :is(.admin-panel-count, .manager-rank, .today-badge) { color: #080d0a !important; }
html[data-high-contrast="1"][data-theme="dark"] .manager-rank { background: #fff !important; }
html[data-reader-support="1"] :focus-visible { outline: 3px solid #075985; outline-offset: 3px; }
html[data-reader-support="1"] .accessibility-skip-link { position: static; display: inline-block; padding: 12px; background: white; color: #003b73; }
.accessibility-skip-link { position: absolute; top: -100px; }
.accessibility-skip-link:focus { top: 0; z-index: 2000; padding: 12px; background: white; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* Public, device-local large-text shortcut; account preferences remain the baseline. */
html[data-large-text="1"] { font-size: 87.5%; }
.top-nav .nav-large-text { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 44px; border-radius: 999px; border: 1px solid var(--color-physio-green-border); background: #fff; color: var(--color-physio-green-dark); font-weight: 750; white-space: nowrap; padding: .75rem 1.15rem; }
.nav-large-text .large-text-symbol { display: inline-flex; align-items: baseline; font-size: 1.8rem; line-height: 1; font-weight: 800; }
.nav-large-text .large-text-state { padding: .1rem .4rem; border-radius: 999px; background: #fff; color: var(--color-physio-green-dark); font-size: .85em; }
.nav-large-text .large-text-state[hidden] { display: none; }
.top-nav .nav-large-text[aria-pressed="true"] { background: var(--color-physio-green-dark); color: #fff; border-color: var(--color-physio-green-dark); }
.top-nav .nav-large-text:hover { border-color: var(--color-physio-green); }
.top-nav .nav-large-text:focus-visible { outline: 3px solid var(--color-potato-gold); outline-offset: 3px; }
.top-nav .nav-large-text-mobile { display: none; }
.top-nav .navbar-toggler:is(:hover, :focus, :active, [aria-expanded="true"]) { background: #e8f5ec; }
.top-nav .navbar-toggler:focus-visible { outline: 3px solid var(--color-potato-gold); outline-offset: 3px; }
@media (min-width: 1200px) {
    .top-nav #mainNavbar { flex-wrap: wrap; gap: .8rem; }
    .top-nav .top-nav-links { flex-wrap: wrap; }
    html[data-large-text="1"] .top-nav .container-fluid { flex-wrap: wrap; }
    html[data-large-text="1"] .top-nav #mainNavbar { flex-basis: 100%; }
}
@media (max-width: 1199px) {
    .top-nav .nav-large-text-mobile { display: inline-flex; margin-left: auto; margin-right: .6rem; }
    .top-nav .nav-large-text-desktop { display: none; }
    .top-nav .top-nav-links { flex-wrap: wrap; }
}
@media (max-width: 480px) {
    .top-nav > .container-fluid { flex-wrap: wrap; }
    .top-nav .top-nav-title { flex-basis: 100%; margin-bottom: .7rem; }
    .top-nav .nav-large-text-mobile { margin-left: 0; flex: 0 0 auto; width: auto; font-size: 1.2rem; white-space: nowrap; }
    .top-nav .nav-large-text-mobile .large-text-symbol { font-size: 1.4rem; }
    .top-nav .navbar-toggler { min-height: 44px; min-width: 44px; }
    html[data-large-text="1"] :is(.btn, button, input, select, textarea) { max-width: 100%; }
    html[data-large-text="1"] .btn { white-space: normal; overflow-wrap: anywhere; }
    html[data-large-text="1"] .workflow-filters .input { flex: 1 1 100%; width: 100%; min-width: 0; }
    .calendar-jump-form { flex-direction: column; align-items: stretch; min-width: 0; }
    .calendar-jump-form .input { width: 100%; min-width: 0; }
    .calendar-jump-form button { width: 100%; }
    html[data-large-text="1"] .schedule-appointments td { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
}

/* Give enlarged workspace text enough room at tablet widths. */
@media (max-width: 480px) {
    html[data-large-text="1"] .hero-slide-content :is(h1, h2) {
        font-size: clamp(2.2rem, 10vw, 3.4rem);
        overflow-wrap: normal;
        word-break: normal;
    }
}
@media (min-width: 761px) and (max-width: 1099px) {
    html[data-large-text="1"] .workspace-shell { grid-template-columns: 1fr; }
    html[data-large-text="1"] .workspace-sidebar { position: static; min-height: 0; max-height: none; }
    html[data-large-text="1"] .workspace-sidebar-nav { grid-template-columns: 1fr; }
    html[data-large-text="1"] .workspace-sidebar-label { grid-column: 1 / -1; }
}
@media (max-width: 1099px) {
    html[data-large-text="1"] .homepage-redesign .value-strip { grid-template-columns: 1fr; }
    html[data-large-text="1"] .homepage-redesign .value-strip > div { min-width: 0; }
    html[data-large-text="1"] .homepage-redesign .hero-slide-label { bottom: 7rem; }
    html[data-large-text="1"] .workspace-content .dashboard-stat-grid,
    html[data-large-text="1"] .physio-stat-grid { grid-template-columns: 1fr; }
}

html[data-large-text='1'] .account-settings-header p:not(.section-eyebrow) { font-size: 1.6rem; }
html[data-large-text='1'] .account-settings-card h2 { font-size: 1.8rem; }
html[data-large-text='1'] .account-security-card input { font-size: 1.6rem; }


html[data-large-text='1'] .diary-progress-chart svg { height:244px; }
html[data-large-text='1'] .diary-progress-chart text { font-size:1.6rem; }

/* Status words and counts remain legible when high contrast overrides their text. */
html[data-high-contrast="1"] body .workspace-shell--manager :is(
    .manager-task-count, .manager-queue-count, .manager-operation-status,
    .followup-count, .followup-channel, .followup-overdue-number, .followup-state,
    .delivery-count, .enquiry-current-state
) {
    background: var(--ui-surface) !important;
    color: var(--ui-text) !important;
    border: 1px solid currentColor !important;
}
html[data-high-contrast="1"] body .manager-week-matrix [data-load] {
    color: var(--ui-text) !important;
}
html[data-high-contrast="1"] body .manager-week-matrix [data-load="full"] {
    color: #fff !important;
}
html[data-theme="dark"][data-high-contrast="1"] body .manager-week-matrix [data-load="full"] {
    color: #0c2115 !important;
}
