/* AnnnyStyle readability preset. Only loaded by Backoffice; scoped consumers
   retain fallbacks for the App. Keep the standalone guide's copy in sync. */
:root {
    --annny-text-tiny: .5625rem;
    --annny-text-caption: .625rem;
    --annny-text-micro: .6875rem;
    --annny-text-small: .75rem;
    --annny-text-control: .8125rem;
    --annny-text-body: .875rem;
    --annny-text-lead: .9375rem;
    --annny-text-normal: 1rem;
    --annny-text-section: 1.125rem;
    --annny-text-title: 1.25rem;
    --annny-text-dialog: 1.3125rem;
    --annny-text-heading: 1.5rem;
    --annny-text-page: 1.75rem;
    --annny-text-display: 2rem;
    --annny-weight-medium: 500;
    --annny-weight-label: 600;
    --annny-weight-strong: 650;
    --annny-care-change-arrival-background: color-mix(in srgb, #ffc107 35%, var(--surface, #ffffff));
    --annny-care-change-departure-background: color-mix(in srgb, #f53032 15%, var(--surface, #ffffff));
}

:root[data-theme="dark"],
:root[data-bs-theme="dark"] {
    --annny-care-change-arrival-background: color-mix(in srgb, #ffc107 20%, var(--surface, #192e26));
    --annny-care-change-departure-background: color-mix(in srgb, #f53032 35%, var(--surface, #192e26));
}

:root[data-readability="improved"] {
    --annny-text-scale: 1.35;
    --annny-display-scale: 1.15;
    --annny-text-minimum: 1rem;
    --annny-text-tiny: 1rem;
    --annny-text-caption: 1rem;
    --annny-text-micro: 1rem;
    --annny-text-small: 1.0625rem;
    --annny-text-control: 1.125rem;
    --annny-text-body: 1.1875rem;
    --annny-text-lead: 1.25rem;
    --annny-text-normal: 1.25rem;
    --annny-text-section: 1.375rem;
    --annny-text-title: 1.5rem;
    --annny-text-dialog: 1.625rem;
    --annny-text-heading: 1.75rem;
    --annny-text-page: 2rem;
    --annny-text-display: 2.25rem;
    --annny-weight-medium: 600;
    --annny-weight-label: 700;
    --annny-weight-strong: 750;
    --annny-weight-value: 600;
    --annny-page-padding: 12px;
    --annny-panel-padding: 12px;
    --annny-layout-gap: 12px;
    --annny-readable-sidebar-width: 16rem;
    --annny-readable-matching-filter-width: 30rem;
    --annny-readable-person-menu-width: 20rem;
    --annny-readable-invoicing-menu-width: 26rem;
    --space-6: 12px;
    --space-8: 12px;
    --space-12: 24px;
    --annny-text-wrap: normal;
    --annny-tag-text-max: none;
    --annny-control-height: 44px;
    --annny-control-wrap: wrap;
    --annny-control-line-height: 1.55;
    --annny-content-height: auto;
    --annny-telephone-type-max: none;
    --annny-telephone-prefix-max: 5rem;
    --annny-telephone-number-basis: 12rem;
    --annny-date-day-size: max(44px, 2.75rem);
    --annny-matrix-scale: 1.5;
    --annny-dashboard-row-height: max(96px, 8rem);
    --annny-progress-size: 8rem;
    --annny-readable-surface: #ffffff;
    --annny-readable-surface-alt: #f0f3ef;
    --annny-readable-canvas: #f6f7f4;
    --annny-readable-brand: #00624a;
    --annny-readable-brand-hover: #004f3c;
    --annny-readable-brand-soft: #e6f2ed;
    --annny-notification-width: 20rem;
    --annny-sheet-top: max(env(safe-area-inset-top), 12px);
    --annny-readable-ink: #10271f;
    --annny-readable-muted: #344e42;
    --annny-readable-line: #87998e;
    --annny-readable-control-border: #566e60;
    --annny-readable-notification: #ffffff;
    --annny-readable-shell-muted: #e3f1eb;
    --annny-readable-shell-active: #004735;
    --ink: var(--annny-readable-ink);
    --muted: var(--annny-readable-muted);
    --line: var(--annny-readable-line);
    --control-border: var(--annny-readable-control-border);
    --control-height: var(--annny-control-height);
    --surface: var(--annny-readable-surface);
    --surface-alt: var(--annny-readable-surface-alt);
    --canvas: var(--annny-readable-canvas);
    --brand: var(--annny-readable-brand);
    --brand-hover: var(--annny-readable-brand-hover);
    --brand-soft: var(--annny-readable-brand-soft);
    --bs-body-font-size: var(--annny-text-body);
    --bs-gray-600: var(--annny-readable-muted);
    --bs-gray: var(--annny-readable-muted);
    --bs-secondary-color: var(--annny-readable-muted);
    --bs-body-color: var(--annny-readable-ink);
    --bs-body-bg: var(--annny-readable-surface);
    --bs-body-color-rgb: 16, 39, 31;
}

:root[data-readability="improved"][data-theme="dark"],
:root[data-readability="improved"][data-bs-theme="dark"] {
    --annny-readable-ink: #ffffff;
    --annny-readable-muted: #d0e3d8;
    --annny-readable-line: #8aa799;
    --annny-readable-control-border: #afcbbb;
    --annny-readable-notification: #192e26;
    --annny-readable-surface: #192e26;
    --annny-readable-surface-alt: #213a30;
    --annny-readable-canvas: #12231e;
    --annny-readable-brand: #9ddbbe;
    --annny-readable-brand-hover: #b8e8cf;
    --annny-readable-brand-soft: #203e33;
    --bs-body-color-rgb: 255, 255, 255;
}

/* Native controls without a component style inherit readable typography. */
:where(:root[data-readability="improved"]) :where(button, input, select, textarea) {
    font-size: inherit;
    line-height: 1.55;
}

:where(:root[data-readability="improved"]) button {
    min-height: 44px;
}

/* Shared application primitives outside page/overlay themes. */
:root[data-readability="improved"] body {
    font-size: var(--annny-text-body);
    line-height: 1.55;
}

:root[data-readability="improved"] :is(.form-control, .form-select, .dropdown-menu, .btn) {
    font-size: var(--annny-text-control);
    line-height: 1.55;
}

:root[data-readability="improved"] :is(.form-control, .form-select, .btn, .dropdown-item) {
    min-height: 44px;
}

:root[data-readability="improved"] :is(.dropdown-item, .btn) {
    white-space: normal;
    overflow-wrap: anywhere;
}

:root[data-readability="improved"] :is(.form-label, .form-check-label, dt) {
    font-weight: var(--annny-weight-label);
}

:root[data-readability="improved"] :is(small, .small, .form-text, .invalid-feedback) {
    font-size: var(--annny-text-small);
}

/* Bootstrap font utilities carry !important in the compiled stylesheet. */
:root[data-readability="improved"] .fs-6 { font-size: var(--annny-text-normal) !important; }
:root[data-readability="improved"] .fs-5 { font-size: var(--annny-text-title) !important; }
:root[data-readability="improved"] .fs-4 { font-size: var(--annny-text-heading) !important; }
:root[data-readability="improved"] .fs-3 { font-size: var(--annny-text-page) !important; }
:root[data-readability="improved"] .fs-2 { font-size: var(--annny-text-display) !important; }

/* Rich-text tooling is vendor CSS; document contents keep their saved formatting. */
:root[data-readability="improved"] .ql-toolbar {
    display: flex;
    flex-wrap: wrap;
    font-size: var(--annny-text-control);
}

:root[data-readability="improved"] .ql-toolbar :is(button, .ql-picker-label) {
    min-width: 44px;
    min-height: 44px;
    height: auto;
}

:root[data-readability="improved"] .ql-toolbar .ql-picker {
    height: auto;
    min-height: 44px;
}

/* Chart libraries set presentation attributes and inline legend font sizes. */
:root[data-readability="improved"] :is(.apexcharts-text, .apexcharts-legend-text, .apexcharts-tooltip-text) {
    font-size: var(--annny-text-small) !important;
}

:root[data-readability="improved"] .apexcharts-text {
    fill: var(--annny-readable-ink);
}

:root[data-readability="improved"] .apexcharts-legend-text {
    color: var(--annny-readable-ink) !important;
}

/* Bootstrap's compiled utility uses a hardcoded color and !important. */
:root[data-readability="improved"] .text-muted {
    color: var(--annny-readable-muted) !important;
}

:root[data-readability="improved"] .text-truncate {
    white-space: normal !important;
    overflow-wrap: anywhere;
    text-overflow: clip;
}

:root[data-readability="improved"] .ql-container {
    font-size: var(--annny-text-body);
    line-height: 1.55;
}

:root[data-readability="improved"] .ql-toolbar .ql-stroke {
    stroke: var(--annny-readable-ink);
}

:root[data-readability="improved"] :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--brand, #00624a);
    outline-offset: 3px;
}
