/* AppHill tokens shared by client, staff and standalone portal pages. */
:root {
  --ah-orange:#f3922b; --ah-ink:#252b31; --ah-muted:#67717c;
  --ah-paper:#fff; --ah-canvas:#fff; --ah-tint:#fff8ef; --ah-field:#fff;
  --ah-line:#dce2e7; --ah-link:#98520d; --ah-focus:#175ba6;
  --bs-primary:#f3922b; --bs-primary-rgb:243,146,43;
  --bs-body-font-family:Aptos,"Segoe UI",Arial,sans-serif;
  --bs-body-color:var(--ah-ink); --bs-body-bg:var(--ah-canvas);
  --bs-secondary-color:var(--ah-muted); --bs-secondary-bg:var(--ah-tint);
  --bs-tertiary-bg:#f5f7f9; --bs-border-color:var(--ah-line);
  --bs-link-color:var(--ah-link); --bs-link-color-rgb:152,82,13;
  --bs-link-hover-color:#713d09; --bs-link-hover-color-rgb:113,61,9;
  --bs-emphasis-color:var(--ah-ink); --bs-heading-color:var(--ah-ink);
  --tblr-primary:#f3922b; --tblr-primary-rgb:243,146,43;
  --tblr-body-color:var(--ah-ink); --tblr-body-bg:var(--ah-canvas);
  --tblr-bg-surface:var(--ah-paper); --tblr-border-color:var(--ah-line);
  --tblr-body-font-family:var(--bs-body-font-family);
}
[data-bs-theme="dark"] {
  color-scheme:dark;
  --ah-ink:#eef1f4; --ah-muted:#b1bac4; --ah-paper:#232c36;
  --ah-canvas:#1e252d; --ah-tint:#2c2c29; --ah-field:#232c36;
  --ah-line:#3c4651; --ah-link:#ffb35c; --ah-focus:#8fc5ff;
  --bs-body-color:var(--ah-ink); --bs-body-bg:var(--ah-canvas);
  --bs-secondary-color:var(--ah-muted); --bs-secondary-bg:#2b3540;
  --bs-tertiary-bg:#29333e; --bs-border-color:var(--ah-line);
  --bs-link-color:var(--ah-link); --bs-link-color-rgb:255,179,92;
  --bs-link-hover-color:#ffd19d; --bs-link-hover-color-rgb:255,209,157;
  --bs-emphasis-color:var(--ah-ink); --bs-heading-color:var(--ah-ink);
}
body:is(.apphill-portal,.apphill-admin,.apphill-public,.apphill-print) {
  font-family:var(--bs-body-font-family); color:var(--ah-ink);
  background:var(--ah-canvas); font-size:16px; line-height:1.55;
}
body:is(.apphill-portal,.apphill-admin) { min-height:100svh; }
body :is(h1,h2,h3,h4,h5,h6,.card-title,.page-title) {
  font-family:Bahnschrift,"Segoe UI",Arial,sans-serif; letter-spacing:-.025em;
  color:var(--ah-ink); font-weight:600;
}
body h1 { font-size:clamp(30px,3vw,42px); line-height:1.15; }
body h2 { font-size:28px; line-height:1.2; }
body h3 { font-size:22px; line-height:1.3; }
body a { text-underline-offset:4px; }
body :is(a,button,input,select,textarea,[tabindex]):focus-visible {
  outline:3px solid var(--ah-focus); outline-offset:3px;
}
body :is(.text-muted,.text-secondary,.form-text,.text-body-secondary) { color:var(--ah-muted)!important; }
body :is(.text-primary,.link-primary) { color:var(--ah-link)!important; }
body :is(.bg-primary,.text-bg-primary) { background-color:var(--ah-orange)!important; color:#252b31!important; }
body :is(.bg-light,.bg-white,.bg-body-tertiary) { background-color:var(--ah-paper)!important; }
body .text-dark { color:var(--ah-ink)!important; }
body .border-primary { border-color:var(--ah-orange)!important; }
body :is(.card,.modal-content,.dropdown-menu,.offcanvas,.popover,.toast) {
  color:var(--ah-ink); background-color:var(--ah-paper); border-color:var(--ah-line);
}
body .card {
  --bs-card-bg:var(--ah-paper); --bs-card-color:var(--ah-ink);
  --bs-card-border-color:var(--ah-line); --bs-card-cap-bg:transparent;
  --bs-card-border-radius:6px; border:1px solid var(--ah-line);
  border-radius:6px; box-shadow:none;
}
body :is(.card-header,.card-footer) { background:transparent; border-color:var(--ah-line); }
body .card-header { padding:22px 24px; }
body .card-body { padding:24px; }
body .card-header :is(h1,h2,h3,.card-title) { margin-bottom:0; }
body .card-header h1 { font-size:28px; }
body .card-header:first-child { border-top:3px solid var(--ah-orange); }
body :is(.btn,.page-link,.dropdown-item) { font-family:inherit; }
body .btn { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:6px; border-radius:5px; font-weight:600; }
body .btn-sm { min-height:38px; }
body .btn-primary {
  --bs-btn-color:#252b31; --bs-btn-bg:var(--ah-orange); --bs-btn-border-color:var(--ah-orange);
  --bs-btn-hover-color:#252b31; --bs-btn-hover-bg:#f6a64d; --bs-btn-hover-border-color:#f6a64d;
  --bs-btn-active-color:#252b31; --bs-btn-active-bg:#e58a29; --bs-btn-active-border-color:#e58a29;
  --bs-btn-disabled-color:#252b31; --bs-btn-disabled-bg:#f3922b; --bs-btn-disabled-border-color:#f3922b;
  background:var(--ah-orange); border-color:var(--ah-orange); color:#252b31;
}
body .btn-primary:hover { background:#f6a64d; border-color:#f6a64d; color:#252b31; }
body .btn-outline-primary {
  --bs-btn-color:var(--ah-link); --bs-btn-border-color:var(--ah-orange);
  --bs-btn-hover-color:#252b31; --bs-btn-hover-bg:var(--ah-orange); --bs-btn-hover-border-color:var(--ah-orange);
  --bs-btn-active-color:#252b31; --bs-btn-active-bg:var(--ah-orange); --bs-btn-active-border-color:var(--ah-orange);
}
body :is(.btn-secondary,.btn-outline-secondary,.btn-light) {
  --bs-btn-color:var(--ah-ink); --bs-btn-bg:var(--ah-paper); --bs-btn-border-color:var(--ah-line);
  --bs-btn-hover-color:var(--ah-ink); --bs-btn-hover-bg:var(--ah-tint); --bs-btn-hover-border-color:var(--ah-muted);
}
body :is(.form-control,.form-select,.input-group-text,.ts-control,.ts-dropdown) {
  color:var(--ah-ink); background-color:var(--ah-field); border-color:var(--ah-line);
  font-family:inherit; font-size:16px; border-radius:5px;
}
body :is(.form-control,.form-select,.ts-control) { min-height:44px; }
body :is(.form-control,.form-select):focus { color:var(--ah-ink); background-color:var(--ah-field); border-color:var(--ah-focus); box-shadow:0 0 0 3px color-mix(in srgb,var(--ah-focus) 20%,transparent); }
body .form-control::placeholder { color:var(--ah-muted); opacity:1; }
body :is(.form-control,.form-select):disabled { background:var(--bs-tertiary-bg); color:var(--ah-muted); }
body .form-label { color:var(--ah-ink); font-weight:600; }
body .form-check-input:checked { background-color:#a85b0c; border-color:#a85b0c; }
body :is(.table,.table-striped,.table-hover) {
  --bs-table-color:var(--ah-ink); --bs-table-bg:transparent; --bs-table-border-color:var(--ah-line);
  --bs-table-striped-color:var(--ah-ink); --bs-table-striped-bg:color-mix(in srgb,var(--ah-ink) 3%,var(--ah-paper));
  --bs-table-hover-color:var(--ah-ink); --bs-table-hover-bg:var(--ah-tint);
}
body .table thead th { color:var(--ah-muted); background:var(--bs-tertiary-bg); text-transform:none; letter-spacing:0; font-size:13px; }
body .table > :not(caption) > * > * { padding:14px 16px; }
body .table-responsive { max-width:100%; }
body :is(.list-group-item,.accordion-item) { background:var(--ah-paper); color:var(--ah-ink); border-color:var(--ah-line); }
body .accordion-button { background:var(--ah-paper); color:var(--ah-ink); font-weight:600; min-height:54px; }
body .accordion-button:not(.collapsed) { background:var(--ah-tint); color:var(--ah-link); box-shadow:inset 0 -1px var(--ah-line); }
body .nav-tabs { border-color:var(--ah-line); gap:4px; }
body :is(.nav-tabs,.nav-pills) .nav-link { color:var(--ah-muted); min-height:44px; border-radius:4px; }
body .nav-tabs .nav-link.active { background:var(--ah-paper); color:var(--ah-ink); border-color:var(--ah-line) var(--ah-line) var(--ah-paper); border-top:3px solid var(--ah-orange); }
body .nav-pills .nav-link.active { background:var(--ah-tint); color:var(--ah-link); }
body .dropdown-menu { --bs-dropdown-bg:var(--ah-paper); --bs-dropdown-link-color:var(--ah-ink); --bs-dropdown-link-hover-bg:var(--ah-tint); --bs-dropdown-link-hover-color:var(--ah-ink); padding:8px; }
body .dropdown-item { min-height:40px; border-radius:4px; }
body .pagination { --bs-pagination-bg:var(--ah-paper); --bs-pagination-color:var(--ah-link); --bs-pagination-border-color:var(--ah-line); --bs-pagination-active-bg:var(--ah-orange); --bs-pagination-active-border-color:var(--ah-orange); --bs-pagination-active-color:#252b31; --bs-pagination-hover-bg:var(--ah-tint); --bs-pagination-hover-color:var(--ah-ink); }
body :is(pre,code) { overflow-wrap:anywhere; }
body pre { background:var(--bs-tertiary-bg); color:var(--ah-ink); border:1px solid var(--ah-line); padding:16px; border-radius:5px; }
body .ck {
  --ck-color-base-background:var(--ah-field); --ck-color-base-foreground:var(--ah-paper);
  --ck-color-base-border:var(--ah-line); --ck-color-text:var(--ah-ink);
  --ck-color-toolbar-background:var(--ah-field); --ck-color-toolbar-border:var(--ah-line);
  --ck-color-panel-background:var(--ah-paper); --ck-color-panel-border:var(--ah-line);
  --ck-color-input-background:var(--ah-field); --ck-color-input-text:var(--ah-ink); --ck-color-input-border:var(--ah-line);
  --ck-color-button-default-hover-background:var(--ah-tint); --ck-color-button-on-background:var(--ah-tint); --ck-color-button-on-color:var(--ah-link);
}
body .ck.ck-editor__editable_inline { min-height:170px; color:var(--ah-ink); background:var(--ah-field); }
/* Preserve semantic success/warning/error colors supplied by Bootstrap. */
body .ah-logo { display:block; width:144px; height:auto; max-height:none; aspect-ratio:508/235; background:transparent; }
[data-bs-theme="dark"] .ah-logo { filter:brightness(0) invert(1); }
.ah-logo-link { display:inline-flex; align-items:center; gap:24px; text-decoration:none; }
.ah-brand-label { color:var(--ah-muted); border-left:1px solid var(--ah-line); padding-left:24px; font-size:14px; font-weight:400; white-space:nowrap; }
.ah-skip-global { position:fixed; top:8px; left:8px; padding:12px 18px; background:var(--ah-paper); z-index:2000; transform:translateY(-160%); }
.ah-skip-global:focus { transform:none; }
.apphill-portal > .container { width:min(1200px,calc(100% - 80px)); max-width:none; padding:0; }
.apphill-portal > .container > header { border-bottom:1px solid var(--ah-line); margin-bottom:40px; }
.apphill-portal > .container > header > .navbar { min-height:122px; padding:20px 0!important; background:transparent; }
.apphill-portal > .container > header .container-fluid { padding:0; gap:24px; }
.apphill-portal > .container > .container { padding:0; max-width:none; }
.apphill-portal .ah-sidebar { padding-right:26px; }
.apphill-portal .ah-sidebar .offcanvas-body { padding:0; }
.apphill-portal .ah-sidebar .nav-link { color:var(--ah-muted); min-height:48px; padding:12px 16px; margin-bottom:5px; border-radius:5px; border-left:3px solid transparent; }
.apphill-portal .ah-sidebar .nav-link:is(.active,:hover) { color:var(--ah-ink); background:var(--ah-tint); border-left-color:var(--ah-orange); }
.apphill-portal .ah-sidebar .nav-link .icon { width:20px; height:20px; }
.apphill-portal .navbar .nav-link { color:var(--ah-muted); font-size:14px; min-height:44px; display:flex; align-items:center; }
.apphill-portal .navbar .js-theme-toggler { min-width:44px; justify-content:center; }
.apphill-portal .navbar .nav-link.active { color:var(--ah-ink); text-decoration:underline; text-decoration-color:var(--ah-orange); text-underline-offset:8px; }
.apphill-portal .navbar .ts-wrapper { min-width:110px; max-width:180px; }
.apphill-portal .breadcrumb { font-size:13px; margin-bottom:24px; }
.apphill-portal .ah-content-column { min-width:0; }
.ah-page-heading { margin-bottom:30px; }
.ah-page-heading h1 { margin-bottom:12px; }
.ah-page-heading p { color:var(--ah-muted); margin:0; }
.apphill-admin .container-tight .text-center > a { display:inline-flex; }
.apphill-admin > .page-center { min-height:0; flex:1; }
.apphill-admin .navbar { --bs-navbar-color:var(--ah-muted); --bs-navbar-active-color:var(--ah-ink); }
.apphill-admin .navbar .nav-link { color:var(--ah-muted); }
body .embed-shell { background:var(--ah-paper); color:var(--ah-ink); border-color:var(--ah-line); font-family:var(--bs-body-font-family); }
body :is(.embed-input,.embed-select,.embed-textarea) { color:var(--ah-ink); background:var(--ah-field); border:1px solid var(--ah-line); min-height:44px; }
.apphill-error .container { min-height:100svh; height:auto; padding:24px; }
.apphill-error .error-container { width:min(880px,100%); padding:32px; border:1px solid var(--ah-line); border-top:4px solid var(--ah-orange); background:var(--ah-paper); border-radius:6px; }
.apphill-error .error-title { font-family:Bahnschrift,"Segoe UI",sans-serif; font-size:clamp(28px,4vw,42px); line-height:1.15; margin:28px 0 16px; }
.apphill-error .error-message { font-size:16px; overflow-wrap:anywhere; }
.apphill-error .link-container { display:flex; flex-wrap:wrap; gap:12px; }
.apphill-error .button { display:inline-flex; align-items:center; min-height:44px; background:var(--ah-orange); color:#252b31; font-weight:600; border-radius:5px; }
.apphill-error .button:hover { background:#f6a64d; color:#252b31; }
.apphill-error :is(.footer,.footer a,.list-horizontal) { color:var(--ah-muted); }
.apphill-error a { color:var(--ah-link); }
.apphill-error code { color:var(--ah-ink); background:var(--bs-tertiary-bg); }
.apphill-error .list-horizontal { display:flex; flex-wrap:wrap; gap:12px; padding:0; font-size:12px; }
.apphill-error .list-horizontal li:before { display:none; }
.apphill-portal #wrapper { min-height:calc(100svh - 320px); }
.apphill-portal #footer { border-top:1px solid var(--ah-line); padding-top:24px; margin-top:40px!important; font-size:12px; }
.apphill-portal .content-block { overflow-wrap:anywhere; }
.apphill-portal .content-block :is(.row,.col-md-12) { min-width:0; }
.apphill-admin .navbar { background:var(--ah-paper); border-color:var(--ah-line); box-shadow:none; }
.apphill-admin .page-wrapper { background:var(--ah-canvas); }
.apphill-admin .navbar-vertical { border-right:1px solid var(--ah-line); }
.apphill-admin .navbar-vertical .nav-link { min-height:44px; color:var(--ah-muted); }
.apphill-admin .navbar-vertical :is(.nav-link.active,.nav-item.active>.nav-link) { background:var(--ah-tint); color:var(--ah-ink); box-shadow:inset 3px 0 var(--ah-orange); }
.apphill-admin .page-header { padding-top:30px; }
.apphill-admin .page-title { font-size:32px; }
.apphill-admin .navbar-brand .ah-logo { width:128px; }
.apphill-admin .container-tight { max-width:470px; }
.apphill-admin .container-tight .card { border-top:4px solid var(--ah-orange); }
.apphill-admin .container-tight .card-body { padding:30px; }
@media(max-width:991.98px) { .ah-brand-label { display:none; } .apphill-admin .page-title { font-size:28px; } }
@media(max-width:767.98px) {
  .apphill-portal > .container { width:calc(100% - 32px); }
  .apphill-portal > .container > header { margin-bottom:28px; }
  .apphill-portal > .container > header > .navbar { min-height:96px; }
  .apphill-portal .navbar-collapse { border-top:1px solid var(--ah-line); margin-top:18px; padding-top:12px; }
  .apphill-portal .navbar .nav-link { padding:10px 12px!important; }
  .apphill-portal .navbar .nav-item { width:100%; }
  .apphill-portal .navbar-nav > .nav-item.d-md-flex:not(:has(.js-theme-toggler)) { display:none; }
  body .card-body { padding:18px; }
  body .card-header { padding:18px; }
  body .nav-tabs { flex-wrap:wrap; }
  body .modal-dialog { margin:12px; }
  .apphill-portal #footer { text-align:center; }
  .ah-logo { width:126px; }
}
@media(prefers-reduced-motion:reduce) { body *,body *::before,body *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media print {
  :root,[data-bs-theme="dark"] { color-scheme:light; --ah-ink:#252b31; --ah-muted:#525b65; --ah-paper:#fff; --ah-canvas:#fff; --ah-line:#cbd1d7; --bs-body-bg:#fff; --bs-body-color:#252b31; }
  body { color:#252b31!important; background:#fff!important; }
  body .card { box-shadow:none; break-inside:avoid; }
  [data-bs-theme="dark"] .ah-logo { filter:none; }
}
