/* Shared visual primitives; no workflow or payment capability changes. */
:root {
    --ajx-ink: #20262e;
    --ajx-muted: #56616e;
    --ajx-line: #dce1e6;
    --ajx-surface: #fff;
    --ajx-accent: #c8102e;
    --ajx-radius: 10px;
    --ajx-space-1: 4px;
    --ajx-space-2: 8px;
    --ajx-space-3: 12px;
    --ajx-space-4: 16px;
    --ajx-space-6: 24px;
    --ajx-space-8: 32px;
    --ajx-space-12: 48px;
}
:is(.ajx-web, .op-shell-body, .ajx-admin-page) :is(input, select, textarea, button) { max-width: 100%; }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #8b1830; outline-offset: 3px; }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) .form-label { color: var(--ajx-ink); font-weight: 600; }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) :is(.form-control, .form-select) { min-height: 42px; border-color: #bfc7d0; border-radius: 6px; color: var(--ajx-ink); }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) :is(.form-text, .text-muted) { color: var(--ajx-muted) !important; }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) .invalid-feedback { color: #a3132d; font-size: .85rem; }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) :is(input, select, textarea):disabled { color: #606b77; background: #edf0f3; opacity: 1; }
:is(.ajx-web, .op-shell-body, .ajx-admin-page) summary { cursor: pointer; line-height: 1.6; }
.ajx-web .container { max-width: 1240px; }
.ajx-web:not(.ajx-home-page) :is(.inner-banner-section, .ajx-page-hero) { min-height: 250px; padding-block: 48px; }
.ajx-web:not(.ajx-home-page) :is(.inner-banner-section .title, .ajx-page-hero h1) { font-size: clamp(28px, 3vw, 40px); line-height: 1.22; letter-spacing: -.025em; }
.ajx-web:not(.ajx-home-page) :is(.inner-banner-section p, .ajx-page-hero p) { max-width: 760px; font-size: 1rem; line-height: 1.65; }
.ajx-web:not(.ajx-home-page) :is(.ajx-section, .ptb-120) { padding-block: 48px; }
.ajx-web .ajx-muted { color: var(--ajx-muted); }
.ajx-web :is(.ajx-search-card, .ajx-portal-card) { border: 1px solid var(--ajx-line); border-radius: var(--ajx-radius); box-shadow: 0 3px 12px #15202b05; }
.ajx-web:not(.ajx-home-page) .footer-section { padding-block: 40px 24px; }
.ajx-web .ajx-transaction-footer { background: #fff; padding: 16px 0; border-top: 1px solid var(--ajx-line); }
.ajx-web .ajx-transaction-footer .container { display: flex; gap: 20px; align-items: center; justify-content: space-between; }
.ajx-web .ajx-transaction-footer img { width: 100px; height: 64px; object-fit: contain; }
.ajx-web .ajx-transaction-footer :is(p, a) { color: #46505b; font-size: .75rem; margin: 0; }
.ajx-web .ajx-transaction-footer nav { display: flex; flex-wrap: wrap; gap: 18px; }
.ajx-offer-page .ajx-booking-summary { border-top: 1px solid var(--ajx-line); padding-top: 20px; margin-top: 20px; }
.ajx-offer-page .ajx-booking-reference { display: block; color: var(--ajx-ink); font-size: 1rem; margin-top: 4px; }
.ajx-offer-page .ajx-payment-state { color: #6e4b0b; background: #fff5d9; border: 1px solid #e7d49e; border-radius: 5px; padding: 5px 10px; display: inline-block; font-weight: 700; }
.ajx-offer-page .ajx-booking-summary a.btn--base { color: #fff; box-shadow: none; font-size: .8rem; text-transform: none; letter-spacing: 0; padding: 12px 16px; }
.ajx-transaction-page .ajx-search-card { padding: 28px; }
.op-shell-body :is(.op-container, .op-navbar-inner, .op-footer-inner) { max-width: 1440px; }
.op-shell-body .op-main { padding-block: 28px 40px; }
.op-shell-body :is(.op-card, .op-panel) { box-shadow: 0 2px 8px #15202b04; }
.op-shell-body .op-request-meta { color: #536171; }
.ajx-admin-page { color: var(--ajx-ink); }
.ajx-admin-page .admin-sidebar { flex-basis: 236px; width: 236px; }
.ajx-admin-page .admin-sidebar .nav-link { padding: .55rem .75rem !important; font-size: .86rem; }
.ajx-admin-page .admin-brand { margin-bottom: 16px; padding-bottom: 16px; }
.ajx-admin-page .admin-card { border-color: var(--ajx-line); border-radius: var(--ajx-radius); box-shadow: 0 2px 10px #15202b04; min-width: 0; }
.ajx-admin-page .admin-card.p-4 { padding: 20px !important; }
.ajx-admin-page .admin-card .table { min-width: 0; }
.ajx-admin-page .table-responsive { max-width: 100%; }
.ajx-admin-page .table-responsive > .table { min-width: 640px; }
.ajx-admin-page .admin-card .table :is(td, th) { padding: .65rem .8rem; }
.ajx-admin-page .admin-card .table thead th { color: #485563; letter-spacing: .035em; }
.ajx-admin-page .admin-section-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.ajx-admin-page .admin-section-nav a { color: #354352; background: #fff; border: 1px solid var(--ajx-line); border-radius: 6px; padding: 6px 10px; font-size: .8rem; font-weight: 600; }
.ajx-admin-page [id] { scroll-margin-top: 20px; }
.ajx-admin-page :is(.admin-card p, .admin-card strong, .admin-card a) { overflow-wrap: anywhere; }
.ajx-admin-page details.admin-card > summary { font-size: .95rem; font-weight: 700; margin-bottom: 0 !important; }
.ajx-admin-page details.admin-card[open] > summary { margin-bottom: 12px !important; }
.ajx-admin-page .badge { font-size: .72rem; line-height: 1.4; white-space: normal; }
@media (max-width: 991.98px) {
    .ajx-admin-page .admin-sidebar { width: 100%; min-height: 0; padding: 12px 20px !important; }
    .ajx-admin-page .admin-brand { justify-content: flex-start; border: 0; padding: 0; margin-bottom: 8px; }
    .ajx-admin-page .admin-brand img { width: 86px; }
    .ajx-admin-page .admin-sidebar nav.show { display: flex; }
    .ajx-admin-page #admin-navigation { max-height: 65vh; overflow-y: auto; }
}
@media (max-width: 767.98px) {
    .ajx-web .container { padding-inline: 20px; }
    .ajx-web:not(.ajx-home-page) :is(.inner-banner-section, .ajx-page-hero) { min-height: 180px; padding-block: 28px; }
    .ajx-web:not(.ajx-home-page) :is(.inner-banner-section .title, .ajx-page-hero h1) { font-size: 28px; }
    .ajx-web:not(.ajx-home-page) :is(.ajx-section, .ptb-120) { padding-block: 28px; }
    .ajx-web .ajx-transaction-footer .container { flex-direction: column; align-items: flex-start; gap: 12px; }
    .ajx-web .ajx-transaction-footer img { width: 80px; height: 48px; }
    .ajx-transaction-page .ajx-search-card { padding: 20px; }
    .ajx-admin-page main > .p-4 { padding: 16px !important; }
    .ajx-admin-page .admin-card.p-4 { padding: 16px !important; }
    .ajx-admin-page .admin-card .btn { white-space: normal; }
    .ajx-admin-page .d-flex > * { min-width: 0; }
}
.ajx-web:not(.ajx-home-page) .section-header .section-title { font-size: clamp(24px, 2.7vw, 36px); line-height: 1.3; color: var(--ajx-ink); }
.ajx-web:not(.ajx-home-page) .section-header { margin-bottom: 32px; }
/* Transactional cards need dark headings regardless of the marketing theme. */
.ajx-web :is(.ajx-search-card, .ajx-panel, .ajx-portal-card) :is(h1, h2, h3, h4, .h4, .h5) { color: var(--ajx-ink); letter-spacing: -.02em; text-transform: none; }
.ajx-web :is(.ajx-search-card, .ajx-panel, .ajx-portal-card) :is(h1, h2) { font-size: clamp(22px, 2vw, 28px); line-height: 1.35; }
.ajx-web :is(.ajx-search-card, .ajx-panel, .ajx-portal-card) h3 { font-size: 1.1rem; line-height: 1.4; }
:is(.ajx-web, .ajx-admin-page, .op-shell-body) .badge.text-bg-warning { background: #fff2cd !important; color: #6b490a !important; }
:is(.ajx-web, .ajx-admin-page, .op-shell-body) .badge.text-bg-success { background: #e4f3eb !important; color: #185c3d !important; }
:is(.ajx-web, .ajx-admin-page, .op-shell-body) .badge.text-bg-secondary { background: #edf0f3 !important; color: #394552 !important; }
:is(.ajx-web, .ajx-admin-page, .op-shell-body) .badge.text-bg-danger { background: #fbe8ec !important; color: #9c1830 !important; }
/* Legacy theme helpers use important declarations; pin light-card values too. */
body.ajx-web .ajx-muted { color: var(--ajx-muted) !important; }
body.ajx-web :is(.ajx-search-card, .ajx-panel, .ajx-portal-card) :is(dd, strong) { color: var(--ajx-ink); }
body.ajx-web :is(.ajx-search-card, .ajx-panel, .ajx-portal-card) .h4 { font-size: 1.4rem !important; }
body.ajx-web :is(.ajx-search-card, .ajx-panel, .ajx-portal-card) .h5 { font-size: 1.1rem !important; }
body.ajx-web .ajx-search-card { background: #fff !important; box-shadow: 0 3px 12px #15202b05 !important; }

.ajx-admin-page .admin-sidebar .btn-outline-light { color: #fff; border-color: #8d949d; }
:is(.ajx-web, .ajx-admin-page, .op-shell-body) .badge.text-bg-info { background: #e8f1fb !important; color: #244f7b !important; }
