/* Public portal light palette. Geometry and typography stay in the original stylesheets. */
:root,
html,
body.ps-body,
body.xb-home,
body.join-body {
  color-scheme: light;
}

/* Shared portal pages */
html,
body.ps-body,
.ps-outer {
  background: #f3f2ed;
  color: #3b4843;
}

body.ps-body .ps-shell {
  border-color: #d8dfda;
  background:
    radial-gradient(900px 420px at 12% -8%, rgba(15, 128, 96, 0.10), transparent 55%),
    #fffefa;
}

body.ps-body .ps-nav {
  border-color: #d8dfda;
  background: rgba(255, 254, 250, 0.94);
}

body.ps-body .ps-brand,
body.ps-body .ps-hero h1,
body.ps-body .ps-card h2,
body.ps-body .ps-card h3,
body.ps-body .ps-login-wrap h1,
body.ps-body .ps-price-name,
body.ps-body .ps-price-amt strong,
body.ps-body .ps-price-sub,
body.ps-body .ps-main .section-title,
body.ps-body .ps-main .apply-title,
body.ps-body .ps-main .apply-section h2,
body.ps-body .ps-main .apply-eyebrow,
body.ps-body .ps-main [style*="color:#fff"] {
  color: #293630 !important;
}

body.ps-body .ps-logo {
  fill: #0b8060;
}

body.ps-body .ps-nav-links a,
body.ps-body .ps-footer a,
body.ps-body .ps-hero p,
body.ps-body .ps-price-desc,
body.ps-body .ps-card p,
body.ps-body .ps-field label,
body.ps-body .ps-main .text-muted,
body.ps-body .ps-main .text-primary,
body.ps-body .ps-main .section-subtitle,
body.ps-body .ps-main .apply-lead,
body.ps-body .ps-main .apply-section p,
body.ps-body .ps-main .apply-hint,
body.ps-body .ps-main .apply-label,
body.ps-body [style*="var(--ps-muted)"] {
  color: #66736e !important;
}

body.ps-body .ps-footer,
body.ps-body .ps-price-table th,
body.ps-body .ps-price-amt span,
body.ps-body .ps-price-note,
body.ps-body .ps-login-wrap .sub,
body.ps-body .ps-login-wrap .hint,
body.ps-body [style*="var(--ps-dim)"] {
  color: #87928d !important;
}

body.ps-body .ps-nav-links a:hover,
body.ps-body .ps-nav-links a.active {
  background: #e4f1ea;
  color: #086a50;
}

body.ps-body .ps-btn-solid,
body.ps-body .ps-main .btn-portal-primary,
body.ps-body .ps-main .btn-primary,
body.ps-body .ps-main .apply-form button[type="submit"],
body.ps-body .ps-main .apply-shell .btn {
  background: #0b8060 !important;
  color: #ffffff !important;
}

body.ps-body .ps-btn-solid:hover {
  background: #096f54;
  color: #ffffff;
}

body.ps-body .ps-btn-border {
  background: #8fbca9;
  color: #0a7054;
}

body.ps-body .ps-btn-border::before {
  background: #fffefa;
}

body.ps-body .ps-footer,
body.ps-body .ps-footer a:hover,
body.ps-body .ps-login-wrap .hint a {
  color: #56645e;
}

body.ps-body .ps-footer,
body.ps-body .ps-nav,
body.ps-body .ps-price-table,
body.ps-body .ps-price-table th,
body.ps-body .ps-price-table td,
body.ps-body .ps-card,
body.ps-body .ps-field input,
body.ps-body .ps-field select,
body.ps-body .ps-field textarea,
body.ps-body .ps-main .form-control,
body.ps-body .ps-main .form-select,
body.ps-body .ps-main .card,
body.ps-body .ps-main .portal-login-card,
body.ps-body .ps-main .feature-box,
body.ps-body .ps-main .dest-card,
body.ps-body .ps-main .testimonial-card,
body.ps-body .ps-main .apply-hero,
body.ps-body .ps-main .apply-section,
body.ps-body .ps-main .apply-input,
body.ps-body .ps-main .apply-shell input,
body.ps-body .ps-main .apply-shell select,
body.ps-body .ps-main .apply-shell textarea,
body.ps-body .ps-main .apply-alert,
body.ps-body .ps-main .service-price-card,
body.ps-body [style*="var(--ps-line)"] {
  border-color: #d8dfda !important;
}

body.ps-body .ps-price-table,
body.ps-body .ps-card,
body.ps-body .ps-main .card,
body.ps-body .ps-main .portal-login-card,
body.ps-body .ps-main .feature-box,
body.ps-body .ps-main .dest-card,
body.ps-body .ps-main .testimonial-card,
body.ps-body .ps-main .service-price-card {
  background: #fffefa !important;
  color: #3b4843 !important;
}

body.ps-body .ps-price-table th {
  background: #f0f4f0;
}

body.ps-body .ps-price-table tbody tr:hover {
  background: #f5f8f5;
}

body.ps-body .ps-field input,
body.ps-body .ps-field select,
body.ps-body .ps-field textarea,
body.ps-body .ps-main .form-control,
body.ps-body .ps-main .form-select,
body.ps-body .ps-main .apply-input,
body.ps-body .ps-main .apply-shell input,
body.ps-body .ps-main .apply-shell select,
body.ps-body .ps-main .apply-shell textarea {
  background: #ffffff !important;
  color: #33413b !important;
}

body.ps-body .ps-field input::placeholder,
body.ps-body .ps-field textarea::placeholder,
body.ps-body .ps-main input::placeholder,
body.ps-body .ps-main textarea::placeholder {
  color: #98a39e !important;
}

body.ps-body .ps-field input:focus,
body.ps-body .ps-field select:focus,
body.ps-body .ps-field textarea:focus,
body.ps-body .ps-main input:focus,
body.ps-body .ps-main select:focus,
body.ps-body .ps-main textarea:focus {
  border-color: #5aa88c !important;
  outline-color: #5aa88c;
}

body.ps-body .ps-alert,
body.ps-body .ps-main .alert-danger,
body.ps-body .ps-main .apply-alert-error {
  border-color: #e4aaa6 !important;
  background: #fff1ef !important;
  color: #a23e36 !important;
}

body.ps-body .ps-alert.ok,
body.ps-body .ps-main .apply-alert-success,
body.ps-body .ps-alert[style*="52,211,153"] {
  border-color: #a8d7c3 !important;
  background: #edf8f2 !important;
  color: #176c50 !important;
}

body.ps-body .ps-alert[style*="56,189,248"] {
  border-color: #a9cbd9 !important;
  background: #eef7fa !important;
  color: #315f70 !important;
}

body.ps-body .ps-main .apply-page,
body.ps-body .ps-main .apply-hero,
body.ps-body .ps-main .apply-body,
body.ps-body .ps-main .apply-shell,
body.ps-body .ps-main .apply-section,
body.ps-body .ps-main .page-banner,
body.ps-body .ps-main .bg-portal-light {
  background: transparent !important;
  color: #3b4843 !important;
}

body.ps-body .ps-main .apply-hero,
body.ps-body .ps-main .apply-section {
  background: #fffefa !important;
}

/* Price-list cards and sheet */
body.ps-body .xb-pl-group-title {
  background-image: none;
  color: #0b8060;
}

body.ps-body .xb-pl-empty,
body.ps-body .xb-pl-tip,
body.ps-body .xb-pl-card em,
body.ps-body .xb-pl-sheet-empty {
  color: #7b8781;
}

body.ps-body .xb-pl-card {
  border-color: #d8dfda;
  background: #fffefa;
  color: #3b4843;
}

body.ps-body .xb-pl-card:hover {
  border-color: #86bda8;
  background: #edf7f1;
}

body.ps-body .xb-pl-icon {
  border-color: #dce3df;
  background: #f0f4f0;
}

body.ps-body .xb-pl-icon span {
  color: #75817b !important;
}

body.ps-body .xb-pl-card strong,
body.ps-body .xb-pl-sheet-hd h3 {
  color: #293630;
}

body.ps-body .xb-pl-mask {
  background: rgba(65, 78, 71, 0.32);
}

body.ps-body .xb-pl-sheet {
  border-color: #d8dfda;
  background: #fffefa;
}

body.ps-body .xb-pl-handle {
  background: #c1cbc5;
}

body.ps-body .xb-pl-sheet-hd,
body.ps-body .xb-pl-sheet-body img {
  border-color: #d8dfda;
}

body.ps-body .xb-pl-sheet-hd button {
  border-color: #d4ddd7;
  background: #f1f4f1;
  color: #4e5d56;
}

body.ps-body .xb-pl-sheet-body img {
  background: #f3f5f2;
}

/* Home page */
body.xb-home,
body.xb-home .xb-shell {
  background: #f3f2ed;
  color: #34413c;
}

body.xb-home .xb-frame {
  background: #edf2ed;
}

body.xb-home .xb-atmosphere {
  background:
    radial-gradient(ellipse 80% 50% at 50% 40%, rgba(255, 255, 252, 0.92), transparent 70%),
    radial-gradient(ellipse 60% 40% at 70% 70%, rgba(15, 128, 96, 0.16), transparent 65%),
    #e9efea !important;
}

body.xb-home .xb-video-shade {
  background:
    linear-gradient(180deg, rgba(248, 249, 245, 0.88) 0%, rgba(246, 248, 244, 0.76) 40%, rgba(238, 243, 238, 0.92) 100%),
    radial-gradient(ellipse at center, transparent 30%, rgba(232, 239, 233, 0.72) 100%);
}

body.xb-home .xb-brand,
body.xb-home .xb-brand-text,
body.xb-home .xb-center h1,
body.xb-home .xb-col p,
body.xb-home .xb-mid-title {
  color: #293630;
}

body.xb-home .xb-logo {
  fill: #0b8060;
}

body.xb-home .xb-side-copy {
  color: #53625b;
}

body.xb-home .xb-side-label,
body.xb-home .xb-mid-links a {
  color: #65736d;
}

body.xb-home .xb-side-num {
  color: #88938e;
}

body.xb-home .xb-dots span {
  border-color: #83958c;
}

body.xb-home .xb-mid-links a:hover {
  color: #0b7357;
}

body.xb-home .xb-btn-solid,
body.xb-home .xb-btn-sm,
body.xb-home .xb-mini,
body.xb-home .xb-cs-float {
  background: #0b8060;
  color: #ffffff;
}

body.xb-home .xb-btn-solid:hover,
body.xb-home .xb-btn-sm:hover,
body.xb-home .xb-cs-float:hover,
body.xb-home .xb-cs-float:focus-visible {
  background: #096f54;
  color: #ffffff;
}

body.xb-home .xb-btn-border {
  background: #8fbca9;
  color: #0a7054;
}

body.xb-home .xb-btn-border::before {
  background: rgba(255, 254, 250, 0.94);
}

body.xb-home .xb-btn-border:hover {
  background: #73aa93;
}

body.xb-home .xb-cs-modal-backdrop {
  background: rgba(64, 77, 70, 0.34);
}

body.xb-home .xb-cs-modal-panel {
  border-color: #d8dfda;
  background: #fffefa;
  color: #34413c;
}

body.xb-home .xb-cs-modal-close {
  background: transparent;
  color: #69766f;
}

body.xb-home .xb-cs-modal-close:hover {
  color: #293630;
}

body.xb-home .xb-cs-modal-qr {
  background: #ffffff;
}

/* Join and application-status pages */
body.join-body {
  background: #f3f2ed;
  color: #3b4843;
}

body.join-body .join-top {
  border-color: #d8dfda;
  background: #fffefa;
}

body.join-body .join-brand {
  color: #293630;
}

body.join-body .join-brand svg {
  color: #0b8060;
}

body.join-body .join-top-links a {
  color: #66736e;
}

body.join-body .join-top-links a:hover {
  background: #eef4f0;
  color: #0a7054;
}

body.join-body .join-link-btn,
body.join-body .join-submit {
  background: #0b8060 !important;
  color: #ffffff !important;
}

body.join-body .join-sheet {
  border-color: #d8dfda;
  background: #fffefa;
}

body.join-body .join-sheet-head,
body.join-body .join-footbar {
  border-color: #d8dfda;
  background: #f0f4f0;
}

body.join-body .join-sheet-head h1,
body.join-body .result-dl dd,
body.join-body .result-top .mono.big {
  color: #293630;
}

body.join-body .join-sheet-head p,
body.join-body .join-table thead th,
body.join-body .join-hint,
body.join-body .join-foot-note,
body.join-body .result-top .muted,
body.join-body .result-dl dt,
body.join-body .join-page-foot {
  color: #718079;
}

body.join-body .join-sheet-actions a,
body.join-body .join-alert a,
body.join-body .join-foot-note a {
  color: #0b8060;
}

body.join-body .join-alert,
body.join-body .join-table thead th,
body.join-body .join-table td,
body.join-body .col-sec,
body.join-body .join-footbar,
body.join-body .result-top,
body.join-body .result-dl > div {
  border-color: #d8dfda;
}

body.join-body .join-alert.ok {
  background: #edf8f2;
  color: #176c50;
}

body.join-body .join-alert.err {
  background: #fff1ef;
  color: #a23e36;
}

body.join-body .join-alert code {
  background: #e4ebe6;
  color: #46554e;
}

body.join-body .join-table thead th,
body.join-body .col-sec {
  background: #f0f4f0;
}

body.join-body .join-table tbody tr:hover td {
  background: #f7f9f7;
}

body.join-body .col-sec,
body.join-body .col-label {
  color: #53625b;
}

body.join-body .col-label em {
  color: #ad7310;
}

body.join-body .join-table input[type="text"],
body.join-body .join-table input[type="password"],
body.join-body .join-table input[type="email"],
body.join-body .join-table input[type="tel"],
body.join-body .join-table input[type="number"],
body.join-body .join-table input:not([type]),
body.join-body .join-table input.mono,
body.join-body .join-table .join-select,
body.join-body .join-table textarea {
  border-color: #cbd5cf;
  background: #ffffff;
  color: #33413b;
  outline-color: #5aa88c;
}

body.join-body .join-table input:focus,
body.join-body .join-table .join-select:focus,
body.join-body .join-table textarea:focus {
  border-color: #5aa88c;
}

body.join-body .join-hint.ok {
  color: #217a5d;
}

body.join-body .join-hint.bad {
  color: #b44840;
}

body.join-body .join-opt {
  border-color: #d4ddd7;
  background: #f7f9f7;
  color: #46554e;
}

body.join-body .join-opt:hover {
  border-color: #8bbba8;
}

body.join-body .join-opt:has(input:checked) {
  border-color: #5aa88c;
  background: #e6f3ec;
}

body.join-body .status-pill {
  background: #e8ede9;
  color: #5a6861;
}

body.join-body .status-pill.pending {
  background: #fff4d8;
  color: #95610b;
}

body.join-body .status-pill.approved {
  background: #e5f5ec;
  color: #1b7356;
}

body.join-body .status-pill.rejected {
  background: #fdebea;
  color: #a23e36;
}

body.join-body .join-upload-btn {
  border-color: #79b59e;
  background: #edf7f1;
  color: #176c50;
}

body.join-body .join-upload-btn:hover {
  border-color: #4e9c80;
}

body.join-body .join-upload-preview {
  border-color: #d8dfda;
  background: #f0f4f0;
}
