/* NIRAB phase 01. Extend the existing Bootstrap/admin UI only inside this root. */
body.nirab-admin-ui {
    --nirab-brand: #044b4a;
    --nirab-accent: #03babc;
    --nirab-accent-soft: #6dc9c9;
    --nirab-action: #087f80;
    --nirab-canvas: #f4f8f8;
    --nirab-surface: #ffffff;
    --nirab-surface-soft: #eaf4f3;
    --nirab-text: #183b3a;
    --nirab-muted: #526d6c;
    --nirab-border: #d9e7e6;
    --nirab-danger: #b42335;
    --nirab-danger-bg: #fff0f1;
    --nirab-warning: #855400;
    --nirab-warning-bg: #fff5dc;
    --nirab-success: #176747;
    --nirab-success-bg: #e6f5ed;
    --nirab-info: #245d86;
    --nirab-info-bg: #eaf3fb;
    --nirab-font: 'Norsal', sans-serif;
    --nirab-space-1: .25rem;
    --nirab-space-2: .5rem;
    --nirab-space-3: .75rem;
    --nirab-space-4: 1rem;
    --nirab-space-6: 1.5rem;
    --nirab-space-8: 2rem;
    --nirab-radius-sm: .5rem;
    --nirab-radius: .875rem;
    --nirab-radius-lg: 1.25rem;
    --nirab-shadow: 0 .25rem 1.25rem rgba(4, 75, 74, .06);
    --nirab-shadow-raised: 0 .75rem 2.5rem rgba(4, 75, 74, .14);
    --nirab-sidebar: 17.5rem;
    --nirab-sidebar-folded: 4.5rem;
    --nirab-topbar: 4.5rem;
    --nirab-content-gap: clamp(.75rem, 2vw, 1.75rem);
    --bs-font-sans-serif: var(--nirab-font);
    --bs-body-font-family: var(--nirab-font);
    --body-font: var(--nirab-font);
    --bs-primary: var(--nirab-action);
    --bs-primary-rgb: 8, 127, 128;
    --bs-primary-dark: var(--nirab-brand);
    --bs-primary-light: var(--nirab-surface-soft);
    --bs-primary-light-bg: var(--nirab-surface-soft);
    --bs-body-bg: var(--nirab-canvas);
    --bs-body-color: var(--nirab-muted);
    --bs-dark: var(--nirab-text);
    --bs-dark-rgb: 24, 59, 58;
    --bs-white: var(--nirab-surface);
    --bs-white-rgb: 255, 255, 255;
    --bs-light: var(--nirab-surface-soft);
    --bs-light-rgb: 234, 244, 243;
    --bs-border-color: var(--nirab-border);
    --border-color: var(--nirab-border);
    --input-border-color: var(--nirab-border);
    --input-border-color-active: var(--nirab-action);
    --bg-color: var(--nirab-canvas);
    --bg-color2: var(--nirab-surface-soft);
    --bg-color3: var(--nirab-border);
    --bg-color4: var(--nirab-surface-soft);
    --secondary-btn-color: var(--nirab-surface-soft);
    --secondary-btn-hover-color: var(--nirab-border);
    --dropdown-menu-color: var(--nirab-surface);
    --bs-secondary-bg: var(--nirab-surface-soft);
    --bs-secondary-color: var(--nirab-muted);
    --bs-heading-color: var(--nirab-text);
    --text-light-color: var(--nirab-muted);
    --bs-link-color: var(--nirab-action);
    --bs-link-hover-color: var(--nirab-brand);
    font-family: var(--nirab-font);
    font-size: .9375rem;
    line-height: 1.65;
    text-align: start;
    color: var(--nirab-text);
    background: var(--nirab-canvas);
    accent-color: var(--nirab-action);
}

/* Keep the existing data-bs-theme/localStorage contract. */
body.nirab-admin-ui[data-bs-theme="dark"] {
    color-scheme: dark;
    --nirab-canvas: #102625;
    --nirab-surface: #193432;
    --nirab-surface-soft: #224340;
    --nirab-text: #e6f4f2;
    --nirab-muted: #b0c9c6;
    --nirab-border: #365653;
    --nirab-action: #6dc9c9;
    --nirab-danger: #ffb3bb;
    --nirab-danger-bg: #482e35;
    --nirab-warning: #f5d083;
    --nirab-warning-bg: #443b27;
    --nirab-success: #a0dfbd;
    --nirab-success-bg: #234638;
    --nirab-info: #a9d5f4;
    --nirab-info-bg: #263e51;
    --bs-primary-rgb: 109, 201, 201;
    --bs-dark-rgb: 230, 244, 242;
    --bs-white-rgb: 25, 52, 50;
    --bs-light-rgb: 34, 67, 64;
    --bs-link-hover-color: #b4eeee;
    --nirab-shadow: 0 .25rem 1.25rem rgba(0, 0, 0, .12);
    --nirab-shadow-raised: 0 .75rem 2.5rem rgba(0, 0, 0, .25);
}

/* Inherit text fonts; never apply a universal font override to icon glyphs. */
body.nirab-admin-ui :is(button, input, select, textarea, .tooltip, .popover, .select2-container, .swal2-container) {
    font-family: var(--nirab-font);
}

body.nirab-admin-ui .apexcharts-text {
    font-family: var(--nirab-font) !important;
}

body.nirab-admin-ui :is(.material-icons, .material-symbols-outlined) {
    direction: ltr;
    flex-shrink: 0;
}

body.nirab-admin-ui :focus-visible {
    outline: 3px solid var(--nirab-action) !important;
    outline-offset: 3px;
}

body.nirab-admin-ui .nirab-skip-link {
    position: fixed;
    inset-block-start: .5rem;
    inset-inline-start: .5rem;
    z-index: 10000000;
    padding: .75rem 1rem;
    border-radius: var(--nirab-radius-sm);
    color: var(--nirab-text);
    background: var(--nirab-surface);
    transform: translateY(-160%);
}

body.nirab-admin-ui .nirab-skip-link:focus {
    transform: translateY(0);
}

/* Shell: retain the existing aside-* classes and the 1200px JS breakpoint. */
body.nirab-admin-ui .header {
    block-size: var(--nirab-topbar);
    padding-inline: calc(var(--nirab-sidebar) + var(--nirab-content-gap)) var(--nirab-content-gap);
    border-block-end: 1px solid var(--nirab-border);
    background: var(--nirab-surface);
    box-shadow: var(--nirab-shadow);
}

body.nirab-admin-ui .header :is(.container-fluid, .row) {
    min-inline-size: 0;
}

body.nirab-admin-ui .header-icon,
body.nirab-admin-ui .toggle-menu-button {
    min-inline-size: 2.75rem;
    min-block-size: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--nirab-radius-sm);
    color: var(--nirab-text);
}

body.nirab-admin-ui #modalOpener {
    min-block-size: 2.75rem;
    color: var(--nirab-text);
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui .aside {
    inline-size: var(--nirab-sidebar);
    background: var(--nirab-surface);
    border-inline-end: 1px solid var(--nirab-border);
    box-shadow: var(--nirab-shadow);
    transition: inline-size .16s ease, transform .16s ease;
}

body.nirab-admin-ui .aside-header {
    block-size: var(--nirab-topbar);
    padding-inline: var(--nirab-space-4);
    border-block-end: 1px solid var(--nirab-border);
}

body.nirab-admin-ui .aside-header .logo {
    min-inline-size: 0;
    padding: .375rem .625rem;
    border-radius: var(--nirab-radius-sm);
    background: var(--nirab-surface);
}

body.nirab-admin-ui .nirab-brand-lockup {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-inline-size: 100%;
    min-inline-size: 0;
}

body.nirab-admin-ui .nirab-brand-logo {
    block-size: auto;
}

body.nirab-admin-ui .nirab-brand-logo--dark {
    display: block;
}

body.nirab-admin-ui .nirab-brand-logo--white {
    display: none !important;
}

body.nirab-admin-ui[data-bs-theme="dark"] .nirab-brand-logo--dark {
    display: none !important;
}

body.nirab-admin-ui[data-bs-theme="dark"] .nirab-brand-logo--white {
    display: block !important;
}

body.nirab-admin-ui .nirab-brand-mark {
    display: none;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    object-fit: contain;
}

body.nirab-admin-ui .aside-header .main-logo {
    max-inline-size: 10rem;
    max-block-size: 2.75rem;
    inline-size: auto;
    object-fit: contain;
}

body.nirab-admin-ui .aside-body {
    max-block-size: calc(100% - var(--nirab-topbar));
    padding: 0 var(--nirab-space-3) var(--nirab-space-6);
}

body.nirab-admin-ui .user-profile {
    padding: var(--nirab-space-3);
    border: 1px solid var(--nirab-border);
    border-radius: var(--nirab-radius);
    background: var(--nirab-canvas);
}

body.nirab-admin-ui .user-profile .media-body {
    min-inline-size: 0;
    overflow-wrap: anywhere;
}

body.nirab-admin-ui .aside-body .nav li {
    padding-block: .125rem;
}

body.nirab-admin-ui .aside-body .nav li.nav-category {
    padding: 1.25rem .75rem .5rem;
    color: var(--nirab-muted);
    font-size: .75rem;
    line-height: 1.6;
    text-transform: none;
    letter-spacing: 0;
}

body.nirab-admin-ui .aside-body .nav li > a {
    min-block-size: 2.75rem;
    align-items: center;
    gap: .625rem;
    padding: .625rem .75rem;
    border-inline-start: 3px solid transparent;
    border-radius: var(--nirab-radius-sm);
    color: var(--nirab-text);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

body.nirab-admin-ui .aside-body .nav li > a:hover {
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui .aside-body .nav li > a.active-menu {
    border-inline-start-color: var(--nirab-action);
    color: var(--nirab-action);
    font-weight: 700;
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui .aside-body .nav .link-title {
    min-inline-size: 0;
    gap: .5rem;
    text-transform: none;
}

body.nirab-admin-ui .aside-body .nav .count {
    flex-shrink: 0;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}

body.nirab-admin-ui :is(.count-btn .count, .aside-body .count) {
    color: #fff;
    background: #087f80;
}

body.nirab-admin-ui .aside-body .nav li.has-sub-item > a {
    padding-inline-end: 2rem;
}

body.nirab-admin-ui .aside-body .nav li.has-sub-item::after {
    inset-block-start: .9rem;
    inset-inline-end: .5rem;
    z-index: 0;
    pointer-events: none;
    color: var(--nirab-muted);
}

body.nirab-admin-ui .aside-body .nav ul.sub-menu {
    padding-block: .25rem;
    margin-inline-start: 1.25rem;
    border-inline-start: 1px solid var(--nirab-border);
}

body.nirab-admin-ui .aside-body .nav ul.sub-menu li {
    padding-inline-start: .375rem;
}

body.nirab-admin-ui .main-area {
    block-size: auto;
    min-block-size: 100vh;
    padding-block-start: calc(var(--nirab-topbar) + var(--nirab-content-gap));
    padding-inline: calc(var(--nirab-sidebar) + var(--nirab-content-gap)) var(--nirab-content-gap);
}

body.nirab-admin-ui :is(.main-content, .main-content > .container-fluid) {
    min-inline-size: 0;
}

body.nirab-admin-ui :is(.page-title-wrap, .nirab-page-header) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--nirab-space-3);
    padding-block-end: var(--nirab-space-4);
    border-block-end: 1px solid var(--nirab-border);
}

body.nirab-admin-ui .page-title {
    font-size: clamp(1.125rem, 1.6vw, 1.5rem);
    line-height: 1.5;
    color: var(--nirab-text);
    overflow-wrap: anywhere;
}

body.nirab-admin-ui .footer {
    padding-block: var(--nirab-space-6);
    margin-block-start: var(--nirab-space-8);
    border-block-start: 1px solid var(--nirab-border);
    color: var(--nirab-muted);
    font-size: .8125rem;
}

body.nirab-admin-ui .footer .list-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .625rem;
}

body.nirab-admin-ui.aside-folded .header {
    padding-inline-start: calc(var(--nirab-sidebar-folded) + var(--nirab-content-gap));
}

body.nirab-admin-ui.aside-folded .main-area {
    padding-inline-start: calc(var(--nirab-sidebar-folded) + var(--nirab-content-gap));
}

body.nirab-admin-ui.aside-folded .aside {
    inline-size: var(--nirab-sidebar-folded);
}

body.nirab-admin-ui.aside-folded.open-aside-folded .aside {
    inline-size: var(--nirab-sidebar);
}

body.nirab-admin-ui.aside-folded:not(.open-aside-folded) .aside-header .main-logo {
    display: none !important;
}

body.nirab-admin-ui.aside-folded:not(.open-aside-folded) .aside-header .nirab-brand-mark {
    display: block;
}

body.nirab-admin-ui.aside-folded:not(.open-aside-folded) .aside-body {
    padding-inline: .375rem;
}

body.nirab-admin-ui.aside-folded:not(.open-aside-folded) .aside-body .nav li > a {
    justify-content: center;
    padding-inline: .5rem;
}

body.nirab-admin-ui.aside-folded:not(.open-aside-folded) .aside-body .link-title {
    display: none;
}

body.nirab-admin-ui.aside-folded:not(.open-aside-folded) .aside-body .material-icons {
    margin-inline-end: 0;
}

/* Existing components receive the same tokens without changing their hooks. */
body.nirab-admin-ui .btn {
    min-block-size: 2.75rem;
    padding: .625rem 1.125rem;
    border-radius: var(--nirab-radius-sm);
    font-weight: 600;
    line-height: 1.5;
    white-space: normal;
    transition: background-color .15s ease, box-shadow .15s ease;
}

body.nirab-admin-ui :is(.btn--primary, .btn-primary) {
    --bs-btn-bg: #087f80;
    --bs-btn-border-color: #087f80;
    --bs-btn-hover-bg: #044b4a;
    --bs-btn-hover-border-color: #044b4a;
    --bs-btn-active-bg: #044b4a;
    --bs-btn-active-border-color: #044b4a;
    --bs-btn-disabled-bg: #087f80;
    --bs-btn-disabled-border-color: #087f80;
    color: #fff;
    background-color: #087f80;
    border-color: #087f80;
}

body.nirab-admin-ui :is(.btn--primary, .btn-primary):hover {
    color: #fff;
    background-color: #044b4a;
    border-color: #044b4a;
}

body.nirab-admin-ui :is(.btn-outline--primary, .btn-outline-primary) {
    color: var(--nirab-action);
    border-color: var(--nirab-action) !important;
    background: transparent;
}

body.nirab-admin-ui :is(.btn--secondary, .btn-secondary, .btn--light) {
    color: var(--nirab-text);
    border-color: var(--nirab-border);
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui :is(.btn--secondary, .btn-secondary, .btn--light):hover {
    color: var(--nirab-text) !important;
    background: var(--nirab-border);
}

body.nirab-admin-ui :is(.btn:disabled, .btn.disabled, a[disabled]) {
    opacity: .6;
    box-shadow: none;
}

body.nirab-admin-ui :is(.table-actions, .action-btn) {
    gap: .5rem;
}

body.nirab-admin-ui :is(.table-actions a, .table-actions button, .action-btn) {
    min-inline-size: 2.5rem;
    min-block-size: 2.5rem;
    border-radius: var(--nirab-radius-sm);
}

body.nirab-admin-ui :is(.card, .nirab-card) {
    border: 1px solid var(--nirab-border);
    border-radius: var(--nirab-radius);
    color: var(--nirab-text);
    background: var(--nirab-surface);
    box-shadow: var(--nirab-shadow);
}

body.nirab-admin-ui :is(.card-header, .card-footer) {
    padding: var(--nirab-space-4) var(--nirab-space-6);
    border-color: var(--nirab-border);
    background: transparent;
}

body.nirab-admin-ui .card-body {
    padding: var(--nirab-space-6);
}

body.nirab-admin-ui .ff-field {
    --ff-border: var(--nirab-border);
    --ff-border-hover: var(--nirab-action);
    --ff-radius: var(--nirab-radius-sm);
    --ff-height: 2.875rem;
    --ff-font: .9375rem;
    --ff-label-font: .875rem;
}

body.nirab-admin-ui :is(.form-control, .form-select, .select2-selection) {
    min-block-size: 2.875rem;
    border-color: var(--nirab-border);
    border-radius: var(--nirab-radius-sm);
    color: var(--nirab-text);
    background-color: var(--nirab-surface);
    text-align: start;
}

body.nirab-admin-ui :is(.form-control, .form-select):focus {
    border-color: var(--nirab-action);
    box-shadow: 0 0 0 .2rem rgba(8, 127, 128, .15);
}

body.nirab-admin-ui :is(.form-control:disabled, .form-control[readonly], .form-select:disabled) {
    background-color: var(--nirab-surface-soft);
    color: var(--nirab-muted);
}

body.nirab-admin-ui :is(.form-control.is-invalid, .form-select.is-invalid) {
    border-color: var(--nirab-danger);
}

body.nirab-admin-ui input:is([type="email"], [type="tel"], [type="url"]),
body.nirab-admin-ui .nirab-reference {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: start;
}

body.nirab-admin-ui :is(.invalid-feedback, .ff-field__error) {
    color: var(--nirab-danger);
}

body.nirab-admin-ui .form-check-input:checked {
    border-color: #087f80;
    background-color: #087f80;
}

body.nirab-admin-ui .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 2.75rem;
    color: var(--nirab-text);
    padding-inline: .75rem 2rem;
}

body.nirab-admin-ui .select2-dropdown {
    border-color: var(--nirab-border);
    color: var(--nirab-text);
    background: var(--nirab-surface);
}

body.nirab-admin-ui .table-responsive {
    border-radius: var(--nirab-radius-sm);
    overscroll-behavior-inline: contain;
}

body.nirab-admin-ui .table {
    --bs-table-bg: var(--nirab-surface);
    --bs-table-color: var(--nirab-text);
    --bs-table-striped-bg: var(--nirab-canvas);
    --bs-table-striped-color: var(--nirab-text);
    --bs-table-hover-bg: var(--nirab-surface-soft);
    --bs-table-hover-color: var(--nirab-text);
    border-color: var(--nirab-border);
    font-size: .875rem;
    line-height: 1.6;
    text-align: start;
}

body.nirab-admin-ui .table > thead > tr > th {
    padding-block: .875rem;
    color: var(--nirab-muted);
    background: var(--nirab-surface-soft);
    font-weight: 600;
    vertical-align: middle;
}

body.nirab-admin-ui .table > tbody > tr > td {
    padding-block: .875rem;
    vertical-align: middle;
}

body.nirab-admin-ui :is(.nav-tabs, .nav--tabs, .nav--tabs__style2, .nav--tabs__style3) {
    gap: .375rem;
    border-color: var(--nirab-border);
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-block-end: .25rem;
}

body.nirab-admin-ui :is(.nav-tabs, .nav--tabs, .nav--tabs__style2, .nav--tabs__style3) .nav-link {
    min-block-size: 2.75rem;
    padding: .625rem 1rem;
    border-radius: var(--nirab-radius-sm) var(--nirab-radius-sm) 0 0;
    white-space: nowrap;
    color: var(--nirab-muted);
}

body.nirab-admin-ui :is(.nav-tabs, .nav--tabs, .nav--tabs__style2, .nav--tabs__style3) .nav-link.active {
    border-block-end: 3px solid var(--nirab-action);
    font-weight: 700;
    color: var(--nirab-action);
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui .badge {
    padding: .375rem .625rem;
    border-radius: 999px;
    font-weight: 600;
    line-height: 1.5;
    white-space: normal;
}

body.nirab-admin-ui :is(.badge-success, .badge--success, .alert-success) {
    color: var(--nirab-success);
    background-color: var(--nirab-success-bg);
}

body.nirab-admin-ui :is(.badge-warning, .badge--warning, .alert-warning) {
    color: var(--nirab-warning);
    background-color: var(--nirab-warning-bg);
}

body.nirab-admin-ui :is(.badge-danger, .badge--danger, .alert-danger) {
    color: var(--nirab-danger);
    background-color: var(--nirab-danger-bg);
}

body.nirab-admin-ui :is(.badge-info, .badge--info, .alert-info) {
    color: var(--nirab-info);
    background-color: var(--nirab-info-bg);
}

body.nirab-admin-ui .badge-primary {
    color: var(--nirab-action);
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui .badge-secondary {
    color: var(--nirab-muted);
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui .badge .dot {
    background-color: currentColor;
}

body.nirab-admin-ui .alert {
    padding: var(--nirab-space-4) var(--nirab-space-6);
    border-radius: var(--nirab-radius);
    border-inline-start-width: 4px;
    line-height: 1.65;
}

body.nirab-admin-ui #toast-container > .toast {
    border-radius: var(--nirab-radius);
    box-shadow: var(--nirab-shadow-raised);
    font-family: var(--nirab-font);
    line-height: 1.65;
    opacity: 1;
    color: #fff;
}

body.nirab-admin-ui #toast-container > .toast-success {
    background-color: #176747;
}

body.nirab-admin-ui #toast-container > .toast-error {
    background-color: #b42335;
}

body.nirab-admin-ui #toast-container > .toast-warning {
    background-color: #855400;
}

body.nirab-admin-ui #toast-container > .toast-info {
    background-color: #245d86;
}

body.nirab-admin-ui :is(.modal-content, .swal2-popup, .dropdown-menu, .popover) {
    border: 1px solid var(--nirab-border);
    border-radius: var(--nirab-radius);
    color: var(--nirab-text);
    background: var(--nirab-surface);
    box-shadow: var(--nirab-shadow-raised);
}

body.nirab-admin-ui :is(.modal-header, .modal-footer) {
    padding: var(--nirab-space-4) var(--nirab-space-6);
    border-color: var(--nirab-border);
}

body.nirab-admin-ui .dropdown-item {
    min-block-size: 2.75rem;
    color: var(--nirab-text);
    white-space: normal;
}

body.nirab-admin-ui .dropdown-item:hover {
    color: var(--nirab-action);
    background: var(--nirab-surface-soft);
}

body.nirab-admin-ui :is(.page-link, .swal2-title, .swal2-content) {
    color: var(--nirab-text);
}

body.nirab-admin-ui .page-link {
    min-inline-size: 2.5rem;
    min-block-size: 2.5rem;
    border-color: var(--nirab-border);
    background: var(--nirab-surface);
}

body.nirab-admin-ui .page-item.active .page-link {
    border-color: #087f80;
    background: #087f80;
    color: #fff;
}

body.nirab-admin-ui .nirab-ui-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--nirab-space-3);
    padding: var(--nirab-space-8) var(--nirab-space-4);
    text-align: center;
    color: var(--nirab-muted);
    overflow-wrap: anywhere;
}

body.nirab-admin-ui .nirab-ui-state > :is(img, .material-symbols-outlined) {
    max-inline-size: 7rem;
    font-size: 2rem;
}

body.nirab-admin-ui .nirab-ui-state--error {
    color: var(--nirab-danger);
}

body.nirab-admin-ui .loader-spinner {
    border-color: var(--nirab-border);
    border-block-start-color: var(--nirab-action);
}

body.nirab-admin-ui .search-loader-overlay {
    background: var(--nirab-surface-soft);
    opacity: .9;
}

body.nirab-admin-ui .search-result {
    position: relative;
}

body.nirab-admin-ui .search-result > .text-center {
    padding: var(--nirab-space-8) var(--nirab-space-4);
    color: var(--nirab-muted);
    line-height: 1.65;
}

/* Auth uses the approved theme variants in both screen sizes. */
body.nirab-admin-ui.nirab-admin-auth .login-wrap {
    grid-template-columns: minmax(0, 1fr) minmax(24rem, 40rem);
    min-block-size: 100vh;
    min-block-size: 100dvh;
}

body.nirab-admin-ui.nirab-admin-auth .login-left {
    padding: clamp(1.5rem, 4vw, 4rem);
    background-color: var(--nirab-brand);
}

body.nirab-admin-ui.nirab-admin-auth .tf-box {
    inline-size: 100%;
    block-size: auto !important;
    padding: clamp(1.5rem, 3vw, 3rem) !important;
    margin-inline: 0 !important;
    border: 1px solid var(--nirab-accent-soft);
    border-radius: var(--nirab-radius-lg);
    background: var(--nirab-surface);
    box-shadow: var(--nirab-shadow-raised);
}

body.nirab-admin-ui.nirab-admin-auth .tf-box h2 {
    font-size: clamp(1.5rem, 2.5vw, 2.25rem);
    line-height: 1.7;
}

body.nirab-admin-ui.nirab-admin-auth .login-right-wrap {
    padding: clamp(1rem, 3vw, 3rem);
    background: var(--nirab-surface) !important;
}

body.nirab-admin-ui.nirab-admin-auth .login-right {
    max-inline-size: 30rem;
    padding: var(--nirab-space-4) !important;
}

body.nirab-admin-ui.nirab-admin-auth .login-logo,
body.nirab-admin-ui .nirab-login-brand img {
    max-inline-size: min(100%, 15rem);
    max-block-size: 7rem;
    object-fit: contain;
    padding: .5rem;
    border-radius: var(--nirab-radius-sm);
    background: transparent;
}

body.nirab-admin-ui .nirab-login-brand {
    display: none;
    margin-block-end: var(--nirab-space-6);
}

@media (min-width: 1200px) {
    body.nirab-admin-ui .offcanvas-overlay.aside-active {
        display: none;
    }
}

@media (max-width: 1199px) {
    body.nirab-admin-ui .header,
    body.nirab-admin-ui .main-area {
        padding-inline: var(--nirab-content-gap);
    }

    body.nirab-admin-ui .aside {
        max-inline-size: calc(100vw - 3rem);
        transform: translateX(-100%);
    }

    [dir="rtl"] body.nirab-admin-ui .aside {
        transform: translateX(100%);
    }

    body.nirab-admin-ui .header .nav {
        gap: .5rem !important;
    }
}

@media (max-width: 991px) {
    body.nirab-admin-ui.nirab-admin-auth .login-wrap {
        grid-template-columns: minmax(0, 1fr);
    }

    body.nirab-admin-ui.nirab-admin-auth .login-left {
        display: none !important;
    }

    body.nirab-admin-ui .nirab-login-brand {
        display: block;
    }
}

@media (max-width: 575px) {
    body.nirab-admin-ui .header .row {
        flex-wrap: nowrap;
    }

    body.nirab-admin-ui .header .col-2 {
        inline-size: 3rem;
        padding-inline: 0;
    }

    body.nirab-admin-ui .header .col-10 {
        inline-size: auto;
        flex: 1;
        padding-inline: 0;
    }

    body.nirab-admin-ui .header .nav {
        gap: .125rem !important;
    }

    body.nirab-admin-ui .header .messages {
        padding-inline-end: 0;
    }

    body.nirab-admin-ui .header .dropdown-menu {
        max-inline-size: calc(100vw - 1.5rem);
    }

    body.nirab-admin-ui .card-body {
        padding: var(--nirab-space-4);
    }

    body.nirab-admin-ui .modal-dialog {
        margin-inline: .75rem;
    }

    body.nirab-admin-ui .modal-content__search {
        padding: var(--nirab-space-3);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.nirab-admin-ui *,
    body.nirab-admin-ui *::before,
    body.nirab-admin-ui *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

@media print {
    body.nirab-admin-ui :is(.header, .aside, .footer, .offcanvas-overlay, .setup-guide, .nirab-skip-link) {
        display: none !important;
    }

    body.nirab-admin-ui .main-area {
        padding: 0 !important;
        min-block-size: 0;
    }
}

/* Phase 2: existing operational screens, using the Phase 1 tokens. */
body.nirab-admin-ui .nirab-operational-page { min-inline-size: 0; }
body.nirab-admin-ui .nirab-operational-page h1 { font-size: clamp(1.35rem, 2vw, 1.9rem); }
body.nirab-admin-ui .nirab-section-heading { display: grid; gap: var(--nirab-space-2); margin-block-end: var(--nirab-space-6); }
body.nirab-admin-ui .nirab-section-heading h2 { margin: 0; font-size: 1.25rem; }
body.nirab-admin-ui .nirab-context-label { border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); padding: .5rem .75rem; color: var(--nirab-muted); }
body.nirab-admin-ui .nirab-section-nav { display: flex; flex-wrap: wrap; gap: var(--nirab-space-2); margin-block-end: var(--nirab-space-6); }
body.nirab-admin-ui .nirab-section-nav a { padding: .65rem 1rem; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); background: var(--nirab-surface); color: var(--nirab-text); }
body.nirab-admin-ui .nirab-section-nav a:hover,
body.nirab-admin-ui .nirab-section-nav a:focus-visible { background: var(--nirab-surface-soft); color: var(--nirab-action); }
body.nirab-admin-ui .nirab-operation-section { scroll-margin-block-start: calc(var(--nirab-topbar) + 1rem); }
body.nirab-admin-ui .nirab-filter-grid,
body.nirab-admin-ui .nirab-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: var(--nirab-space-4); }
body.nirab-admin-ui .nirab-filter-grid { padding: var(--nirab-space-4); margin-block-end: var(--nirab-space-6); border: 1px solid var(--nirab-border); background: var(--nirab-surface-soft); border-radius: var(--nirab-radius); }
body.nirab-admin-ui .nirab-filter-grid > label,
body.nirab-admin-ui .nirab-field-grid > label { min-inline-size: 0; display: grid; gap: .5rem; align-content: start; }
body.nirab-admin-ui .nirab-filter-grid > button { justify-self: start; align-self: end; }
body.nirab-admin-ui .nirab-filter-grid .form-control,
body.nirab-admin-ui .nirab-field-grid .form-control { inline-size: 100%; }
body.nirab-admin-ui .nirab-editor-form { display: grid; gap: var(--nirab-space-4); }
body.nirab-admin-ui .nirab-form-panel { min-inline-size: 0; padding: var(--nirab-space-4); border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius); background: var(--nirab-surface); }
body.nirab-admin-ui fieldset.nirab-form-panel > legend { float: none; inline-size: auto; margin: 0 0 1rem; padding: 0 .4rem; font-size: 1.05rem; font-weight: 600; }
body.nirab-admin-ui .nirab-form-panel > h3,
body.nirab-admin-ui .nirab-form-panel > h4 { margin-block-end: 1rem; font-size: 1.1rem; }
body.nirab-admin-ui .nirab-field-hint { display: block; color: var(--nirab-muted); font-size: .82rem; font-weight: 400; line-height: 1.7; }
body.nirab-admin-ui .nirab-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nirab-space-3); }
body.nirab-admin-ui .nirab-permission-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--nirab-space-3); }
body.nirab-admin-ui .nirab-permission-grid.row { margin: 0; }
body.nirab-admin-ui .nirab-permission-grid > label { inline-size: auto; margin: 0 !important; padding: .8rem; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); line-height: 1.7; overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-permission-grid input,
body.nirab-admin-ui .nirab-check-grid input { margin-inline-end: .4rem; }
body.nirab-admin-ui .nirab-check-grid { display: flex; flex-wrap: wrap; gap: .75rem; }
body.nirab-admin-ui .nirab-check-grid > legend { float: none; font-size: 1rem; }
body.nirab-admin-ui .nirab-context-select { max-inline-size: 32rem; }
body.nirab-admin-ui .nirab-data-table { border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); margin-block-end: var(--nirab-space-4); }
body.nirab-admin-ui .nirab-data-table:empty { border: 0; margin: 0; }
body.nirab-admin-ui .nirab-data-table .table { margin-block-end: 0; }
body.nirab-admin-ui .nirab-operational-table { font-family: var(--nirab-font); font-size: .9rem; }
body.nirab-admin-ui .nirab-operational-table th,
body.nirab-admin-ui .nirab-operational-table thead td { white-space: nowrap; font-weight: 600; }
body.nirab-admin-ui .nirab-operational-table td { min-inline-size: 6rem; max-inline-size: 26rem; overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-operational-table td:last-child { min-inline-size: 9rem; }
body.nirab-admin-ui .nirab-operational-table .btn { margin-block: .2rem; }
body.nirab-admin-ui .nirab-table-empty { text-align: center; padding-block: 2rem !important; color: var(--nirab-muted); }
body.nirab-admin-ui .nirab-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--nirab-space-3); }
body.nirab-admin-ui .nirab-metric { padding: var(--nirab-space-4); border: 1px solid var(--nirab-border); border-inline-start: 4px solid var(--nirab-accent); border-radius: var(--nirab-radius-sm); background: var(--nirab-surface-soft); overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-report-groups > h3 { font-size: 1.1rem; margin-block: 1.5rem .75rem; }
body.nirab-admin-ui .nirab-report-groups > button { margin-inline-end: .5rem; }
body.nirab-admin-ui .nirab-demand-map { inline-size: 100%; max-inline-size: 960px; background: var(--nirab-surface-soft); color: var(--nirab-muted); font-family: var(--nirab-font); border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui dialog.nirab-dialog { inline-size: min(650px, calc(100vw - 2rem)); max-block-size: 90dvh; padding: var(--nirab-space-6); overflow: auto; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-lg); background: var(--nirab-surface); color: var(--nirab-text); box-shadow: var(--nirab-shadow); font-family: var(--nirab-font); }
body.nirab-admin-ui dialog.nirab-dialog--wide { inline-size: min(900px, calc(100vw - 2rem)); }
body.nirab-admin-ui dialog.nirab-dialog::backdrop { background: rgb(4 75 74 / 45%); }
body.nirab-admin-ui .nirab-dialog-content { display: grid; gap: var(--nirab-space-4); }
body.nirab-admin-ui .nirab-dialog-content > p { padding: 1rem; background: var(--nirab-surface-soft); border-radius: var(--nirab-radius-sm); white-space: pre-wrap; overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-note-list { border-inline-start: 2px solid var(--nirab-accent); padding-inline-start: 1rem; }
body.nirab-admin-ui .nirab-note-list p { border-block-end: 1px solid var(--nirab-border); padding-block-end: .75rem; white-space: pre-wrap; overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-note-list .btn { margin-inline-end: .5rem; }
body.nirab-admin-ui .nirab-technician-grid:not([hidden]) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nirab-space-4); }
body.nirab-admin-ui .nirab-technician-status,
body.nirab-admin-ui .nirab-technician-leaves { grid-column: 1 / -1; }
body.nirab-admin-ui .nirab-repeat-row { margin: 0 0 1rem; padding: .75rem; gap: .5rem 0; align-items: end; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); background: var(--nirab-surface-soft); }
body.nirab-admin-ui .nirab-repeat-row > .btn { align-self: end; }
body.nirab-admin-ui .nirab-member-option { border: 1px solid var(--nirab-border); padding: .75rem; border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui .nirab-member-option[hidden] { display: none !important; }
body.nirab-admin-ui #team-members { max-block-size: 22rem; overflow: auto; }
body.nirab-admin-ui #area-map { border-radius: var(--nirab-radius); }
body.nirab-admin-ui .nirab-booking-toolbar { display: grid !important; grid-template-columns: minmax(16rem, 1fr) auto; align-items: end; margin-block-end: var(--nirab-space-6); padding-block-end: var(--nirab-space-4); border-block-end: 1px solid var(--nirab-border); }
body.nirab-admin-ui .nirab-toolbar-field { display: grid; gap: .4rem; font-size: .85rem; }
body.nirab-admin-ui .nirab-booking-filters .filter-aside__body > div { padding: 1rem; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius); background: var(--nirab-surface); margin-block-end: 1rem; }
body.nirab-admin-ui .nirab-booking-filters .mb-30 { margin-block-end: .75rem !important; }
body.nirab-admin-ui .nirab-booking-filters .filter-aside__bottom_btns { border-block-start: 1px solid var(--nirab-border); background: var(--nirab-surface); }
body.nirab-admin-ui .nirab-payment-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start !important; margin-block-end: 1rem !important; }
body.nirab-admin-ui .nirab-payment-grid > div { min-inline-size: 0; padding: 1rem; background: var(--nirab-surface-soft); border-radius: var(--nirab-radius-sm); text-align: start !important; }
body.nirab-admin-ui .nirab-booking-execution { margin-block: 1rem; }
body.nirab-admin-ui .nirab-booking-execution h5 { display: block !important; }
body.nirab-admin-ui .nirab-booking-actions { padding-block-end: 1.5rem; border-block-end: 1px solid var(--nirab-border); }
body.nirab-admin-ui .nirab-booking-actions h3 { margin-block-end: .5rem; }
body.nirab-admin-ui .nirab-booking-people { margin-block-start: 1.5rem; }
body.nirab-admin-ui .nirab-booking-people > h3 { font-size: 1.15rem; margin-block-end: 1rem; }
body.nirab-admin-ui .nirab-booking-history { padding-inline: .5rem !important; }
body.nirab-admin-ui .nirab-booking-history .timeline-number { background: var(--nirab-surface-soft); border-color: var(--nirab-accent); }
body.nirab-admin-ui .nirab-booking-history .timeline-title { color: var(--nirab-text); }
body.nirab-admin-ui .nirab-booking-history .timeline-text { overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-dashboard .business-summary { min-block-size: 9rem; padding: 1.5rem; border: 1px solid var(--nirab-border); border-inline-start: 4px solid var(--nirab-accent); border-radius: var(--nirab-radius); background: var(--nirab-surface) !important; color: var(--nirab-text); box-shadow: var(--nirab-shadow); }
body.nirab-admin-ui .nirab-dashboard .business-summary h2 { position: relative; z-index: 1; color: var(--nirab-text); overflow-wrap: anywhere; font-size: clamp(1.3rem, 2vw, 1.85rem); }
body.nirab-admin-ui .nirab-dashboard .business-summary h3 { color: var(--nirab-muted); font-size: .95rem; }
body.nirab-admin-ui .nirab-dashboard .business-summary .absolute-img { opacity: .15; }
body.nirab-admin-ui .nirab-dashboard .dashboard-sync-card { inline-size: 100%; }
body.nirab-admin-ui .nirab-dashboard .common-list > li { padding-block: .75rem; border-block-end: 1px solid var(--nirab-border); }
@media (min-width: 1200px) {
    body.nirab-admin-ui .nirab-dashboard-sections { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--nirab-space-6); margin: 0; }
    body.nirab-admin-ui .nirab-dashboard-sections > div { inline-size: auto; padding: 0; }
    body.nirab-admin-ui .nirab-dashboard-sections > .dashboard-sync-col:first-child { grid-column: span 9; }
    body.nirab-admin-ui .nirab-dashboard-sections > .dashboard-sync-col:nth-child(2) { grid-column: span 3; }
    body.nirab-admin-ui .nirab-dashboard-bookings { grid-column: 1 / span 5; grid-row: 2; }
    body.nirab-admin-ui .nirab-dashboard-providers { grid-column: 6 / span 4; grid-row: 2; }
    body.nirab-admin-ui .nirab-dashboard-zones { grid-column: 10 / span 3; grid-row: 2; }
}
@media (max-width: 1199.98px) {
    body.nirab-admin-ui .nirab-booking-toolbar { grid-template-columns: minmax(0, 1fr); }
    body.nirab-admin-ui .nirab-booking-main,
    body.nirab-admin-ui .nirab-booking-sidebar { inline-size: 100%; }
    body.nirab-admin-ui .nirab-booking-people > .py-3 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}
@media (max-width: 767.98px) {
    body.nirab-admin-ui .nirab-filter-grid,
    body.nirab-admin-ui .nirab-field-grid,
    body.nirab-admin-ui .nirab-permission-grid,
    body.nirab-admin-ui .nirab-payment-grid,
    body.nirab-admin-ui .nirab-technician-grid:not([hidden]),
    body.nirab-admin-ui .nirab-booking-people > .py-3 { grid-template-columns: minmax(0, 1fr); }
    body.nirab-admin-ui .nirab-filter-grid > button { inline-size: 100%; }
    body.nirab-admin-ui .nirab-section-nav a { flex: 1 1 auto; text-align: center; }
    body.nirab-admin-ui dialog.nirab-dialog { padding: var(--nirab-space-4); }
    body.nirab-admin-ui .nirab-booking-toolbar .search-form { flex-wrap: wrap; inline-size: 100%; max-inline-size: none; }
    body.nirab-admin-ui .nirab-booking-toolbar .search-form .input-group { inline-size: 100%; }
}

body.nirab-admin-ui .nirab-profile-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--nirab-space-6); }
body.nirab-admin-ui .nirab-profile-form > .card { margin-block-end: 0 !important; scroll-margin-block-start: calc(var(--nirab-topbar) + 1rem); }
body.nirab-admin-ui .nirab-profile-form > .nirab-profile-account,
body.nirab-admin-ui .nirab-profile-form > .d-flex { grid-column: 1 / -1; }
body.nirab-admin-ui .nirab-cash-form { padding: 1rem; margin-inline: 0; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius); background: var(--nirab-surface-soft); }
body.nirab-admin-ui .nirab-cash-table { border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui .nirab-cash-table .table { margin-block-end: 0; }
body.nirab-admin-ui .nirab-cash-table td:last-child { min-inline-size: 15rem; }
body.nirab-admin-ui .nirab-cash-operations details { border-radius: var(--nirab-radius-sm); overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-cash-operations pre { max-block-size: 24rem; overflow: auto; padding: 1rem; background: var(--nirab-surface-soft); }
body.nirab-admin-ui .nirab-assignment-modal > .d-flex { padding: 1rem; background: var(--nirab-surface-soft); border-radius: var(--nirab-radius); margin-block-end: 1.5rem; }
body.nirab-admin-ui .nirab-assignment-modal .search-form { max-inline-size: none; }
body.nirab-admin-ui .nirab-assignment-grid { row-gap: 1rem; }
@media (min-width: 1200px) {
    body.nirab-admin-ui .nirab-profile-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.nirab-admin-ui .nirab-profile-general .col-lg-8,
    body.nirab-admin-ui .nirab-profile-general .col-lg-4,
    body.nirab-admin-ui .nirab-profile-identity .col-lg-6 { inline-size: 100%; }
}

body.nirab-admin-ui .nirab-metric > span { display: block; font-size: .85rem; color: var(--nirab-muted); margin-block-end: .5rem; }
body.nirab-admin-ui .nirab-metric > strong { display: block; font-size: 1.35rem; font-weight: 700; }
body.nirab-admin-ui #quality-message:not(:empty) { padding: 1rem; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius); background: var(--nirab-surface-soft); }

body.nirab-admin-ui .nirab-address-dialog { max-inline-size: min(70rem, calc(100vw - 2rem)); }
body.nirab-admin-ui .nirab-address-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nirab-space-4); margin-inline: 0; inline-size: 100%; }
body.nirab-admin-ui .nirab-address-grid > .col-md-6 { inline-size: 100%; }
body.nirab-admin-ui .nirab-location-options { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nirab-space-4); }
body.nirab-admin-ui .nirab-location-options > div { padding: 1rem; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); background: var(--nirab-surface); }
body.nirab-admin-ui .nirab-location-options label { line-height: 1.7; }
@media (max-width: 767.98px) {
    body.nirab-admin-ui .nirab-address-grid,
    body.nirab-admin-ui .nirab-location-options { grid-template-columns: minmax(0, 1fr); }
}

/* Phase 03: page content adopts these components; no request/state ownership. */
body.nirab-admin-ui .nirab-rollout-page { min-inline-size: 0; }
body.nirab-admin-ui .nirab-section-card { margin-block-end: var(--nirab-space-6); }
body.nirab-admin-ui .nirab-section-body { padding: clamp(1rem, 2vw, 1.75rem); }
body.nirab-admin-ui .nirab-section-head { padding: 1rem 1.5rem; border-block-end: 1px solid var(--nirab-border); }
body.nirab-admin-ui .nirab-section-title { font-size: 1.1rem; margin-block-end: 1rem; }
body.nirab-admin-ui .nirab-list-toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; padding-block-end: 1rem; border-block-end: 1px solid var(--nirab-border); margin-block-end: 1rem; }
body.nirab-admin-ui .nirab-list-toolbar > * { min-inline-size: 0; }
body.nirab-admin-ui .nirab-list-toolbar .search-form { flex: 1 1 18rem; max-inline-size: 30rem; inline-size: 100%; }
body.nirab-admin-ui .nirab-list-toolbar .search-form__input_group { min-inline-size: 0; flex: 1; }
body.nirab-admin-ui .nirab-list-toolbar .search-form__input { inline-size: 100%; min-inline-size: 0; }
body.nirab-admin-ui .nirab-report-filters { padding: 1rem; background: var(--nirab-surface-soft); border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius); margin-block-end: 1.5rem; }
body.nirab-admin-ui .nirab-report-filters > .row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem; margin: 0; align-items: end; }
body.nirab-admin-ui .nirab-report-filters > .row > [class*="col-"] { inline-size: 100%; padding: 0; margin: 0; }
body.nirab-admin-ui .nirab-form-actions { gap: .75rem; padding-block-start: 1rem; border-block-start: 1px solid var(--nirab-border); }
body.nirab-admin-ui .nirab-managed-form label { line-height: 1.65; }
body.nirab-admin-ui .nirab-managed-form .row { row-gap: 1rem; }
body.nirab-admin-ui .nirab-table-region { max-inline-size: 100%; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-sm); overscroll-behavior-inline: contain; }
body.nirab-admin-ui .nirab-managed-table { margin-block-end: 0; vertical-align: middle; font-variant-numeric: tabular-nums; }
body.nirab-admin-ui .nirab-managed-table th { line-height: 1.5; }
body.nirab-admin-ui .nirab-managed-table td { max-inline-size: 34rem; overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-managed-table .table-actions { flex-wrap: wrap; gap: .5rem; }
body.nirab-admin-ui .nirab-managed-table .form-control { min-inline-size: 8rem; }
body.nirab-admin-ui .nirab-summary-card { padding: 1.25rem; min-block-size: 8rem; border: 1px solid var(--nirab-border); border-inline-start: 4px solid var(--nirab-accent); border-radius: var(--nirab-radius); background: var(--nirab-surface); }
body.nirab-admin-ui .nirab-summary-card h2 { font-size: clamp(1.3rem, 2vw, 1.8rem); overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-summary-card h3 { font-size: .9rem; line-height: 1.6; }
body.nirab-admin-ui .nirab-page-tabs { gap: .5rem; }
body.nirab-admin-ui .nirab-access-group { box-shadow: none; }
body.nirab-admin-ui .nirab-access-group .checkbox_card__head { background: var(--nirab-surface-soft); }
body.nirab-admin-ui .nirab-access-group .grid-columns,
body.nirab-admin-ui .nirab-access-matrix .grid-columns { gap: 1rem; }
body.nirab-admin-ui .nirab-access-group .table th:first-child,
body.nirab-admin-ui .nirab-access-group .table td:first-child { position: sticky; inset-inline-start: 0; background: var(--nirab-surface); z-index: 1; min-inline-size: 11rem; }
body.nirab-admin-ui .nirab-upload-panel { border-color: var(--nirab-border); background: var(--nirab-surface-soft); border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui .additional-info-row { gap: 1rem; border-color: var(--nirab-border); }
body.nirab-admin-ui .additional-info-value { overflow-wrap: anywhere; }
body.nirab-admin-ui .additional-upload-dropzone { background: var(--nirab-surface-soft); border-color: var(--nirab-border); }
body.nirab-admin-ui .nirab-finance-page { padding: var(--nirab-content-gap) !important; }
body.nirab-admin-ui .nirab-finance-section { margin-block: 1.5rem; padding: clamp(1rem, 2vw, 1.5rem); border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius); background: var(--nirab-surface); }
body.nirab-admin-ui .nirab-finance-section > h3 { font-size: 1.15rem; margin-block: 0 1rem !important; }
body.nirab-admin-ui .nirab-finance-section > form { padding: 1rem; margin-inline: 0; border-radius: var(--nirab-radius-sm); background: var(--nirab-surface-soft); }
body.nirab-admin-ui .nirab-finance-section > form > label { display: block; margin-block: .5rem; }
body.nirab-admin-ui .nirab-finance-section details { border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui .nirab-finance-section pre { max-block-size: 24rem; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }

/* Existing editor/AI/upload plugins retain their handlers and icon fonts. */
body.nirab-admin-ui .tox-tinymce,
body.nirab-admin-ui .tox .tox-toolbar,
body.nirab-admin-ui .tox .tox-toolbar__primary,
body.nirab-admin-ui .tox .tox-editor-header,
body.nirab-admin-ui .tox .tox-statusbar,
body.nirab-admin-ui .ql-toolbar,
body.nirab-admin-ui .quill-editor,
body.nirab-admin-ui .note-editor { background: var(--nirab-surface) !important; border-color: var(--nirab-border); color: var(--nirab-text); border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui .tox .tox-tbtn,
body.nirab-admin-ui .tox .tox-mbtn,
body.nirab-admin-ui .tox .tox-statusbar__path-item,
body.nirab-admin-ui .tox .tox-statusbar__wordcount { font-family: var(--nirab-font); color: var(--nirab-text); }
body.nirab-admin-ui .tox .tox-tbtn svg { fill: var(--nirab-text); }
body.nirab-admin-ui .tox .tox-tbtn:hover,
body.nirab-admin-ui .tox .tox-tbtn--enabled { background: var(--nirab-surface-soft); }
body.nirab-admin-ui .modal-dialog-slideInRight { max-inline-size: min(36rem, 100vw); block-size: 100dvh; }
body.nirab-admin-ui .modal-dialog-slideInRight .modal-content { block-size: 100dvh; max-block-size: 100dvh; border-inline-start: 1px solid var(--nirab-border); border-inline-end: 0; }
body.nirab-admin-ui .modal-dialog-slideInRight .modal-body { overflow-y: auto; }
body.nirab-admin-ui .ai-tooltip { right: auto; inset-inline-end: 0; white-space: normal; inline-size: 15rem; }
body.nirab-admin-ui .generate_btn_wrapper { margin-left: 0; margin-inline-start: auto; }
body.nirab-admin-ui .outline-wrapper.outline-animating { background: linear-gradient(90deg, var(--nirab-action), var(--nirab-accent-soft), var(--nirab-action)); background-size: 200% 200%; }
body.nirab-admin-ui .bg-animate.active { background: var(--nirab-surface-soft); }
body.nirab-admin-ui .generate-text-input-group,
body.nirab-admin-ui .bootstrap-tagsinput { border-color: var(--nirab-border); font-family: var(--nirab-font); color: var(--nirab-text); }
body.nirab-admin-ui .uploadDnD,
body.nirab-admin-ui .theme-card,
body.nirab-admin-ui .inside-upload-zipBox { background-color: var(--nirab-surface); border-color: var(--nirab-border); }

/* Chart labels and plugin popovers also respond to the existing theme attribute. */
body.nirab-admin-ui .apexcharts-text { fill: var(--nirab-text); }
body.nirab-admin-ui .apexcharts-legend-text { color: var(--nirab-text) !important; font-family: var(--nirab-font) !important; }
body.nirab-admin-ui .apexcharts-tooltip,
body.nirab-admin-ui .apexcharts-tooltip-title,
body.nirab-admin-ui .apexcharts-menu { background: var(--nirab-surface) !important; color: var(--nirab-text) !important; border-color: var(--nirab-border) !important; font-family: var(--nirab-font); }
body.nirab-admin-ui .apexcharts-gridline { stroke: var(--nirab-border); }
body.nirab-admin-ui .daterangepicker { font-family: var(--nirab-font); color: var(--nirab-text); background: var(--nirab-surface); border-color: var(--nirab-border); max-inline-size: calc(100vw - 1rem); }
body.nirab-admin-ui .daterangepicker .calendar-table { background: var(--nirab-surface); border-color: var(--nirab-border); }
body.nirab-admin-ui .daterangepicker td.available:hover,
body.nirab-admin-ui .daterangepicker th.available:hover,
body.nirab-admin-ui .daterangepicker .ranges li:hover { background: var(--nirab-surface-soft); }
body.nirab-admin-ui .daterangepicker td.active,
body.nirab-admin-ui .daterangepicker .ranges li.active { color: #fff; background: var(--nirab-action); }
body.nirab-admin-ui .daterangepicker td.in-range { background: var(--nirab-surface-soft); color: var(--nirab-text); }
body.nirab-admin-ui .daterangepicker select { background: var(--nirab-surface); color: var(--nirab-text); }
body.nirab-admin-ui .dataTables_wrapper { font-family: var(--nirab-font); color: var(--nirab-text); }
body.nirab-admin-ui .dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: var(--nirab-radius-sm); }
body.nirab-admin-ui .dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--nirab-surface-soft); border-color: var(--nirab-action); color: var(--nirab-text) !important; }

/* Chat keeps its current reverse scrolling, unread state and send/attachment hooks. */
body.nirab-admin-ui .card-chat { min-block-size: 32rem; }
body.nirab-admin-ui .inbox_chat { max-block-size: 65vh; }
body.nirab-admin-ui .chat_ib { min-inline-size: 0; }
body.nirab-admin-ui .chat_ib p { overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-message-outgoing p { background: var(--nirab-action); color: #fff; }
body.nirab-admin-ui .nirab-message-incoming p { background: var(--nirab-surface-soft); color: var(--nirab-text); }
body.nirab-admin-ui .nirab-message-outgoing,
body.nirab-admin-ui .nirab-message-incoming { overflow-wrap: anywhere; }
body.nirab-admin-ui .nirab-message-composer { background: var(--nirab-surface); border-color: var(--nirab-border) !important; }
body.nirab-admin-ui .search_area { max-inline-size: 100%; }
body.nirab-admin-ui .search_area input { max-inline-size: 100%; }
body.nirab-admin-ui .nirab-map-tools { background: var(--nirab-surface); color: var(--nirab-text); font-family: var(--nirab-font) !important; }
body.nirab-admin-ui .nirab-map-tools > div { border-color: var(--nirab-border); }
body.nirab-admin-ui .nirab-control-label { display: grid; gap: .35rem; inline-size: 100%; min-inline-size: 0; }
body.nirab-admin-ui .nirab-control-label > .form-control { inline-size: 100% !important; }
body.nirab-admin-ui .nirab-finance-section > form.d-flex { align-items: end; }
body.nirab-admin-ui .nirab-finance-section > form.d-flex > .nirab-control-label { flex: 1 1 12rem; }
body.nirab-admin-ui .offcanvas { background: var(--nirab-surface); color: var(--nirab-text); border-color: var(--nirab-border); }
body.nirab-admin-ui .offcanvas .offcanvas-header { border-block-end: 1px solid var(--nirab-border); }
body.nirab-admin-ui .offcanvas .offcanvas-body { padding: 1.25rem; }
body.nirab-admin-ui #form-wizard .steps ul li a { text-align: start; }
body.nirab-admin-ui .booking-total-card__item { text-align: start; }
body.nirab-admin-ui .plan-wise-tooltip .tooltip-inner { text-align: start; white-space: normal; overflow-wrap: anywhere; }
body.nirab-admin-ui .alert--message-2 { right: auto; left: auto; inset-inline-end: 1.25rem; border-left: 0; border-inline-start: 3px solid var(--nirab-success); background: var(--nirab-surface); color: var(--nirab-text); box-shadow: var(--nirab-shadow-raised); max-inline-size: min(24rem, calc(100vw - 2rem)); }
[dir="rtl"] body.nirab-admin-ui .alert--message-2:not(.active) { transform: translateX(calc(-100% - 40px)); }
body.nirab-admin-ui .modal-status { background-color: var(--nirab-border); }

/* Only the admin path gets this root in the shared error layouts. */
body.nirab-admin-ui.nirab-admin-error { min-block-size: 100dvh; margin: 0; font-weight: 400; }
body.nirab-admin-ui.nirab-admin-error > .relative,
body.nirab-admin-ui.nirab-admin-error > .full-height { background: var(--nirab-canvas); padding: 1rem; min-block-size: 100dvh; display: flex; align-items: center; justify-content: center; }
body.nirab-admin-ui.nirab-admin-error .max-w-xl,
body.nirab-admin-ui.nirab-admin-error .content { max-inline-size: 42rem; padding: 1.5rem; border: 1px solid var(--nirab-border); border-radius: var(--nirab-radius-lg); background: var(--nirab-surface); color: var(--nirab-text); box-shadow: var(--nirab-shadow); }
body.nirab-admin-ui.nirab-admin-error .text-lg { color: var(--nirab-text); overflow-wrap: anywhere; }
body.nirab-admin-ui.nirab-admin-error .border-r { border-right: 0; border-inline-end: 1px solid var(--nirab-border); }
body.nirab-admin-ui.nirab-admin-error .ml-4 { margin-left: 0; margin-inline-start: 1rem; }
body.nirab-admin-ui.nirab-admin-error .tracking-wider { letter-spacing: normal; }

@media (max-width: 767.98px) {
    body.nirab-admin-ui .nirab-list-toolbar { align-items: stretch; }
    body.nirab-admin-ui .nirab-list-toolbar .search-form { max-inline-size: none; }
    body.nirab-admin-ui .nirab-list-toolbar > .d-flex { flex-wrap: wrap; }
    body.nirab-admin-ui .nirab-form-actions > .btn { flex: 1 1 9rem; }
    body.nirab-admin-ui #offcanvas__createplan,
    body.nirab-admin-ui #offcanvas__edit_faq { min-width: 0; max-width: 100vw; width: 100vw; }
    body.nirab-admin-ui .nirab-access-group .grid-columns,
    body.nirab-admin-ui .nirab-access-matrix .grid-columns { grid-template-columns: minmax(0, 1fr); }
    body.nirab-admin-ui .nirab-table-region { border-radius: .5rem; }
    body.nirab-admin-ui .nirab-finance-section > .row > [class*="col-"] { inline-size: 100%; }
    body.nirab-admin-ui .booking-total-card__item { align-items: flex-start; }
    body.nirab-admin-ui .booking-total-card__label { justify-content: flex-start; }
    body.nirab-admin-ui #form-wizard .steps ul { width: 100%; }
    body.nirab-admin-ui .card-chat { min-block-size: 24rem; }
    body.nirab-admin-ui .inbox_chat { max-block-size: 20rem; }
    body.nirab-admin-ui .daterangepicker { overflow-x: auto; }
    body.nirab-admin-ui .search_area { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    body.nirab-admin-ui .outline-animating,
    body.nirab-admin-ui .gradientCirc,
    body.nirab-admin-ui .gradientRect,
    body.nirab-admin-ui .ai-avatar .avatar-circle { animation: none !important; }
}

/* Shared page styles moved after tracing their two admin consumers. */
@media (max-width: 767.98px) {
body.nirab-admin-ui #form-wizard .steps ul {
                flex-direction: column;
                align-items: stretch;
                gap: 1rem;
                width: fit-content;
                max-width: 100%;
                margin-inline: auto;
            }
body.nirab-admin-ui #form-wizard .steps ul li {
                width: 100%;
            }
body.nirab-admin-ui #form-wizard .steps ul li:not(:first-child) {
                padding-inline-start: 0;
            }
body.nirab-admin-ui #form-wizard .steps ul li:not(:first-child)::after {
                display: none;
            }
body.nirab-admin-ui #form-wizard .steps ul li a {
                justify-content: flex-start;
                text-align: start;
            }
}
body.nirab-admin-ui .report-chart-sync-row > [class*=col-] {
            display: flex;
        }
body.nirab-admin-ui .report-chart-sync-summary {
            display: flex;
            flex-direction: column;
        }
body.nirab-admin-ui .report-chart-sync-summary > .card {
            width: 100%;
        }
body.nirab-admin-ui .report-chart-sync-title {
            flex: 0 0 auto;
        }
@media (max-width: 991.98px) {
body.nirab-admin-ui .report-chart-sync-row > [class*=col-] {
                display: block;
            }
body.nirab-admin-ui .report-chart-sync-card {
                height: auto !important;
            }
body.nirab-admin-ui .report-chart-sync-slot {
                min-height: 280px;
                height: auto !important;
            }
}
@media (max-width: 575.98px) {
body.nirab-admin-ui .report-chart-sync-slot {
                min-height: 240px;
            }
}
