/* Fiberserver kit: colour tokens and the theme's own components. Safe on every page (only fs-* classes, button
   variants and component hooks); fs-base.css adds the global Bootstrap tuning on pages fully built on the theme. */

/* ---------- tokens (brand colours come from the theme settings, see the layouts) */
:root{
  --fs-brand:#087f5b;--fs-brand-rgb:8,127,91;--fs-accent:#0d9488;--fs-accent-rgb:13,148,136;
  --fs-ink:#132e2a;--fs-text:#33463f;--fs-muted:#5f7068;--fs-line:#dce7e1;--fs-soft:#f3f8f5;--fs-page:#f6f9f7;--fs-surface:#fff;
  --fs-brand-hover:color-mix(in srgb,var(--fs-brand) 86%,#000);--fs-brand-press:color-mix(in srgb,var(--fs-brand) 74%,#000);
  --fs-brand-tint:color-mix(in srgb,var(--fs-brand) 9%,var(--fs-surface));--fs-brand-tint-2:color-mix(in srgb,var(--fs-brand) 16%,var(--fs-surface));
  --fs-brand-text:color-mix(in srgb,var(--fs-brand) 88%,var(--fs-ink));
  --fs-ring:0 0 0 .22rem rgba(var(--fs-brand-rgb),.18);
  --fs-r:12px;--fs-r-sm:8px;--fs-r-lg:18px;
  --fs-shadow-sm:0 1px 2px rgba(19,46,42,.06);--fs-shadow:0 10px 30px -12px rgba(19,46,42,.22);--fs-shadow-lg:0 24px 60px -24px rgba(19,46,42,.38);
  --fs-font:Manrope,"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  --fs-dark-1:#0c2420;--fs-dark-2:#0f3a31;--fs-on-dark:#e8f3ee;--fs-on-dark-muted:#a9c4b9;
}
[data-bs-theme=dark]{
  --fs-ink:#e9f1ed;--fs-text:#c9d6d0;--fs-muted:#93a69d;--fs-line:#25403a;--fs-soft:#13241f;--fs-page:#0b1714;--fs-surface:#101e1a;
  --fs-brand-tint:color-mix(in srgb,var(--fs-brand) 18%,var(--fs-surface));--fs-brand-tint-2:color-mix(in srgb,var(--fs-brand) 28%,var(--fs-surface));
  --fs-brand-text:color-mix(in srgb,var(--fs-brand) 55%,#fff);
  --fs-shadow:0 10px 30px -12px rgba(0,0,0,.6);--fs-shadow-lg:0 24px 60px -24px rgba(0,0,0,.7);
}

/* ---------- text utilities */
.fs-small{font-size:.85rem}
.fs-xsmall{font-size:.8rem}
.fs-num{font-variant-numeric:tabular-nums}
.fs-tight{letter-spacing:-.02em}

/* ---------- button variants */
.btn-tint{--bs-btn-color:var(--fs-ink);--bs-btn-bg:var(--fs-brand-tint);--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--fs-brand-text);--bs-btn-hover-bg:var(--fs-brand-tint-2);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--fs-brand-text);--bs-btn-active-bg:var(--fs-brand-tint-2);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:var(--fs-muted);--bs-btn-disabled-bg:var(--fs-soft);--bs-btn-disabled-border-color:transparent}
.btn-outline{--bs-btn-color:var(--fs-ink);--bs-btn-bg:var(--fs-surface);--bs-btn-border-color:var(--fs-line);--bs-btn-hover-color:var(--fs-brand-text);--bs-btn-hover-bg:var(--fs-soft);--bs-btn-hover-border-color:color-mix(in srgb,var(--fs-brand) 35%,var(--fs-line));--bs-btn-active-color:var(--fs-brand-text);--bs-btn-active-bg:var(--fs-brand-tint);--bs-btn-active-border-color:var(--fs-brand)}
.btn-quiet{--bs-btn-color:var(--fs-text);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--fs-brand-text);--bs-btn-hover-bg:var(--fs-brand-tint);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--fs-brand-text);--bs-btn-active-bg:var(--fs-brand-tint-2);--bs-btn-active-border-color:transparent}
.fs-linkbtn{display:inline;padding:0;border:0;background:none;color:var(--fs-brand-text);font:inherit;font-weight:650;cursor:pointer}
.fs-linkbtn:hover{color:var(--fs-brand-hover);text-decoration:underline;text-underline-offset:3px}
.fs-linkbtn:disabled{color:var(--fs-muted);cursor:default;text-decoration:none}

/* ---------- field marks */
.form-label .fs-opt{font-weight:500;color:var(--fs-muted)}
.form-label .fs-req{color:#d14343}

/* ---------- inline messages */
.fs-note{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem .9rem;border:1px solid transparent;border-radius:var(--fs-r);font-size:.85rem;line-height:1.45}
.fs-note>i{flex-shrink:0;line-height:1.45}
.fs-note-danger{color:#9b2c2c;background:#fdf1f1;border-color:#f6d3d3}
.fs-note-warning{color:#8a5a00;background:#fff8e6;border-color:#f6e2ad}
.fs-note-success{color:#0b5e43;background:#eaf7f1;border-color:#c5e9d8}
[data-bs-theme=dark] .fs-note-danger{color:#f3b4b4;background:#2a1414;border-color:#4a2222}
[data-bs-theme=dark] .fs-note-warning{color:#f0d18a;background:#2a2210;border-color:#4a3c1a}
[data-bs-theme=dark] .fs-note-success{color:#9fe0c3;background:#0f2a20;border-color:#1d4a38}

/* ---------- round icon above a heading */
.fs-badge-ico{display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;margin-bottom:1rem;border-radius:16px;background:var(--fs-brand-tint);color:var(--fs-brand-text);font-size:1.5rem;box-shadow:inset 0 0 0 1px var(--fs-brand-tint-2)}
.fs-badge-ico.is-success{background:#e7f6ef;color:#0b6b4b;box-shadow:inset 0 0 0 1px #c6eadb}
.fs-badge-ico.is-danger{background:#fdeeee;color:#b42318;box-shadow:inset 0 0 0 1px #f7d2d2}

/* ---------- divider */
.fs-or{display:flex;align-items:center;gap:.8rem;color:var(--fs-muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.fs-or::before,.fs-or::after{content:"";flex:1;border-top:1px solid var(--fs-line)}

/* ---------- language / currency picker */
.fs-locale-btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--fs-line);border-radius:99px;padding:.35rem .8rem;background:transparent;color:var(--fs-text);font-size:.8125rem;font-weight:650;line-height:1.2;transition:border-color .2s,color .2s,background-color .2s}
.fs-locale-btn:hover{border-color:color-mix(in srgb,var(--fs-brand) 40%,var(--fs-line));color:var(--fs-brand-text)}
.fs-locale-btn .fs-locale-sep{opacity:.45}
.fs-locale-btn .fs-locale-caret{font-size:.7rem;transition:transform .2s}
.fs-locale-btn[aria-expanded=true] .fs-locale-caret{transform:rotate(180deg)}
.fs-on-dark .fs-locale-btn{border-color:rgba(232,243,238,.22);color:var(--fs-on-dark)}
.fs-on-dark .fs-locale-btn:hover{border-color:rgba(232,243,238,.5);background:rgba(255,255,255,.06);color:#fff}
.fs-locale-menu{min-width:15.5rem;padding:.5rem;border-radius:var(--fs-r-lg)}
.fs-locale-menu .fs-locale-tabs{gap:.25rem;margin-bottom:.5rem;background:var(--fs-soft);padding:.2rem;border-radius:var(--fs-r)}
.fs-locale-menu .fs-locale-tabs .nav-link{font-size:.78rem;font-weight:700;padding:.35rem .5rem;border-radius:var(--fs-r-sm)}
.fs-locale-menu .fs-locale-tabs .nav-link:not(.active){color:var(--fs-muted)}
.fs-locale-menu .locale-search{margin-bottom:.5rem;font-size:.8rem}
.fs-locale-menu .locale-list{display:flex;flex-direction:column;gap:.125rem;max-height:12.5rem;overflow-y:auto;padding-right:.25rem}
.fs-locale-menu .dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.85rem;padding:.45rem .65rem;border-radius:var(--fs-r-sm);min-width:0}
.fs-locale-menu .dropdown-item .bi-check2{visibility:hidden;color:var(--fs-brand-text)}
.fs-locale-menu .dropdown-item.active{background:var(--fs-brand-tint);color:var(--fs-ink)}
.fs-locale-menu .dropdown-item.active .bi-check2{visibility:visible}

/* ---------- toasts (fs-core.js) */
.wstyle-toast-container{position:fixed;top:1rem;right:1rem;z-index:1090;display:flex;flex-direction:column;gap:.5rem;width:min(22rem,calc(100vw - 2rem));pointer-events:none}
[dir=rtl] .wstyle-toast-container{right:auto;left:1rem}
.wstyle-toast{pointer-events:auto;width:100%;margin:0!important;background:var(--fs-surface);color:var(--fs-ink);border:1px solid var(--fs-line);border-radius:var(--fs-r);box-shadow:var(--fs-shadow);font-size:.875rem;overflow:hidden;position:relative}
.wstyle-toast::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--fs-brand)}
.wstyle-toast-danger::before{background:#d14343}
.wstyle-toast-warning::before{background:#e0a100}
.wstyle-toast-info::before{background:#1684cd}
.wstyle-toast .toast-body{padding:.8rem .9rem .8rem 1.1rem;line-height:1.4}
.wstyle-toast .toast-body .bi{font-size:1.05rem}
.wstyle-toast .toast-action{font-size:.8rem;font-weight:700;white-space:nowrap;margin-right:.25rem;text-decoration:none}
.wstyle-toast .btn-close{font-size:.65rem}

/* ---------- collapsible panels (fs-core.js collapse) */
.wui-collapse{--wui-collapse-duration:.4s;display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--wui-collapse-duration) cubic-bezier(.22,1,.36,1)}
.wui-collapse>.wui-collapse-inner{min-height:0;min-width:0;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-.35rem);transition:opacity .3s ease,transform var(--wui-collapse-duration) cubic-bezier(.22,1,.36,1),visibility 0s linear var(--wui-collapse-duration)}
.wui-collapse.wui-show{grid-template-rows:1fr}
.wui-collapse.wui-show>.wui-collapse-inner{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease,transform var(--wui-collapse-duration) cubic-bezier(.22,1,.36,1),visibility 0s}
.wui-collapse.wui-shown>.wui-collapse-inner{overflow:visible}
.wui-collapse-horizontal{grid-template-rows:none;grid-template-columns:0fr;transition-property:grid-template-columns}
.wui-collapse-horizontal.wui-show{grid-template-columns:1fr}
@media print{.wui-collapse{grid-template-rows:auto!important}.wui-collapse>.wui-collapse-inner{opacity:1!important;visibility:visible!important;transform:none!important}}

/* ---------- password strength meter (fs-core.js sets data-strength 0-4) */
.wstyle-password-strength{display:flex;gap:.3rem;margin-top:.55rem}
.wstyle-password-strength .strength-bar{height:.3rem;flex:1;border-radius:9px;background:var(--fs-line);transition:background-color .25s}
.wstyle-password-strength[data-strength="1"] .strength-bar:nth-child(-n+1){background:#d14343}
.wstyle-password-strength[data-strength="2"] .strength-bar:nth-child(-n+2){background:#e0a100}
.wstyle-password-strength[data-strength="3"] .strength-bar:nth-child(-n+3){background:#2f9e6e}
.wstyle-password-strength[data-strength="4"] .strength-bar{background:var(--fs-brand)}
[data-role=strength-label]{display:block;min-height:1.1rem;margin-top:.25rem;font-size:.78rem;font-weight:600}

/* ---------- six-box code input */
.otp-group{display:flex;gap:.5rem;justify-content:center;max-width:21.5rem;margin-inline:auto}
.otp-input.form-control{flex:1 1 0;min-width:0;max-width:3.3rem;height:3.6rem;padding:0;text-align:center;font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;border-radius:var(--fs-r)}
.otp-input.form-control.is-valid,.otp-input.form-control.is-invalid{background-image:none}
.otp-input.form-control.is-valid{border-color:var(--fs-brand)}

/* ---------- captcha slot rendered by WISECP */
.captcha-slot{display:flex;justify-content:center}

