:root {
    --portal-primary: #f36f21;
    --portal-primary-dark: #d9570a;
    --portal-brand-green: #269a59;
    --portal-brand-green-dark: #1f7f49;
    /* Application-wide selected-control colour for radios, checkboxes and switches. */
    --portal-selection-color: var(--portal-brand-green);
    --portal-selection-color-dark: var(--portal-brand-green-dark);
    /* Canonical active-tab palette, based on the flight-search product tabs. */
    --portal-tab-active-bg: #fff7f0;
    --portal-tab-active-color: var(--portal-ink);
    --portal-tab-active-border: #f3cdb5;
    --portal-ink: #17233c;
    --portal-muted: #667085;
    --portal-surface: #f6f8fb;
    --portal-border: #e4e8ef;
    --portal-sidebar: #172234;
    --portal-hero-gradient: linear-gradient(125deg, var(--portal-brand-green) 0%, #238d52 68%, var(--portal-brand-green-dark) 100%);
    --portal-scroll-thumb: #d7a181;
    /* Shared width for every right-side workflow drawer (flight details, fare
       rules and SSR selection). Phone layouts remain capped at 100vw. */
    --portal-drawer-width: 620px;
    --portal-scroll-thumb-hover: var(--portal-primary);
    --portal-scroll-track: transparent;
    /* Single application-wide corner radius. Change only via the tenant theme token (--theme-radius). */
    --portal-radius: 5px;
    --portal-shadow: 0 18px 45px rgba(23, 34, 52, .09);
    /* Bootstrap components and rounded-* utilities follow the same standard radius (pill/circle stay intact). */
    --bs-border-radius: var(--portal-radius);
    --bs-border-radius-sm: var(--portal-radius);
    --bs-border-radius-lg: var(--portal-radius);
    --bs-border-radius-xl: var(--portal-radius);
    --bs-border-radius-xxl: var(--portal-radius);
}

html { min-height: 100%; }
body { min-height: 100vh; color: var(--portal-ink); background: var(--portal-surface); font-family: var(--portal-font, "PT Sans", "Segoe UI", sans-serif); }

/* Shared right-side workflow panel contract. */
.offcanvas.offcanvas-end{--bs-offcanvas-width:min(var(--portal-drawer-width),100vw);width:var(--bs-offcanvas-width);overflow:hidden}
.offcanvas.offcanvas-end>.offcanvas-header{flex:0 0 auto;align-items:center}
.offcanvas.offcanvas-end>.offcanvas-header .btn-close{align-self:center}
.offcanvas.offcanvas-end>.offcanvas-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}
/* Canonical portal action control. Buttons intentionally share the bordered, compact
   geometry of form inputs while Bootstrap variants retain their semantic colours. */
.btn:not(.btn-close):not(.btn-link):not(.icon-action){display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:38px;padding:.375rem .75rem;border-radius:var(--portal-radius);font-weight:700;line-height:1.35;text-decoration:none;box-shadow:0 1px 2px rgba(23,34,52,.05);transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.btn:not(.btn-close):not(.btn-link):not(.icon-action):hover{box-shadow:0 4px 10px rgba(23,34,52,.1)}
.btn:not(.btn-close):not(.btn-link):not(.icon-action):active{transform:translateY(1px);box-shadow:none}
.btn.btn-sm:not(.btn-close):not(.btn-link):not(.icon-action){min-height:32px;padding:.25rem .55rem;font-size:.76rem}
.btn.btn-lg:not(.btn-close):not(.btn-link):not(.icon-action){min-height:44px;padding:.55rem 1rem}
.btn-light{color:var(--portal-ink);background:#fff;border-color:var(--portal-border)}
.btn-primary,.primary-btn,.btn-outline-orange { display:inline-flex!important; align-items:center; justify-content:center; min-height:38px; padding:.375rem .75rem!important; color:var(--portal-primary)!important; background:#fff!important; border:1px solid var(--portal-primary)!important; border-radius:var(--portal-radius)!important; font-weight:700; line-height:1.5; text-decoration:none; box-shadow:none!important; }
.btn-primary:hover,.btn-primary:focus,.primary-btn:hover,.primary-btn:focus,.btn-outline-orange:hover,.btn-outline-orange:focus { color:#fff!important; background:var(--portal-primary)!important; border-color:var(--portal-primary)!important; box-shadow:0 4px 10px rgba(243,111,33,.18)!important; }
.btn-primary:active,.primary-btn:active,.btn-primary.active,.primary-btn.active,.btn-outline-orange:active { color:#fff!important; background:var(--portal-primary-dark)!important; border-color:var(--portal-primary-dark)!important; }
.btn-primary:disabled,.primary-btn:disabled,.primary-btn.disabled { color:#98a2b3!important; background:#f6f8fb!important; border-color:var(--portal-border)!important; opacity:1; box-shadow:none; }
.btn-outline-primary,.btn-outline-success,.btn-outline-secondary,.btn-outline-info,.btn-outline-dark,.btn-outline-warning { color:var(--portal-primary); border-color:var(--portal-primary); background:#fff; font-weight:700; }
.btn-outline-primary:hover,.btn-outline-primary:focus,.btn-outline-success:hover,.btn-outline-success:focus,.btn-outline-secondary:hover,.btn-outline-secondary:focus,.btn-outline-info:hover,.btn-outline-info:focus,.btn-outline-dark:hover,.btn-outline-dark:focus,.btn-outline-warning:hover,.btn-outline-warning:focus { color:#fff; border-color:var(--portal-primary); background:var(--portal-primary); box-shadow:0 4px 10px rgba(243,111,33,.18); }
.portal-page-hero .portal-segmented-action { color:var(--portal-primary)!important; background:#fff!important; border-color:var(--portal-primary)!important; }
.portal-page-hero .portal-segmented-action:hover,.portal-page-hero .portal-segmented-action:focus { color:#fff!important; background:var(--portal-primary)!important; border-color:var(--portal-primary)!important; box-shadow:0 4px 10px rgba(243,111,33,.18)!important; }
.btn-secondary,.btn-success { color:var(--portal-primary); border-color:var(--portal-primary); background:#fff; font-weight:700; }
.btn-secondary:hover,.btn-secondary:focus,.btn-success:hover,.btn-success:focus { color:#fff; border-color:var(--portal-primary); background:var(--portal-primary); box-shadow:0 4px 10px rgba(243,111,33,.18); }
.portal-page-hero .btn-outline-secondary { color:var(--portal-primary); border-color:var(--portal-primary); background:#fff; }
.portal-page-hero .btn-outline-secondary:hover,.portal-page-hero .btn-outline-secondary:focus { color:#fff; border-color:var(--portal-primary); background:var(--portal-primary); }
/* Standard tab language: segmented control — white container, neutral inactive tabs, brand-filled active tab. */
.nav-tabs { gap:6px; padding:6px; background:#fff; border:1px solid var(--portal-border); border-radius:var(--portal-radius); }
.nav-tabs .nav-link { margin-bottom:0; padding:.55rem 1.05rem; color:#4e5b76; background:#f6f8fb; border:1px solid transparent; border-radius:var(--portal-radius); font-weight:650; transition:background .18s,color .18s; }
.nav-tabs .nav-link:hover { color:var(--portal-primary-dark); border-color:transparent; background:var(--portal-tab-active-bg); }
.nav-tabs .nav-link:focus-visible { outline:3px solid rgba(243,111,33,.28); outline-offset:1px; }
.nav-tabs .nav-link.active { color:var(--portal-tab-active-color); background:var(--portal-tab-active-bg); border-color:var(--portal-tab-active-border); font-weight:750; }
.nav-tabs:has(+ .tab-content) { margin-bottom:.9rem; }
/* All application tab implementations share the flight-search active palette.
   Explicit selectors avoid changing unrelated navigation/sidebar active states. */
html body .nav-tabs .nav-link.active,
html body .nav-pills .nav-link.active,
html body .icon-tabs .tab-item.active,
html body .inner-nav-tabs .tab-item.active,
html body [role=tablist]>button.active,
html body .addon-service-tabs button.active,
html body .addon-sector-tabs button.active,
html body .fare-tabs button.active,
html body .direction-tabs button.active {
    color:var(--portal-tab-active-color)!important;
    background:var(--portal-tab-active-bg)!important;
    border-color:var(--portal-tab-active-border)!important;
    box-shadow:0 1px 5px rgba(23,34,52,.1)!important;
}
html body .nav-tabs .nav-link.active i,
html body .nav-pills .nav-link.active i,
html body [role=tablist]>button.active i,
html body .addon-service-tabs button.active i,
html body .addon-sector-tabs button.active i { color:var(--portal-primary)!important; }
/* Standard status alerts: neutral white surface, rounded corners, status told by the colored top accent (and icon). */
.alert { color:var(--portal-ink); background:#fff; border:1px solid var(--portal-border); border-top:3px solid var(--portal-primary); border-radius:var(--portal-radius); box-shadow:0 6px 16px rgba(23,34,52,.05); }
.alert-success { border-top-color:var(--portal-brand-green); }
.alert-warning { border-top-color:#d97706; }
.alert-danger { border-top-color:#b42318; }
.alert-info, .alert-primary, .alert-secondary, .alert-light, .alert-dark { border-top-color:var(--portal-primary); }
.alert-success .alert-link, .alert-success > i { color:var(--portal-brand-green-dark); }
.alert-warning .alert-link, .alert-warning > i { color:#9a6a00; }
.alert-danger .alert-link, .alert-danger > i { color:#b42318; }
.alert-info .alert-link, .alert-info > i { color:var(--portal-primary-dark); }
.alert .alert-heading { color:var(--portal-ink); }
.form-check-input { width:1.1rem; height:1.1rem; margin-top:.15rem; border-radius:var(--portal-radius); border-color:var(--portal-selection-color); }
.form-check-input[type=radio] { border-radius:50%; }
.form-check-input:hover { border-color:var(--portal-selection-color-dark); background-color:#f1faf5; }
.form-check-label { color:var(--portal-ink); }
input[type=checkbox],input[type=radio] { accent-color:var(--portal-selection-color); }
html body .form-check-input:checked { background-color:var(--portal-selection-color)!important; border-color:var(--portal-selection-color)!important; }
html body .form-check-input:focus { border-color:var(--portal-selection-color); box-shadow:0 0 0 .2rem rgba(38,154,89,.16); }
html body .permission-switch input:checked+span { border-color:var(--portal-selection-color); background-color:var(--portal-selection-color); }
/* Legacy flight radios now follow the same native control contract. This prevents
   the old icon-based dot from drifting outside its circular border. */
input.radio-custom { position:static; display:inline-block; flex:0 0 1.1rem; width:1.1rem; height:1.1rem; margin:0; opacity:1; appearance:auto; accent-color:var(--portal-selection-color); vertical-align:middle; cursor:pointer; }
input.radio-custom+.radio-custom-label { position:static; display:inline; margin:0; vertical-align:middle; cursor:pointer; }
input.radio-custom+.radio-custom-label::before,input.radio-custom:checked+.radio-custom-label::after { content:none!important; }
input.radio-custom:checked+.radio-custom-label { font-weight:700; }
/* Application pagination: contained, right-aligned and clearly distinct from primary actions. */
nav:has(> .pagination) { max-width:100%; overflow:hidden; }
.pagination { width:100%; max-width:100%; margin:.9rem 0 0; padding:.25rem 0; justify-content:flex-end; flex-wrap:wrap; gap:.35rem; }
.pagination .page-item { flex:0 0 auto; }
.pagination .page-item + .page-item .page-link { margin-left:0; }
.pagination .page-link { min-width:2.35rem; padding:.48rem .72rem; color:var(--portal-brand-green-dark); text-align:center; background:#fff; border:1px solid #b9dfc8; border-radius:var(--portal-radius)!important; box-shadow:none; }
.pagination .page-link:hover { color:#fff; background:var(--portal-brand-green); border-color:var(--portal-brand-green); }
.pagination .page-link:focus { color:var(--portal-brand-green-dark); background:#fff; border-color:var(--portal-brand-green); box-shadow:0 0 0 .2rem rgba(38,154,89,.15); }
.pagination .page-item.active .page-link { color:#fff; background:var(--portal-brand-green); border-color:var(--portal-brand-green-dark); box-shadow:0 4px 10px rgba(31,127,73,.2); }
.pagination .page-item.disabled .page-link { color:#98a2b3; background:#f6f8fb; border-color:var(--portal-border); box-shadow:none; }
.navbar-brand img, .admin-brand img { display: block; width: 154px; height: 48px; object-fit: contain; }
.eyebrow { display: inline-block; margin-bottom: .7rem; color: var(--portal-primary); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.public-header, .portal-header { position: relative; z-index: 20; background: #fff; border-bottom: 1px solid var(--portal-border); }
.public-header .navbar, .portal-header .navbar { min-height: 76px; }
.public-footer { padding: 2rem 0; color: #d3d8e1; background: var(--portal-ink); }
.hero-section { padding: clamp(4rem, 9vw, 8rem) 0; overflow: hidden; background: radial-gradient(circle at 82% 20%, rgba(38,154,89,.18) 0, transparent 28%), radial-gradient(circle at 12% 82%, rgba(243,111,33,.12) 0, transparent 25%), linear-gradient(145deg, #fff 0, #f4f8f5 65%); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.hero-section h1 { max-width: 760px; margin-bottom: 1.4rem; font-size: clamp(2.7rem, 6vw, 5.7rem); font-weight: 800; letter-spacing: -.055em; line-height: .98; }
.hero-section p { max-width: 680px; margin-bottom: 2rem; color: var(--portal-muted); font-size: 1.2rem; }
.hero-card { display: grid; gap: 1rem; padding: 1.5rem; color: #fff; background: var(--portal-ink); border-radius:var(--portal-radius); box-shadow: var(--portal-shadow); transform: rotate(1.5deg); }
.hero-card div { display: flex; flex-direction: column; padding: 1.3rem; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius:var(--portal-radius); }
.hero-card strong { font-size: 1.35rem; }.hero-card span { color: #bdc6d4; }
.section-space { padding-top: 4.5rem; padding-bottom: 4.5rem; }.section-heading { max-width: 660px; margin-bottom: 2rem; }.section-heading h2 { font-weight: 800; }
.feature-grid, .dashboard-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.feature-grid article, .dashboard-grid article, .content-card { padding: 1.7rem; background: #fff; border: 1px solid var(--portal-border); border-radius:var(--portal-radius); box-shadow: 0 8px 24px rgba(23,34,52,.04); }
.feature-grid h3 { font-size: 1.2rem; font-weight: 750; }.feature-grid p { margin: 0; color: var(--portal-muted); }
.auth-section { display: grid; min-height: calc(100vh - 152px); padding: 3rem 1rem; place-items: center; }.auth-card { width: min(100%, 460px); padding: 2rem; background: #fff; border-radius:var(--portal-radius); box-shadow: var(--portal-shadow); }
.wallet-summary { text-align: right; }.wallet-summary span, .wallet-summary strong { display: block; }.wallet-summary span { color: var(--portal-muted); font-size: .75rem; }.account-menu { display: flex; align-items: center; gap: .6rem; border: 1px solid var(--portal-border); border-radius:var(--portal-radius); }
.account-avatar { display: grid; width: 32px; height: 32px; color: #fff; background: var(--portal-primary); border-radius:50%; place-items: center; font-weight: 800; }
.portal-main { min-height: calc(100vh - 77px); }.search-hero { min-height: calc(100vh - 77px); padding: 4rem 0; background: linear-gradient(150deg, #f6f8fb 0, #eef2f8 100%); }.search-hero h1 { font-weight: 800; letter-spacing: -.035em; }
.search-panel { padding: clamp(1.25rem, 3vw, 2rem); background: #fff; border-radius:var(--portal-radius); box-shadow: var(--portal-shadow); }.trip-selector { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-bottom: 1.5rem; }.trip-selector label { font-weight: 700; }
.search-grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 1fr 1fr; gap: 1rem; }.traveller-grid { display: grid; grid-template-columns: 100px 100px 100px 1fr auto; gap: 1rem; margin-top: 1.25rem; }.search-panel label:not(.form-check) { margin-bottom: .4rem; font-size: .8rem; font-weight: 750; }.search-panel span.field-validation-error { display: block; margin-top: .3rem; color: #b42318; font-size: .8rem; }
.admin-shell { display: grid; grid-template-columns: 280px 1fr; }.admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 1.25rem; color: #fff; background: var(--portal-sidebar); }.admin-brand { display: block; margin-bottom: 2rem; padding: .5rem; background: #fff; border-radius:var(--portal-radius); }.admin-sidebar nav { display: grid; gap: .3rem; }.admin-sidebar nav a { padding: .75rem 1rem; color: #dbe2ec; text-decoration: none; border-radius:var(--portal-radius); }.admin-sidebar nav a:hover { color: #fff; background: rgba(255,255,255,.09); }.admin-workspace { min-width: 0; }.admin-topbar { display: flex; min-height: 76px; padding: 1rem 2rem; align-items: center; justify-content: space-between; background: #fff; border-bottom: 1px solid var(--portal-border); }.admin-content { padding: 2rem; }.dashboard-grid article { display: flex; flex-direction: column; }.dashboard-grid span { color: var(--portal-muted); }.dashboard-grid strong { font-size: 2rem; }
@media (max-width: 991.98px) { .hero-grid, .feature-grid, .dashboard-grid { grid-template-columns: 1fr; }.search-grid { grid-template-columns: repeat(2, 1fr); }.traveller-grid { grid-template-columns: repeat(3, 1fr); }.traveller-grid .form-check, .traveller-grid button { grid-column: span 3; }.admin-shell { grid-template-columns: 1fr; }.admin-sidebar { position: static; height: auto; }.admin-sidebar nav { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .search-grid { grid-template-columns: 1fr; }.admin-content { padding: 1rem; }.admin-sidebar nav { grid-template-columns: 1fr; } }

/* Shared visual primitives. Keep page markup free of inline style attributes and style blocks. */
.portal-map-embed{width:100%;height:100px;border:0}
.portal-auth-shell{min-height:100vh;padding:1.5rem 0;display:flex;align-items:center;justify-content:center}
.portal-auth-card{width:100%;max-width:520px;overflow:hidden;background:#fff;border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow)}
.portal-auth-card-wide{max-width:900px}.portal-auth-card-body{padding:2rem}.portal-auth-logo{display:block;width:180px;max-width:100%;height:auto}
.portal-auth-title{margin-top:1.5rem;font-size:1.5rem;font-weight:800;color:var(--portal-ink)}
.portal-profile-image{background-image:url('/design/images/profile-img.jpg')}
.icon-action,.agency-action-buttons .btn{width:32px;height:30px;display:inline-grid;place-items:center;padding:0}
.table-action{display:inline-flex;align-items:center;justify-content:center;width:96px;height:38px;padding:0 .65rem;white-space:nowrap}
.agency-action-buttons{display:flex;justify-content:center;gap:5px;white-space:nowrap}.agency-action-buttons form{display:inline-flex}
.agency-application-edit-form{display:flex;flex-direction:column;max-height:100%;overflow:hidden}.agency-application-edit-form .modal-body{min-height:0;overflow-y:auto}
.agency-edit-tabs{flex-wrap:wrap;overflow:visible}.agency-edit-tabs .nav-link{white-space:nowrap}.agency-table td{vertical-align:middle}
.agency-logo-frame{width:72px;height:72px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:#fff;display:grid;place-items:center;overflow:hidden;color:var(--portal-primary);font-size:2rem}.agency-logo-frame img{width:100%;height:100%;object-fit:contain;padding:6px}
.profile-section-title{margin-bottom:1rem;color:var(--portal-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.profile-list{margin:0}.profile-list dt{color:var(--portal-muted);font-size:.75rem;font-weight:500}.profile-list dd{margin-bottom:.85rem;font-weight:600}
.document-link{display:flex;align-items:center;gap:12px;margin-bottom:8px;padding:12px;color:inherit;text-decoration:none;border:1px solid var(--portal-border);border-radius:var(--portal-radius)}.document-link:hover{color:var(--portal-primary);border-color:#f2c9b1;background:#fffaf7}.document-link i{color:var(--portal-primary);font-size:1.4rem}.document-link span,.document-link small{display:block}.document-link small{color:var(--portal-muted)}
.wallet-summary-card{padding:18px;background:#fff7f1;border:1px solid #ffe1ce;border-radius:var(--portal-radius)}.wallet-summary-card small{display:block;color:var(--portal-muted)}.wallet-summary-card strong{display:block;margin-top:4px;color:var(--portal-primary);font-size:1.45rem}
.sensitive-diff{margin:0;font-size:.76rem}.sensitive-diff dt{color:#778197;font-weight:600}.sensitive-diff dd{margin:0 0 5px}.sensitive-diff i{margin:0 4px;color:var(--portal-primary)}
@media(max-width:575.98px){.portal-auth-shell{padding:1rem}.portal-auth-card-body{padding:1.5rem}.agency-action-buttons{gap:4px}}
.remote-autocomplete-option:not(.remote-autocomplete-rich){grid-template-columns:minmax(0,1fr);color:#17233c!important;line-height:1.4}
.remote-autocomplete-menu{z-index:1080;top:var(--remote-autocomplete-top,calc(100% + 6px));left:var(--remote-autocomplete-left,0);width:max(var(--remote-autocomplete-width,100%),340px)!important;max-width:min(440px,calc(100vw - 28px));max-height:20rem;overflow-y:auto;border:1px solid var(--portal-border)!important;border-radius:var(--portal-radius)!important;background:#fff;box-shadow:0 16px 38px rgba(23,35,60,.16)!important;padding:6px}.remote-autocomplete-option{display:grid!important;grid-template-columns:48px minmax(0,1fr);gap:11px;align-items:center;padding:10px!important;border:0!important;border-radius:var(--portal-radius)!important;text-align:left;white-space:normal}.remote-autocomplete-option:hover,.remote-autocomplete-option:focus{background:#fff7f1!important;color:var(--portal-ink)!important}.remote-autocomplete-code{display:grid;place-items:center;min-height:38px;border-radius:var(--portal-radius);background:#fff0e8;color:var(--portal-primary-dark);font-size:.8rem;letter-spacing:.04em}.remote-autocomplete-copy{min-width:0}.remote-autocomplete-copy b,.remote-autocomplete-copy small{display:block}.remote-autocomplete-copy b{font-size:.82rem;color:var(--portal-ink)}.remote-autocomplete-copy small{margin-top:2px;color:#778197;font-size:.7rem;line-height:1.3}.remote-autocomplete-empty{padding:14px 12px;color:var(--portal-primary-dark);background:#fff8f3;border-radius:var(--portal-radius);font-size:.78rem;font-weight:700}.remote-autocomplete-empty:before{content:'\f071';font-family:FontAwesome;margin-right:7px}@media(max-width:575px){.remote-autocomplete-menu{position:fixed!important;top:auto!important;right:12px;bottom:12px;left:12px;width:auto!important;max-width:none}}

/* Canonical authenticated workspace and workflow header. */
.portal-container{padding:1.7rem;background:#fff;border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:0 8px 24px rgba(23,34,52,.04)}
/* Legacy admin console names may describe content, but must never override the
   canonical page container geometry. This keeps every Developer Settings page
   on the same hero -> toolbar -> content contract. */
.portal-container.master-console{padding:1.7rem!important;overflow:hidden}
.portal-container>.portal-page-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;overflow:hidden;margin:-1.7rem -1.7rem 1.25rem;padding:14px 24px;border-top:3px solid var(--portal-primary);border-bottom:1px solid #f3ddcd;border-radius:var(--portal-radius) var(--portal-radius) 0 0;background:linear-gradient(115deg,#fff 42%,#fff3ea 100%);color:var(--portal-ink)}
.portal-container>.portal-page-hero:after{content:'\f072';position:absolute;right:26px;top:50%;transform:translateY(-50%) rotate(-14deg);font-family:FontAwesome;font-size:88px;line-height:1;color:rgba(243,111,33,.07);pointer-events:none}
.portal-container>.portal-page-hero>*{position:relative;z-index:1}.portal-container>.portal-page-hero>div:first-child{min-width:0;flex:1}
.portal-container>.portal-page-hero :is(h1,h2,h3){margin:0;color:var(--portal-ink);font-size:1.3rem;font-weight:750}.portal-container>.portal-page-hero p{margin:3px 0 0!important;color:var(--portal-muted)!important;font-size:.76rem}.portal-container>.portal-page-hero .eyebrow{display:block;margin-bottom:3px;color:var(--portal-primary-dark);font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.portal-container>.portal-page-hero .master-stat{border-color:#f3c9ad;background:#fff7f1;color:var(--portal-ink)}.portal-container>.portal-page-hero .master-stat i{color:var(--portal-primary)}.portal-container>.portal-page-hero .master-stat b{color:var(--portal-ink)}.portal-container>.portal-page-hero .master-stat small{color:var(--portal-muted)}
@media(max-width:575.98px){.portal-container{padding:1rem}.portal-container>.portal-page-hero{align-items:flex-start;flex-direction:column;margin:-1rem -1rem 1rem;padding:12px 14px}.portal-container>.portal-page-hero:after{right:8px;font-size:64px}.portal-container>.portal-page-hero>.btn{width:100%}}

/* Authenticated workspace compatibility: legacy semantic hero names inherit the canonical
   container/hero contract while their Razor views are migrated to the explicit primitives. */
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero){position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;overflow:hidden;margin:-1.7rem -1.7rem 1.25rem;padding:14px 24px;border-top:3px solid var(--portal-primary);border-bottom:1px solid #f3ddcd;border-radius:var(--portal-radius) var(--portal-radius) 0 0;background:linear-gradient(115deg,#fff 42%,#fff3ea 100%);color:var(--portal-ink);min-height:0}
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero):after{content:'\f072';position:absolute;right:26px;top:50%;transform:translateY(-50%) rotate(-14deg);font-family:FontAwesome;font-size:88px;line-height:1;color:rgba(243,111,33,.07);pointer-events:none}
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero)>*{position:relative;z-index:1}
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero) :is(h1,h2,h3){margin:0;color:var(--portal-ink);font-size:1.3rem;font-weight:750}
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero) p{margin:3px 0 0!important;color:var(--portal-muted)!important;font-size:.76rem}
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero) .eyebrow{display:block;margin-bottom:3px;color:var(--portal-primary-dark);font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:575.98px){:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero){align-items:flex-start;flex-direction:column;margin:-1rem -1rem 1rem;padding:12px 14px}:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero):after{right:8px;font-size:64px}:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero)>.btn{width:100%}}

/* Canonical page action toolbar. It is the second visual row in an authenticated
   workspace: immediately after the hero, never embedded inside it. */
.portal-action-bar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;margin:0 0 .9rem;padding:.65rem .8rem;border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:#fbfcfd}
:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero,.booking-overview-hero)+.portal-action-bar{margin:0 0 1rem;padding:.65rem .8rem;border-width:1px;border-radius:var(--portal-radius)}
.portal-action-bar form{margin:0}.portal-action-bar .btn{min-height:34px}.portal-action-bar__context{min-width:0;margin-right:auto;color:var(--portal-muted);font-size:.72rem}.portal-action-bar__context strong,.portal-action-bar__context small{display:block}.portal-action-bar__actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:0;max-width:100%;gap:.5rem}
/* A toolbar is a single visual language: all non-destructive actions use the
   restrained orange outline and fill on interaction. Danger remains red. */
.portal-action-bar .btn:not(.btn-danger):not(.btn-outline-danger){display:inline-flex!important;align-items:center;justify-content:center;color:var(--portal-primary)!important;background:#fff!important;border-color:var(--portal-primary)!important;font-weight:700;box-shadow:none!important}
.portal-action-bar .btn:not(.btn-danger):not(.btn-outline-danger):is(:hover,:focus,.active){color:#fff!important;background:var(--portal-primary)!important;border-color:var(--portal-primary)!important;box-shadow:0 4px 10px rgba(243,111,33,.18)!important}
.portal-action-bar .btn:not(.btn-danger):not(.btn-outline-danger):disabled,.portal-action-bar .btn:not(.btn-danger):not(.btn-outline-danger).disabled{color:#98a2b3!important;background:#f6f8fb!important;border-color:var(--portal-border)!important;box-shadow:none!important}
@media(max-width:575.98px){.portal-container.master-console{padding:1rem!important}:is(.portal-container,.content-card)>:is(.portal-page-hero,.namo-page-hero,.booking-overview-hero)+.portal-action-bar{margin:0 0 .8rem;padding:.6rem}.portal-action-bar{align-items:stretch}.portal-action-bar__context{width:100%;margin-right:0}.portal-action-bar__actions{width:100%}.portal-action-bar__actions>.btn,.portal-action-bar__actions>form,.portal-action-bar>.btn,.portal-action-bar>form{flex:1 1 calc(50% - .5rem)}.portal-action-bar form>.btn{width:100%}}

/* Canonical portal action language: all non-destructive actions use the restrained
   orange outline at rest and fill orange on interaction. */
.btn:not(.btn-close):not(.btn-link):not(.btn-danger):not(.btn-outline-danger):not(.btn-light):not(.icon-action){color:var(--portal-primary)!important;background:#fff!important;border-color:var(--portal-primary)!important}
.btn:not(.btn-close):not(.btn-link):not(.btn-danger):not(.btn-outline-danger):not(.btn-light):not(.icon-action):hover,
.btn:not(.btn-close):not(.btn-link):not(.btn-danger):not(.btn-outline-danger):not(.btn-light):not(.icon-action):focus{color:#fff!important;background:var(--portal-primary)!important;border-color:var(--portal-primary)!important;box-shadow:0 4px 10px rgba(243,111,33,.18)!important}
.btn:not(.btn-close):not(.btn-link):not(.btn-danger):not(.btn-outline-danger):not(.btn-light):not(.icon-action):active{color:#fff!important;background:var(--portal-primary-dark)!important;border-color:var(--portal-primary-dark)!important}
.btn-light{color:#566176!important;background:#fff!important;border-color:var(--portal-border)!important}
.btn-light:hover,.btn-light:focus{color:var(--portal-ink)!important;background:#f3f5f8!important;border-color:#cbd2dc!important;box-shadow:0 3px 8px rgba(23,34,52,.08)!important}
.btn:not(.btn-close):not(.btn-link):not(.btn-danger):not(.btn-outline-danger):not(.icon-action):disabled,
.btn:not(.btn-close):not(.btn-link):not(.btn-danger):not(.btn-outline-danger):not(.icon-action).disabled{color:#98a2b3!important;background:#f6f8fb!important;border-color:var(--portal-border)!important;box-shadow:none!important}
.btn.icon-action:not(.btn-danger):not(.btn-outline-danger){color:var(--portal-primary)!important;background:#fff!important;border:1px solid var(--portal-primary)!important}
.btn.icon-action:not(.btn-danger):not(.btn-outline-danger):hover,
.btn.icon-action:not(.btn-danger):not(.btn-outline-danger):focus{color:#fff!important;background:var(--portal-primary)!important;border-color:var(--portal-primary)!important}
.capability-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;padding:1rem;border:1px solid var(--portal-border,#dee2e6);border-radius:.75rem;background:#f8fafc}.capability-options .form-check{margin:0}
.provider-editor-tabs .nav-link{font-weight:700}.provider-capability-group{padding:1rem 0;border-bottom:1px solid var(--portal-border,#dee2e6)}.provider-capability-group:first-child{padding-top:0}.provider-capability-group:last-of-type{border-bottom:0}.provider-capability-group h4{font-size:1rem;margin:0}.provider-capability-group>div:first-child{margin-bottom:.75rem}.provider-capability-group small{color:#667085}
