/* =============================================================================
   FimuroHost client area — v3
   Design: the "fimuro-whmcs-template" look, ported onto the WHMCS 9 Nexus theme.
   Section 1 is that design's stylesheet (tokens, shell, components, auth).
   Section 2 bridges the pages this theme does NOT rewrite — they are Nexus /
   Bootstrap 4 markup rendered inside the same shell, so they are restyled here.
   Dark mode: html.dark  (localStorage key "fh-theme", shared with fimurohost.com)
   ========================================================================== */

@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/Geist-Variable.woff2") format("woff2")}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/GeistMono-Variable.woff2") format("woff2")}
@font-face{font-family:"Noto Sans Bengali";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/noto-sans-bengali-bengali-400-normal.woff2") format("woff2")}

/* ===================================== 1. design stylesheet (verbatim) === */
/* ==========================================================================
   FimuroHost — WHMCS client area
   One stylesheet: tokens, shell, components, auth pages.
   Loaded last, so `!important` overrides Bootstrap 3 where needed.
   ========================================================================== */

:root {
  --p: #155DFC; --p-hi: #0B49D0; --p-tint: #EDF3FF; --on-p: #FFFFFF; --link: #155DFC;
  --acc: #C0421C; --acc-tint: #FDF0EA; --on-acc: #FFFFFF;
  --bg: #F6F9FD; --card: #FFFFFF; --card-hi: #F6F9FD; --side: #FFFFFF;
  --bd: #E3E9F2; --bd-soft: #EDF1F8;
  --tx: #0A1020; --tx2: #35415A; --mut: #5C6A83;
  --ok: #0B7047; --ok-tint: #E7F6EF;
  --warn: #8A5A00; --warn-tint: #FDF5E3;
  --bad: #C0421C; --bad-tint: #FDF0EA;
  --r: 14px; --r-sm: 10px; --r-lg: 18px;
  --sans: "Geist", "Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --sidebar-w: 256px;
}

html.dark {
  --p: #155DFC; --p-hi: #3D7BFF; --p-tint: #101E3D; --link: #7BA6FF;
  --acc: #F0885E; --acc-tint: #2A1811; --on-acc: #1A0E08;
  --bg: #0A0F1B; --card: #0E1524; --card-hi: #131C2E; --side: #060910;
  --bd: #1E2942; --bd-soft: #161F33;
  --tx: #F5F8FC; --tx2: #C3CEDF; --mut: #8C9AB3;
  --ok: #34D399; --ok-tint: #0C2B22;
  --warn: #F5B547; --warn-tint: #2E2311;
  --bad: #F0885E; --bad-tint: #2A1811;
}

* { box-sizing: border-box; }

body.fh-body {
  margin: 0;
  background: var(--bg);
  color: var(--tx);
  font-family: var(--sans);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--link); text-decoration: none; }
a:hover { color: var(--p-hi); text-decoration: none; }

.fh-sr {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip-path: inset(50%);
}

/* =============================================================== shell === */

.fh-app { display: flex; min-height: 100vh; }

.fh-sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: var(--side);
  border-right: 1px solid var(--bd-soft);
  padding: 22px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;            /* the sidebar itself never scrolls with the page… */
}
.fh-sidebar .fh-nav {          /* …only the menu list does, if it is taller than the screen */
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  margin: 0 -6px; padding: 0 6px;
  scrollbar-width: thin; scrollbar-color: var(--bd) transparent;
}
.fh-sidebar .fh-nav::-webkit-scrollbar { width: 6px; }
.fh-sidebar .fh-nav::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 6px; }
.fh-sidebar .fh-side-foot { flex-shrink: 0; }
.fh-logo { padding-left: 8px; }

.fh-logo {
  display: flex; align-items: center; gap: 9px;
  padding: 2px 4px;
  color: var(--p);
}
.fh-logo span {
  font-size: 18px; font-weight: 800; letter-spacing: -0.035em; color: var(--tx);
}

.fh-nav { display: flex; flex-direction: column; gap: 3px; }

.fh-nav-label {
  padding: 0 12px 6px 12px;
  font-size: 11px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--mut);
}

.fh-nav-item {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  font-size: 14px; font-weight: 500;
  color: var(--mut) !important;
}

.fh-nav-item i { width: 17px; text-align: center; font-size: 14px; opacity: .85; }
.fh-nav-item:hover { background: var(--card-hi); color: var(--tx) !important; }
.fh-nav-item.active,
.fh-nav-item.fh-on {
  background: var(--card-hi);
  border-color: var(--bd-soft);
  color: var(--tx) !important;
  font-weight: 600;
}

.fh-nav-sub { padding-left: 40px; font-size: 13.5px; }

.fh-badge {
  margin-left: auto;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 20px; padding: 0 6px;
  border-radius: 999px;
  background: var(--card-hi);
  color: var(--mut);
  font-family: var(--mono); font-size: 11px; font-weight: 600; font-style: normal;
}

.fh-side-foot { margin-top: auto; display: flex; flex-direction: column; gap: 14px; }

.fh-help {
  display: flex; flex-direction: column; gap: 8px;
  padding: 16px; border-radius: 13px; background: var(--p-tint);
}
.fh-help strong { font-size: 13.5px; font-weight: 650; color: var(--tx); }
.fh-help span { font-size: 12.5px; line-height: 1.5; color: var(--mut); }
.fh-help a { font-size: 13px; font-weight: 600; color: var(--link) !important; }

.fh-user {
  display: flex; align-items: center; gap: 11px;
  padding: 12px; border-radius: 13px;
  background: var(--card-hi); border: 1px solid var(--bd-soft);
}
.fh-avatar {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 999px;
  background: var(--p-tint); color: var(--link);
  font-size: 13px; font-weight: 700;
}
.fh-user-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fh-user-text strong {
  font-size: 13.5px; font-weight: 650; color: var(--tx);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fh-user-text em { font-family: var(--mono); font-size: 11px; font-style: normal; color: var(--mut); }
.fh-user .fh-icon-btn { margin-left: auto; }

/* ---------------------------------------------------------------- topbar */

.fh-main { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; }

.fh-topbar {
  height: 76px; flex-shrink: 0;
  padding: 0 28px;
  background: var(--side);
  border-bottom: 1px solid var(--bd-soft);
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
}

.fh-crumb { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fh-crumb > span { font-family: var(--mono); font-size: 11.5px; color: var(--mut); }
.fh-crumb h1 {
  margin: 0; font-size: 21px; font-weight: 700; letter-spacing: -0.025em; color: var(--tx);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.fh-top-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

.fh-search {
  display: flex; align-items: center; gap: 9px;
  width: 290px; height: 40px; padding: 0 13px; margin: 0;
  border: 1px solid var(--bd); border-radius: 11px; background: var(--card);
  color: var(--mut);
}
.fh-search input {
  flex-grow: 1; min-width: 0; border: 0; background: transparent; outline: none;
  font-family: var(--sans); font-size: 13.5px; color: var(--tx);
}

.fh-currency { margin: 0; }
.fh-currency select {
  height: 40px; padding: 0 10px;
  border: 1px solid var(--bd); border-radius: 11px;
  background: var(--card); color: var(--tx2);
  font-family: var(--mono); font-size: 13px;
}

.fh-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border: 1px solid var(--bd); border-radius: 11px;
  background: var(--card); color: var(--tx2) !important;
  cursor: pointer;
}
.fh-icon-btn:hover { border-color: var(--p); }
.fh-user .fh-icon-btn { width: 32px; height: 32px; border-radius: 9px; }

/* --------------------------------------------------------------- content */

.fh-content {
  flex-grow: 1;
  padding: 26px 28px 32px 28px;
  display: flex; flex-direction: column; gap: 20px;
}

.fh-content-plain { padding: 0; }

.fh-plain { min-height: 100vh; background: var(--bg); }

.fh-foot {
  padding: 20px 28px;
  border-top: 1px solid var(--bd-soft);
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  font-size: 13px; color: var(--mut);
}
.fh-foot-links { display: flex; gap: 20px; }
.fh-foot-links a { color: var(--mut) !important; }
.fh-foot-links a:hover { color: var(--link) !important; }

/* ========================================================== components === */

.fh-panel {
  background: var(--card);
  border: 1px solid var(--bd);
  border-radius: 16px;
  padding: 22px;
}

.fh-panel-head {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding-bottom: 16px; margin-bottom: 18px;
  border-bottom: 1px solid var(--bd-soft);
}
.fh-panel-head h2, .fh-panel-head h3 {
  margin: 0; font-size: 16px; font-weight: 650; letter-spacing: -0.02em; color: var(--tx);
}
.fh-panel-head p { margin: 3px 0 0 0; font-size: 13px; color: var(--mut); }

.fh-grid { display: grid; gap: 16px; }
.fh-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.fh-cols { display: flex; gap: 20px; align-items: flex-start; }
.fh-col-main { flex-grow: 2; flex-basis: 0; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.fh-col-side { flex-grow: 1; flex-basis: 0; min-width: 0; display: flex; flex-direction: column; gap: 20px; }

/* ------------------------------------------------------------------ kpi */

.fh-kpi {
  display: flex; flex-direction: column; gap: 14px;
  padding: 20px; background: var(--card);
  border: 1px solid var(--bd); border-radius: 16px;
}
.fh-kpi-top { display: flex; align-items: center; justify-content: space-between; }
.fh-kpi-top span { font-size: 13px; color: var(--mut); }
.fh-kpi-ico {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 9px;
  background: var(--p-tint); color: var(--link);
}
.fh-kpi-val {
  font-family: var(--mono); font-size: 30px; font-weight: 600;
  letter-spacing: -0.035em; color: var(--tx);
}
.fh-kpi-sub { font-size: 12.5px; color: var(--mut); }

.tone-ok   .fh-kpi-ico { background: var(--ok-tint);   color: var(--ok); }
.tone-warn .fh-kpi-ico { background: var(--warn-tint); color: var(--warn); }
.tone-bad  .fh-kpi-ico { background: var(--bad-tint);  color: var(--bad); }

/* ----------------------------------------------------------------- pills */

.fh-pill {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 5px 11px; border-radius: 999px;
  background: var(--card-hi); color: var(--mut);
  font-size: 12px; font-weight: 600; white-space: nowrap;
}
.fh-pill::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: currentColor; }
.fh-pill-ok   { background: var(--ok-tint);   color: var(--ok); }
.fh-pill-warn { background: var(--warn-tint); color: var(--warn); }
.fh-pill-bad  { background: var(--bad-tint);  color: var(--bad); }
.fh-pill-info { background: var(--p-tint);    color: var(--link); }

/* ---------------------------------------------------------------- tables */

.fh-table { width: 100%; border-collapse: collapse; }
.fh-table th {
  padding: 0 14px 12px 14px; text-align: left;
  font-size: 12px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--mut);
}
.fh-table td {
  padding: 14px; border-top: 1px solid var(--bd-soft);
  font-size: 13.5px; color: var(--tx2); vertical-align: middle;
}
.fh-table tr:hover td { background: var(--card-hi); }
.fh-table .fh-strong { font-size: 14px; font-weight: 600; color: var(--tx); }
.fh-table .fh-mono { font-family: var(--mono); font-size: 13px; }
.fh-table .fh-right { text-align: right; }
.fh-table .fh-act { font-size: 13.5px; font-weight: 600; color: var(--link); }

.fh-empty {
  padding: 48px 20px; text-align: center;
  border: 1px dashed var(--bd); border-radius: var(--r);
  color: var(--mut); font-size: 14px;
}

/* ------------------------------------------------------------------ bars */

.fh-bar { display: flex; flex-direction: column; gap: 8px; }
.fh-bar-top { display: flex; align-items: baseline; justify-content: space-between; }
.fh-bar-top span { font-size: 13px; color: var(--mut); }
.fh-bar-top em { font-family: var(--mono); font-size: 12.5px; font-style: normal; color: var(--tx2); }
.fh-bar-track {
  height: 7px; border-radius: 999px; overflow: hidden;
  background: var(--card-hi); border: 1px solid var(--bd-soft);
}
.fh-bar-fill { display: block; height: 100%; background: var(--p); }
.fh-bar-fill.warn { background: var(--warn); }
.fh-bar-fill.bad  { background: var(--bad); }

/* --------------------------------------------------------------- buttons */

.fh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 11px 18px; border-radius: 11px;
  border: 1px solid var(--bd); background: var(--card); color: var(--tx) !important;
  font-family: var(--sans); font-size: 14px; font-weight: 600; letter-spacing: -0.01em;
  cursor: pointer;
}
.fh-btn:hover { border-color: var(--p); }
.fh-btn-primary {
  background: var(--p); border-color: var(--p); color: var(--on-p) !important;
}
.fh-btn-primary:hover { background: var(--p-hi); border-color: var(--p-hi); color: #fff !important; }
.fh-btn-accent { background: var(--acc); border-color: var(--acc); color: var(--on-acc) !important; }
.fh-btn-sm { padding: 8px 14px; font-size: 13.5px; }
.fh-btn-lg { padding: 14px 22px; font-size: 15.5px; }
.fh-btn-block { width: 100%; }

.fh-actions { display: flex; align-items: center; gap: 10px; }

/* ----------------------------------------------------------------- forms */

.fh-field { display: flex; flex-direction: column; gap: 7px; }
.fh-field label { font-size: 13px; font-weight: 600; color: var(--tx2); margin: 0; }
.fh-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.fh-label-row a { font-size: 12.5px; font-weight: 600; }

.fh-input {
  display: flex; align-items: center; gap: 10px;
  height: 48px; padding: 0 14px;
  border: 1px solid var(--bd); border-radius: 12px;
  background: var(--card); color: var(--mut);
}
.fh-input:focus-within { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); }
.fh-input input, .fh-input select, .fh-input textarea {
  flex-grow: 1; min-width: 0; height: 100%;
  border: 0 !important; outline: none !important; background: transparent !important;
  box-shadow: none !important; padding: 0 !important;
  font-family: var(--sans); font-size: 15px; color: var(--tx) !important;
}
.fh-input textarea { height: auto; padding: 12px 0 !important; resize: vertical; }
.fh-input-raw { height: auto; padding: 6px 10px; }
.fh-input-raw input, .fh-input-raw select, .fh-input-raw textarea,
.fh-input-raw .form-control {
  width: 100%; min-height: 36px;
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  color: var(--tx) !important; font-size: 15px;
}
.fh-hint { font-size: 12px; line-height: 1.45; color: var(--mut); }
.fh-row { display: flex; gap: 12px; }
.fh-row > .fh-field { flex-grow: 1; flex-basis: 0; min-width: 0; }

.fh-check {
  display: flex; align-items: center; gap: 11px; margin: 0;
  font-size: 13.5px; font-weight: 400; color: var(--tx2); cursor: pointer;
}
.fh-check-top { align-items: flex-start; line-height: 1.5; }
.fh-check input[type="checkbox"] {
  flex-shrink: 0; width: 20px; height: 20px; margin: 0; accent-color: var(--p); cursor: pointer;
}

/* ---------------------------------------------------------------- alerts */

.fh-alert {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 15px 17px; border-radius: var(--r);
  border: 1px solid var(--bd); background: var(--card-hi);
  font-size: 14px; line-height: 1.5; color: var(--tx);
}
.fh-alert > .fh-btn { margin-left: auto; flex-shrink: 0; }
.fh-alert-ok   { background: var(--ok-tint);   border-color: var(--ok); }
.fh-alert-warn { background: var(--warn-tint); border-color: var(--warn); }
.fh-alert-bad  { background: var(--bad-tint);  border-color: var(--bad); }
.fh-alert-info { background: var(--p-tint);    border-color: var(--p); }
.fh-alert ul { margin: 0; padding-left: 18px; }

/* WHMCS's own alerts, so hook output still looks right */
.alert {
  border-radius: var(--r) !important;
  border: 1px solid var(--bd) !important;
  padding: 15px 17px !important;
  color: var(--tx) !important;
}
.alert-success { background: var(--ok-tint)   !important; border-color: var(--ok)   !important; }
.alert-warning { background: var(--warn-tint) !important; border-color: var(--warn) !important; }
.alert-danger  { background: var(--bad-tint)  !important; border-color: var(--bad)  !important; }
.alert-info    { background: var(--p-tint)    !important; border-color: var(--p)    !important; }

/* ---------------------------------------------------------------- tabbar */

.fh-tabs {
  display: inline-flex; gap: 4px; padding: 4px;
  border: 1px solid var(--bd-soft); border-radius: var(--r);
  background: var(--card-hi);
}
.fh-tab {
  padding: 9px 16px; border: 1px solid transparent; border-radius: var(--r-sm);
  background: transparent; color: var(--mut) !important;
  font-family: var(--sans); font-size: 14px; font-weight: 600; cursor: pointer;
}
.fh-tab.is-on { background: var(--card); border-color: var(--bd); color: var(--tx) !important; }

.fh-bar-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; }

/* --------------------------------------------------------------- tickets */

.fh-msg { display: flex; gap: 14px; }
.fh-msg-body {
  flex-grow: 1; min-width: 0; padding: 16px 18px;
  border: 1px solid var(--bd); border-radius: var(--r);
  background: var(--card);
}
.fh-msg-staff .fh-msg-body { background: var(--card-hi); border-color: var(--p); }
.fh-msg-head { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.fh-msg-head strong { font-size: 14px; font-weight: 650; color: var(--tx); }
.fh-msg-head time { margin-left: auto; font-family: var(--mono); font-size: 11.5px; color: var(--mut); }
.fh-msg-text { margin: 0; font-size: 14px; line-height: 1.65; color: var(--tx2); white-space: pre-line; }
.fh-attach { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.fh-attach a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--r-sm);
  background: var(--card-hi); border: 1px solid var(--bd-soft);
  font-size: 12.5px; color: var(--tx2) !important;
}

/* ---------------------------------------------------------------- totals */

.fh-total { display: flex; align-items: baseline; justify-content: space-between; padding: 6px 0; }
.fh-total span { font-size: 13.5px; color: var(--mut); }
.fh-total em { font-family: var(--mono); font-size: 14px; font-style: normal; color: var(--tx); }
.fh-total-big {
  padding-top: 14px; margin-top: 8px; border-top: 1px solid var(--bd-soft);
}
.fh-total-big span { font-size: 15px; font-weight: 650; color: var(--tx); }
.fh-total-big em { font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }

/* ============================================================== auth === */

.fh-auth-wrap { display: flex; min-height: 100vh; background: var(--bg); color: var(--tx); }
.fh-auth-form { flex-grow: 1; display: flex; align-items: center; justify-content: center; padding: 48px 40px; }
.fh-form-inner { width: 100%; max-width: 432px; display: flex; flex-direction: column; gap: 24px; }
.fh-form-head h1 {
  margin: 0 0 8px 0; font-size: 28px; line-height: 1.2;
  font-weight: 700; letter-spacing: -0.03em; color: var(--tx);
}
.fh-form-head p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--mut); }

.fh-fields { display: flex; flex-direction: column; gap: 16px; margin: 0; }

.fh-social-btn {
  display: flex; align-items: center; justify-content: center; gap: 11px;
  width: 100%; height: 48px; border-radius: 12px;
  border: 1px solid var(--bd); background: var(--card); color: var(--tx) !important;
  font-size: 14.5px; font-weight: 600;
}
.fh-social-btn:hover { border-color: var(--p); }
.fh-social-btn + .fh-social-btn { margin-top: 10px; }

.fh-divider { display: flex; align-items: center; gap: 14px; color: var(--mut); font-size: 12.5px; }
.fh-divider::before, .fh-divider::after { content: ""; flex-grow: 1; height: 1px; background: var(--bd); }

.fh-meter { display: flex; gap: 5px; margin-top: 2px; }
.fh-meter i { flex-grow: 1; height: 4px; border-radius: 999px; background: var(--bd); }
.fh-meter i:nth-child(-n+3) { background: var(--ok); }

.fh-switch {
  display: flex; align-items: center; justify-content: center; gap: 7px;
  margin: 0; font-size: 14px; color: var(--mut);
}
.fh-switch a { font-weight: 600; }

.fh-note {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 13px 15px; border-radius: 12px;
  background: var(--card-hi); border: 1px solid var(--bd-soft);
  font-size: 12.5px; line-height: 1.5; color: var(--mut);
}

.fh-auth-pane {
  width: 46%; max-width: 660px; flex-shrink: 0;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 44px 48px;
  background:
    radial-gradient(760px 420px at 18% 8%, #1B3A8F 0%, rgba(6,9,16,0) 62%),
    radial-gradient(620px 420px at 88% 92%, #33203A 0%, rgba(6,9,16,0) 58%),
    #060910;
}
.fh-pane-logo { display: flex; align-items: center; gap: 9px; }
.fh-pane-logo span { font-size: 19px; font-weight: 800; letter-spacing: -0.035em; color: #FFF; }
.fh-pane-body { display: flex; flex-direction: column; gap: 18px; }
.fh-pane-body h2 {
  margin: 0; font-size: 34px; line-height: 1.18; font-weight: 700;
  letter-spacing: -0.035em; color: #FFF; max-width: 15ch;
}
.fh-pane-body p { margin: 0; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.66); max-width: 46ch; }
.fh-pane-stats { margin-top: 10px; display: flex; flex-direction: column; }
.fh-pane-stats div {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.10);
}
.fh-pane-stats span { font-size: 13.5px; color: rgba(255,255,255,.62); }
.fh-pane-stats strong { font-family: var(--mono); font-size: 15px; font-weight: 600; color: #FFF; }
.fh-pane-foot { display: flex; flex-direction: column; gap: 14px; }
.fh-pane-label {
  font-size: 11px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
}
.fh-nodes { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-nodes span {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 12px; border-radius: 999px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12);
  font-size: 12px; color: rgba(255,255,255,.78);
}
.fh-nodes i { width: 6px; height: 6px; border-radius: 999px; background: #34D399; }

/* ============================================================= narrow === */

@media (max-width: 1200px) {
  .fh-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-search { width: 200px; }
}

@media (max-width: 1024px) {
  .fh-sidebar { display: none; }
  .fh-cols { flex-direction: column; }
  .fh-auth-pane { display: none; }
  .fh-auth-form { padding: 40px 24px; }
}

@media (max-width: 720px) {
  .fh-grid-2, .fh-grid-3, .fh-grid-4 { grid-template-columns: 1fr; }
  .fh-topbar { height: auto; padding: 16px; flex-direction: column; align-items: flex-start; gap: 14px; }
  .fh-content { padding: 18px 16px 26px 16px; }
  .fh-row { flex-direction: column; }
  .fh-table thead { display: none; }
  .fh-table td { display: flex; justify-content: space-between; gap: 16px; }
}


/* ============================== 2. Nexus / Bootstrap-4 bridge (v3) ====== */

/* fonts everywhere, including Bootstrap controls */
body.fh-body, body.fh-body .btn, body.fh-body .form-control, body.fh-body .custom-select,
body.fh-body input, body.fh-body select, body.fh-body textarea, body.fh-body button,
body.fh-body h1, body.fh-body h2, body.fh-body h3, body.fh-body h4, body.fh-body h5 { font-family: var(--sans); }
body.fh-body { color-scheme: light; }
html.dark body.fh-body { color-scheme: dark; }
body.fh-body h1, body.fh-body h2, body.fh-body h3, body.fh-body h4, body.fh-body h5 { color: var(--tx); letter-spacing: -.02em; font-weight: 700; }
body.fh-body p, body.fh-body li, body.fh-body td, body.fh-body th, body.fh-body label, body.fh-body small { color: inherit; }
body.fh-body .text-muted { color: var(--mut) !important; }

/* Nexus header/breadcrumb are replaced by the shell */
.fh-body .master-breadcrumb { display: none; }

/* --- logo image sizes */
.fh-logo img, .fh-pane-logo img { height: 28px; width: auto; display: block; }
.fh-logo .fh-logo-dark, .fh-guest-bar .fh-logo-dark { display: none; }
html.dark .fh-logo .fh-logo-light, html.dark .fh-guest-bar .fh-logo-light { display: none; }
html.dark .fh-logo .fh-logo-dark, html.dark .fh-guest-bar .fh-logo-dark { display: block; }

/* --- guest shell (logged-out pages other than sign-in/register) */
.fh-guest-bar { height: 68px; padding: 0 28px; background: var(--side); border-bottom: 1px solid var(--bd-soft); display: flex; align-items: center; gap: 22px; }
.fh-guest-nav { display: flex; align-items: center; gap: 4px; margin-left: 10px; }
.fh-guest-nav a { padding: 8px 12px; border-radius: 9px; font-size: 14px; font-weight: 500; color: var(--mut) !important; }
.fh-guest-nav a:hover, .fh-guest-nav a.fh-on { background: var(--card-hi); color: var(--tx) !important; }
.fh-guest-bar .fh-top-actions { margin-left: auto; }
.fh-guest-main { max-width: 1180px; margin: 0 auto; padding: 26px 28px 40px; display: flex; flex-direction: column; gap: 20px; }

/* --- mobile: off-canvas sidebar instead of hiding it */
.fh-menu-btn { display: none; }
@media (max-width: 1024px) {
  .fh-sidebar { display: flex; position: fixed; z-index: 1040; left: 0; top: 0; transform: translateX(-100%); transition: transform .18s ease; box-shadow: 0 0 0 100vw rgba(0,0,0,0); }
  html.fh-menu-open .fh-sidebar { transform: none; box-shadow: 0 0 0 100vw rgba(0,0,0,.45); }
  html.fh-menu-open { overflow: hidden; }
  .fh-menu-btn { display: inline-flex; }
  .fh-topbar { padding: 0 16px; gap: 12px; }
  .fh-search { display: none; }
  .fh-guest-nav { display: none; }
}

/* --- cards / panels that Nexus pages still emit */
.fh-body .card { background: var(--card); border: 1px solid var(--bd); border-radius: 16px; color: var(--tx); box-shadow: none; }
.fh-body .card-header { background: transparent; border-bottom: 1px solid var(--bd-soft); color: var(--tx); font-weight: 650; padding: 16px 22px; }
.fh-body .card-body { padding: 22px; color: var(--tx2); }
.fh-body .card-footer { background: var(--card-hi); border-top: 1px solid var(--bd-soft); color: var(--mut); }
.fh-body .card-sidebar .card-header, .fh-body .card-sidebar .card-title { font-size: 14px; }
.fh-body .card-sidebar { margin-bottom: 16px; }
.fh-body .list-group-item { background: var(--card); border-color: var(--bd-soft); color: var(--tx2); }
.fh-body .list-group-item-action:hover { background: var(--card-hi); color: var(--tx); }
.fh-body .list-group-item.active { background: var(--p-tint); border-color: var(--p-tint); color: var(--link); font-weight: 600; }
.fh-body .bg-light, .fh-body .bg-white { background: var(--card-hi) !important; }
.fh-body hr, .fh-body .dropdown-divider { border-color: var(--bd-soft); }
.fh-body .text-dark, .fh-body .text-body { color: var(--tx) !important; }

/* --- Nexus list tables (DataTables) get the design's table look */
.fh-body .table-container { background: transparent; border: 0; padding: 0; }
.fh-body .table { color: var(--tx2); margin-bottom: 0; }
.fh-body .table thead th { border: 0; border-bottom: 1px solid var(--bd-soft); padding: 0 14px 12px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mut); background: transparent; }
.fh-body .table td { padding: 14px; border-top: 1px solid var(--bd-soft); font-size: 13.5px; vertical-align: middle; }
.fh-body .table-hover tbody tr:hover, .fh-body .table-striped tbody tr:nth-of-type(odd) { background: var(--card-hi); color: var(--tx); }
.fh-body .table .btn-sm { padding: 6px 12px; }
.fh-body .dataTables_wrapper .dataTables_length select,
.fh-body .dataTables_wrapper .dataTables_filter input { border: 1px solid var(--bd); border-radius: 10px; background: var(--card); color: var(--tx); padding: 6px 10px; height: 38px; }
.fh-body .dataTables_wrapper .dataTables_info, .fh-body .dataTables_wrapper label { color: var(--mut); font-size: 13px; }
.fh-body .dataTables_wrapper .dataTables_paginate .paginate_button { color: var(--tx2) !important; border: 1px solid var(--bd) !important; border-radius: 9px; background: var(--card) !important; margin: 0 2px; }
.fh-body .dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--p) !important; border-color: var(--p) !important; color: #fff !important; }
.fh-body .dataTables_wrapper .dataTables_paginate .paginate_button.disabled { opacity: .5; }
.fh-body .table .badge, .fh-body .label { border-radius: 999px; padding: 5px 11px; font-size: 12px; font-weight: 600; }
.fh-body .status-active, .fh-body .badge-success { background: var(--ok-tint); color: var(--ok); }
.fh-body .status-pending, .fh-body .badge-warning { background: var(--warn-tint); color: var(--warn); }
.fh-body .status-suspended, .fh-body .status-terminated, .fh-body .status-cancelled, .fh-body .status-unpaid, .fh-body .status-overdue, .fh-body .badge-danger { background: var(--bad-tint); color: var(--bad); }
.fh-body .status-paid, .fh-body .status-closed, .fh-body .badge-secondary, .fh-body .badge-light { background: var(--card-hi); color: var(--mut); }
.fh-body .status-open, .fh-body .badge-info, .fh-body .badge-primary { background: var(--p-tint); color: var(--link); }

/* --- buttons (Nexus pages) */
.fh-body .btn { border-radius: 11px; font-weight: 600; padding: 9px 16px; letter-spacing: -.01em; }
.fh-body .btn-default, .fh-body .btn-light, .fh-body .btn-secondary, .fh-body .btn-outline-secondary { background: var(--card); border: 1px solid var(--bd); color: var(--tx); }
.fh-body .btn-default:hover, .fh-body .btn-light:hover, .fh-body .btn-secondary:hover { border-color: var(--p); background: var(--card); color: var(--tx); }
.fh-body .btn-primary { background: var(--p); border-color: var(--p); color: #fff; }
.fh-body .btn-primary:hover, .fh-body .btn-primary:focus { background: var(--p-hi); border-color: var(--p-hi); }
.fh-body .btn-success { background: var(--ok); border-color: var(--ok); }
.fh-body .btn-danger { background: var(--bad); border-color: var(--bad); }
.fh-body .btn-sm { padding: 7px 12px; font-size: 13px; border-radius: 9px; }
.fh-body .btn-link { color: var(--link); }
.fh-body a { color: var(--link); }

/* --- forms (Nexus pages) */
.fh-body .form-control, .fh-body .custom-select, .fh-body .input-group-text, .fh-body select.form-control {
  background: var(--card); border: 1px solid var(--bd); border-radius: 11px; color: var(--tx); height: 44px; font-size: 14.5px; box-shadow: none; }
.fh-body textarea.form-control { height: auto; }
.fh-body .form-control:focus, .fh-body .custom-select:focus { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); background: var(--card); color: var(--tx); }
.fh-body .form-control::placeholder { color: var(--mut); }
.fh-body .form-control:disabled, .fh-body .form-control[readonly] { background: var(--card-hi); color: var(--mut); }
.fh-body .input-group-merge .input-group-prepend .input-group-text { border-right: 0; border-radius: 11px 0 0 11px; color: var(--mut); background: var(--card); }
.fh-body .input-group-merge .form-control { border-radius: 0 11px 11px 0; }
.fh-body .input-group > .form-control:not(:last-child) { border-radius: 0; }
.fh-body .input-group-append .btn { border-radius: 0 11px 11px 0; border: 1px solid var(--bd); border-left: 0; background: var(--card); color: var(--mut); }
.fh-body label, .fh-body .form-control-label, .fh-body .col-form-label { font-size: 13px; font-weight: 600; color: var(--tx2); }
.fh-body .custom-control-label::before { background: var(--card); border-color: var(--bd); }
.fh-body .form-check-input { accent-color: var(--p); }

/* --- nav tabs / pills / dropdowns / modals */
.fh-body .nav-tabs { border-color: var(--bd-soft); }
.fh-body .nav-tabs .nav-link { color: var(--mut); border: 0; border-bottom: 2px solid transparent; font-weight: 600; }
.fh-body .nav-tabs .nav-link.active { color: var(--tx); background: transparent; border-bottom-color: var(--p); }
.fh-body .nav-pills .nav-link.active { background: var(--p); }
.fh-body .dropdown-menu { background: var(--card); border: 1px solid var(--bd); border-radius: 12px; box-shadow: 0 12px 32px -12px rgba(0,0,0,.25); }
.fh-body .dropdown-item { color: var(--tx2); }
.fh-body .dropdown-item:hover { background: var(--card-hi); color: var(--tx); }
.fh-body .modal-content { background: var(--card); border: 1px solid var(--bd); border-radius: 16px; color: var(--tx); }
.fh-body .modal-header, .fh-body .modal-footer { border-color: var(--bd-soft); }
.fh-body .close { color: var(--tx); text-shadow: none; }
.fh-body .page-link { background: var(--card); border-color: var(--bd); color: var(--tx2); }
.fh-body .page-item.active .page-link { background: var(--p); border-color: var(--p); color: #fff; }
.fh-body .breadcrumb { background: transparent; }
.fh-body pre, .fh-body code { background: var(--card-hi); color: var(--tx2); border-radius: 9px; }
.fh-body .popover { background: var(--card); border-color: var(--bd); color: var(--tx); }
.fh-body .tooltip-inner { background: var(--tx); color: var(--bg); }
.fh-body .progress { background: var(--card-hi); border-radius: 999px; }
.fh-body .progress-bar { background: var(--p); }

/* --- Nexus client-home panels rendered inside .fh-panel */
.fh-panel .card.card-sidebar, .fh-panel .card-home { border: 0; box-shadow: none; }
.fh-panel .list-group-flush .list-group-item { border-left: 0; border-right: 0; padding-left: 0; padding-right: 0; }

/* --- invoice page (standalone document) */
.fh-invoice .invoice-container { max-width: 1050px; margin: 24px auto; padding: 28px; background: var(--card); border: 1px solid var(--bd); border-radius: 16px; color: var(--tx); }
.fh-invoice .invoice-container .table td, .fh-invoice .invoice-container .table th { border-color: var(--bd-soft); color: var(--tx2); }
.fh-invoice .invoice-container .card-header.bg-info, .fh-invoice .invoice-container .total-row { background: var(--card-hi) !important; color: var(--tx) !important; }

/* --- print */
@media print {
  .fh-sidebar, .fh-topbar, .fh-foot, .fh-guest-bar, .fh-menu-btn { display: none !important; }
  .fh-app, .fh-main, .fh-content, body.fh-body, html.dark body.fh-body { background: #fff !important; color: #111 !important; padding: 0 !important; }
  .fh-invoice .invoice-container, .fh-invoice .invoice-container *, .fh-invoice .card, .fh-invoice .card-header { background: #fff !important; color: #111 !important; border-color: #ccc !important; box-shadow: none !important; }
  .fh-logo-dark { display: none !important; } .fh-logo-light { display: block !important; }
}


/* --- v3 page glue */
a.fh-kpi { color: inherit; }
a.fh-kpi:hover { border-color: var(--p); }
.fh-list-panel { padding: 8px 6px 14px; }
.fh-list-panel .table-container { padding: 0 8px; }
.fh-list-panel .dataTables_wrapper .row { margin: 0; align-items: center; }
.fh-list-panel .dataTables_wrapper > .row:first-child { padding: 10px 8px 4px; }
.fh-list-panel .dataTables_wrapper > .row:last-child { padding: 8px 8px 0; }
.fh-panel-body { color: var(--tx2); }
.fh-crumb-inline { flex-grow: 1; }
.fh-invoice-bar { margin-bottom: 0; }
/* Nexus card pages (details, security, ticket, product details) inside our panels */
.fh-panel > .card, .fh-panel .card.mb-4 { border: 0; box-shadow: none; }
.fh-panel > .card > .card-header { padding-left: 0; padding-right: 0; }
.fh-panel > .card > .card-body { padding-left: 0; padding-right: 0; }
.fh-cols .sidebar .card { margin-bottom: 16px; }
/* sign-in / register: the Nexus form loses its card chrome inside the split layout */
.fh-auth-native .card, .fh-auth-native .card-body, .fh-auth-native .card-footer { border: 0 !important; padding: 0 !important; background: transparent !important; box-shadow: none !important; }
.fh-auth-native .card { margin: 0 !important; max-width: none !important; }
.fh-auth-native .card-footer { padding-top: 18px !important; margin-top: 6px; border-top: 1px solid var(--bd-soft) !important; }
.fh-auth-native .mb-4 > .h3 { display: none; }
.fh-auth-native .mb-4 > .text-muted { display: none; }
.fh-auth-native .form-control { height: 48px; border-radius: 12px; font-size: 15px; }
.fh-auth-native .input-group-text { border-radius: 12px 0 0 12px; }
.fh-auth-native .btn-primary { width: 100%; height: 48px; border-radius: 12px; font-size: 15.5px; }
.fh-auth-native .float-left { float: none !important; width: 100%; margin-top: 4px; }
.fh-auth-native .text-right { text-align: left !important; margin-top: 12px; }
.fh-auth-native .text-right label { font-weight: 400; color: var(--tx2); display: flex; align-items: center; gap: 10px; }
.fh-auth-native .form-check-input { position: static; margin: 0; width: 18px; height: 18px; }
.fh-auth-wide { width: 100%; }
.fh-auth-page .fh-form-inner { max-width: 432px; }
.fh-auth-page.tpl-clientregister .fh-form-inner { max-width: 640px; }
.fh-auth-page .fh-form-inner .form-group label { font-size: 13px; }

/* Nexus shows this overlay via JS; make the hidden state win on its own */
#fullpage-overlay.w-hidden { display: none !important; }

/* --- small screens: nothing may push the page wider than the viewport */
.fh-main, .fh-content, .fh-plain, .fh-guest-main { min-width: 0; }
.fh-foot { flex-wrap: wrap; }
.fh-foot-links { flex-wrap: wrap; row-gap: 6px; }
.fh-top-actions { flex-wrap: wrap; justify-content: flex-end; row-gap: 8px; }
@media (max-width: 1024px) {
  .fh-cols { align-items: stretch; }
  .fh-col-main, .fh-col-side { width: 100%; }
  .fh-guest-bar { height: auto; min-height: 68px; padding: 10px 16px; gap: 12px; flex-wrap: wrap; }
  .fh-foot { padding: 16px; }
}
@media (max-width: 480px) {
  .fh-guest-bar .fh-top-actions .fh-btn { padding-left: 12px; padding-right: 12px; }
  .fh-body .card-body { padding: 16px; }
  .fh-content { padding: 16px; }
}
.fh-list-panel .btn-group.mb-3, .fh-body .btn-toolbar { flex-wrap: wrap; row-gap: 6px; }

/* --- sign-in split pane: always light-on-dark, whatever the page theme */
.fh-body .fh-auth-pane h2, .fh-body .fh-auth-pane .fh-pane-body h2 { color: #fff; }
.fh-body .fh-auth-pane p { color: rgba(255,255,255,.66); }
.fh-auth-native .input-group-text { background: var(--card); border: 1px solid var(--bd); color: var(--mut); border-radius: 11px 0 0 11px; }
.fh-auth-native .input-group .form-control { border-radius: 0 11px 11px 0; }
.fh-auth-native .input-group-append .btn { border: 1px solid var(--bd); background: var(--card); color: var(--mut); border-radius: 0 11px 11px 0; }
@media (max-width: 480px) { .fh-cur { display: none; } }

/* --- guest home */
.fh-home-hero { padding: 34px 0 10px; display: flex; flex-direction: column; gap: 10px; max-width: 720px; }
.fh-eyebrow { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--p); }
.fh-home-hero h1 { margin: 0; font-size: 36px; line-height: 1.15; letter-spacing: -.035em; }
.fh-lead { margin: 0; font-size: 16px; color: var(--mut); line-height: 1.6; }
.fh-home-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.fh-tile { display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--bd); border-radius: 14px; background: var(--card-hi, var(--bg)); color: var(--tx) !important; text-decoration: none !important; transition: border-color .15s, transform .15s; min-width: 0; }
.fh-tile:hover { border-color: var(--p); transform: translateY(-1px); }
.fh-tile strong { font-size: 15px; font-weight: 650; }
.fh-tile-sub { font-size: 13px; color: var(--mut); line-height: 1.5; }
.fh-tile-go { font-size: 13px; color: var(--p); margin-top: auto; }
.fh-tile-ico { width: 36px; height: 36px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--p-tint, rgba(21,93,252,.12)); color: var(--p); font-size: 15px; margin-bottom: 4px; }
.fh-tile-sm { flex-direction: row; align-items: center; gap: 12px; padding: 14px 16px; }
.fh-tile-sm .fh-tile-ico { margin: 0; flex-shrink: 0; }
.fh-stack { display: flex; flex-direction: column; gap: 8px; }
.fh-stack .fh-btn { justify-content: flex-start; gap: 10px; }
@media (max-width: 720px) { .fh-home-hero h1 { font-size: 28px; } }
.fh-home-hero h1 { overflow-wrap: anywhere; }


/* ================================================================ v3.1 === */

/* --- sidebar groups (Services / Domains / Billing / Support / Account) */
.fh-nav-label-gap { margin-top: 14px; }
.fh-group { position: relative; display: flex; flex-direction: column; }
.fh-group > .fh-nav-item { padding-right: 36px; }
.fh-caret {
  position: absolute; top: 7px; right: 6px; width: 26px; height: 26px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 7px; background: transparent; color: var(--mut); cursor: pointer;
  transition: transform .18s ease, background .15s;
}
.fh-caret:hover { background: var(--bd-soft); color: var(--tx); }
.fh-group.fh-open > .fh-caret { transform: rotate(180deg); }
.fh-group-body { display: none; flex-direction: column; gap: 2px; padding: 3px 0 4px 0; position: relative; }
.fh-group.fh-open > .fh-group-body { display: flex; }
.fh-group-body::before { content: ""; position: absolute; left: 20px; top: 6px; bottom: 8px; width: 1px; background: var(--bd-soft); }
.fh-nav-sub { padding: 7px 10px 7px 34px; font-size: 13px; color: var(--mut) !important; position: relative; }
.fh-nav-sub::before { content: ""; position: absolute; left: 17px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: var(--bd); transition: background .15s; }
.fh-nav-sub:hover::before, .fh-nav-sub.fh-on::before { background: var(--p); }
.fh-nav-sub.fh-on { background: transparent; border-color: transparent; color: var(--p) !important; }
.fh-nav-div { display: block; height: 1px; margin: 5px 10px 5px 34px; background: var(--bd-soft); }
.fh-nav-item i { color: var(--mut); }
.fh-nav-item.fh-on i, .fh-nav-item:hover i { color: var(--p); }
.fh-nav-item.fh-on { box-shadow: inset 3px 0 0 var(--p); border-radius: 0 var(--r-sm) var(--r-sm) 0; }

/* --- notices (email verification banner, WHMCS alerts) */
.fh-body .verification-banner { background: var(--warn-tint); border: 1px solid var(--bd); border-radius: 12px; padding: 10px 14px; margin: 0 0 18px; color: var(--tx); }
.fh-body .verification-banner .container { max-width: none; padding: 0; }
.fh-body .verification-banner .fas { color: var(--warn); font-size: 18px; margin-right: 8px; vertical-align: middle; }
.fh-body .verification-banner .text { vertical-align: middle; font-size: 14px; color: var(--tx); }
.fh-body .verification-banner .btn-default { background: var(--card); border: 1px solid var(--bd); color: var(--tx); border-radius: 9px; font-weight: 600; }
.fh-body .verification-banner .close { color: var(--mut); opacity: 1; text-shadow: none; font-size: 20px; }
.fh-body .alert { border-radius: 12px; border: 1px solid var(--bd); background: var(--card); color: var(--tx); }
.fh-body .alert-success { background: var(--ok-tint); border-color: transparent; color: var(--tx); }
.fh-body .alert-warning { background: var(--warn-tint); border-color: transparent; color: var(--tx); }
.fh-body .alert-danger  { background: var(--bad-tint);  border-color: transparent; color: var(--tx); }
.fh-body .alert-info    { background: var(--p-tint);    border-color: transparent; color: var(--tx); }
.fh-body .alert a { color: var(--link); font-weight: 600; }

/* --- cart pages (Standard Cart markup inside the shell) */
.fh-body #order-standard_cart { font-family: var(--sans); }
.fh-body #order-standard_cart > .row { margin: 0; }
.fh-body #order-standard_cart .cart-sidebar, .fh-body #order-standard_cart .cart-body, .fh-body #order-standard_cart .secondary-cart-body { padding: 0; }
.fh-body #order-standard_cart .cart-sidebar { padding-right: 20px; }
.fh-body #order-standard_cart .cart-body { min-width: 0; }
.fh-body #order-standard_cart .header-lined { border: 0; margin: 0 0 18px; padding: 0; }
.fh-body #order-standard_cart .header-lined h1 { font-size: 26px; line-height: 1.2; letter-spacing: -.03em; margin: 0 0 6px; }
.fh-body #order-standard_cart .header-lined p { color: var(--mut); margin: 0; }
.fh-body #order-standard_cart .card.card-sidebar { border-radius: 14px; overflow: hidden; margin-bottom: 16px; }
.fh-body #order-standard_cart .card-sidebar .card-header { padding: 12px 16px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--mut); }
.fh-body #order-standard_cart .card-sidebar .card-header .panel-title { font-size: 13px; margin: 0; font-weight: 650; }
.fh-body #order-standard_cart .card-sidebar .card-minimise { color: var(--mut); }
.fh-body #order-standard_cart .card-sidebar .list-group-item { padding: 10px 16px; font-size: 14px; border-color: var(--bd-soft); background: transparent; color: var(--tx); }
.fh-body #order-standard_cart .card-sidebar .list-group-item:hover { background: var(--card-hi); }
.fh-body #order-standard_cart .card-sidebar .list-group-item.active { background: var(--p-tint); color: var(--p); font-weight: 600; box-shadow: inset 3px 0 0 var(--p); }
.fh-body #order-standard_cart .card-sidebar .list-group-item i { width: 18px; color: var(--mut); }
/* product grid */
.fh-body #order-standard_cart .products .row.row-eq-height { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; margin: 0; }
.fh-body #order-standard_cart .products .row.row-eq-height > [class*="col-"] { max-width: none; flex: none; width: auto; padding: 0; display: flex; }
.fh-body #order-standard_cart .products .product, html.dark .fh-body #order-standard_cart .products .product { display: flex; flex-direction: column; width: 100%; margin: 0; padding: 0; background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 16px; overflow: hidden; box-shadow: none; transition: border-color .15s, transform .15s; }
.fh-body #order-standard_cart .products .product:hover { border-color: var(--p); transform: translateY(-2px); }
.fh-body #order-standard_cart .products .product header, html.dark .fh-body #order-standard_cart .products .product header { background: transparent !important; border-bottom: 1px solid var(--bd-soft) !important; padding: 18px 22px 14px; margin: 0; color: var(--tx) !important; }
.fh-body #order-standard_cart .products .product header span, .fh-body #order-standard_cart .products .product header h3 { color: var(--tx); font-size: 17px; font-weight: 700; letter-spacing: -.02em; }
.fh-body #order-standard_cart .products .product .product-desc { width: 100%; float: none; padding: 16px 22px; color: var(--tx2); font-size: 13.5px; line-height: 1.7; }
.fh-body #order-standard_cart .products .product .product-desc ul { list-style: none; padding: 0; margin: 0; }
.fh-body #order-standard_cart .products .product .product-desc li { padding: 5px 0 5px 24px; position: relative; border-bottom: 1px solid var(--bd-soft); }
.fh-body #order-standard_cart .products .product .product-desc li:last-child { border-bottom: 0; }
.fh-body #order-standard_cart .products .product .product-desc li::before { content: "\2713"; position: absolute; left: 2px; top: 5px; color: var(--ok); font-weight: 700; font-size: 12px; }
.fh-body #order-standard_cart .products .product footer, html.dark .fh-body #order-standard_cart .products .product footer { width: 100%; float: none; margin-top: auto; padding: 16px 22px 22px; background: var(--card-hi) !important; border-top: 1px solid var(--bd-soft) !important; }
.fh-body #order-standard_cart .products .product footer .product-pricing { float: none; text-align: left; padding: 0 0 14px; }
.fh-body #order-standard_cart .products .product footer .product-pricing .price { font-family: var(--mono); font-size: 28px; font-weight: 700; color: var(--tx); letter-spacing: -.02em; display: block; }
.fh-body #order-standard_cart .products .product footer .product-pricing .cycle { color: var(--mut); font-size: 13px; }
.fh-body #order-standard_cart .products .product footer .btn-order-now, .fh-body #order-standard_cart .products .product footer .btn-outline-primary { display: block; width: 100%; background: var(--p); border: 1px solid var(--p); color: #fff !important; border-radius: 10px; padding: 10px 14px; font-weight: 600; }
.fh-body #order-standard_cart .products .product footer .btn-order-now:hover { background: var(--p-hi); border-color: var(--p-hi); }
/* generic cart bits */
.fh-body #order-standard_cart .sub-heading span { background: var(--bg); color: var(--mut); }
.fh-body #order-standard_cart .sub-heading::before { border-color: var(--bd-soft); }
.fh-body #order-standard_cart .panel, .fh-body #order-standard_cart .card, .fh-body #order-standard_cart .view-cart-empty, .fh-body #order-standard_cart .domain-selection-options, .fh-body #order-standard_cart .domain-promo-box, .fh-body #order-standard_cart .order-summary, .fh-body #order-standard_cart .summary-container { background: var(--card); color: var(--tx); border-color: var(--bd); border-radius: 14px; box-shadow: none; }
.fh-body #order-standard_cart .panel .panel-heading, .fh-body #order-standard_cart .panel .panel-footer, .fh-body #order-standard_cart .card-header, .fh-body #order-standard_cart .card-footer { background: transparent; color: var(--tx); border-color: var(--bd-soft); }
.fh-body #order-standard_cart .domain-selection-options .option-selected, .fh-body #order-standard_cart .domain-pricing .tld-row.highlighted { background: var(--p-tint); }
.fh-body #order-standard_cart .domain-pricing .tld-pricing-header div, .fh-body #order-standard_cart .domain-pricing .tld-pricing-header .tld-column { background: var(--card-hi); color: var(--tx); }
.fh-body #order-standard_cart .domain-pricing .tld-row { border-color: var(--bd-soft); color: var(--tx); }
.fh-body #order-standard_cart .form-control, .fh-body #order-standard_cart .field, .fh-body #order-standard_cart select, .fh-body #order-standard_cart .input-group-text { background: var(--card); color: var(--tx); border: 1px solid var(--bd); border-radius: 10px; }
.fh-body #order-standard_cart .form-control:focus { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); }
.fh-body #order-standard_cart .prepend-icon .field-icon { color: var(--mut); }
.fh-body #order-standard_cart .btn-primary, .fh-body #order-standard_cart .btn-checkout, .fh-body #order-standard_cart .btn-add-to-cart, .fh-body #order-standard_cart .btn-success { background: var(--p); border-color: var(--p); color: #fff; border-radius: 10px; font-weight: 600; }
.fh-body #order-standard_cart .btn-default { background: var(--card); border: 1px solid var(--bd); color: var(--tx); border-radius: 10px; }
.fh-body #order-standard_cart .view-cart-tabs .nav-tabs a, .fh-body #order-standard_cart .nav-tabs .nav-link { color: var(--mut); background: transparent; border-color: transparent; }
.fh-body #order-standard_cart .view-cart-tabs .nav-tabs a[aria-expanded=true], .fh-body #order-standard_cart .nav-tabs .nav-link.active { color: var(--p); background: transparent; border-bottom: 2px solid var(--p); }
.fh-body #order-standard_cart .order-summary .item, .fh-body #order-standard_cart .summary-container .item { color: var(--tx); border-color: var(--bd-soft); }
.fh-body #order-standard_cart .order-summary .item-group, .fh-body #order-standard_cart .text-muted, .fh-body #order-standard_cart small { color: var(--mut) !important; }
.fh-body #order-standard_cart .promo-banner, .fh-body .secondary-cart-body #domainRenewals { background: var(--card); color: var(--tx); border-color: var(--bd); }
@media (max-width: 991px) { .fh-body #order-standard_cart .cart-sidebar { padding-right: 0; margin-bottom: 18px; } }

/* --- dark mode hardening: every light Bootstrap / Nexus surface, re-tokened */
html.dark .fh-body .card, html.dark .fh-body .modal-content, html.dark .fh-body .popover, html.dark .fh-body .dropdown-menu,
html.dark .fh-body .list-group-item, html.dark .fh-body .page-link, html.dark .fh-body .bg-white, html.dark .fh-body .bg-light,
html.dark .fh-body .jumbotron, html.dark .fh-body .img-thumbnail, html.dark .fh-body .responsive-tabs-sm,
html.dark .fh-body .action-icon-btns a, html.dark .fh-body .tiles .tile, html.dark .fh-body .client-home-cards .card-header,
html.dark .fh-body .continue-container, html.dark .fh-body .invite-box, html.dark .fh-body .select-account a:hover,
html.dark .fh-body .md-editor > .btn-toolbar, html.dark .fh-body .md-editor > .md-preview, html.dark .fh-body .md-editor > textarea.markdown-editor,
html.dark .fh-body .markdown-content table, html.dark .fh-body .md-preview table, html.dark .fh-body .promo-banner,
html.dark .fh-body .upgrade .products .product, html.dark .fh-body .upgrade .product-to-be-upgraded,
html.dark .fh-body .view-ticket .posted-by, html.dark .fh-body .view-ticket .attachment-list li figure, html.dark .fh-body .ticketfeedbackstaffcont,
html.dark .fh-body #registration .field, html.dark .fh-body #registration .form-control, html.dark .fh-body #registration .sub-heading span,
html.dark .fh-body div.credit-card, html.dark .fh-body .twofa-setup .backup-code, html.dark .fh-body div.product-details-tab-container,
html.dark .fh-body div.product-details div.product-icon, html.dark .fh-body .featured-tld, html.dark .fh-body .featured-tld .price,
html.dark .fh-body .home-domain-search .input-group-wrapper, html.dark .fh-body .store-order-container .store-domain-tabs li a,
html.dark .fh-body .alert:has(form), html.dark .fh-body .mc-promo-login, html.dark .fh-body .mc-promo-manage, html.dark .fh-body .popover-header {
  background-color: var(--card) !important; color: var(--tx) !important; border-color: var(--bd) !important;
}
html.dark .fh-body .table td, html.dark .fh-body .table th, html.dark .fh-body table.table-list thead th, html.dark .fh-body .table-list > tbody > tr > td,
html.dark .fh-body .markdown-content table > thead > tr > th, html.dark .fh-body .md-preview table > thead > tr > th { background-color: var(--card) !important; color: var(--tx) !important; border-color: var(--bd-soft) !important; }
html.dark .fh-body .table-list > tbody > tr:hover > td, html.dark .fh-body .table-hover tbody tr:hover td, html.dark .fh-body .table-striped tbody tr:nth-of-type(odd) td,
html.dark .fh-body .table .thead-light th, html.dark .fh-body .dataTables_wrapper table.table-list thead th.sorting_asc, html.dark .fh-body .dataTables_wrapper table.table-list thead th.sorting_desc,
html.dark .fh-body .invoice-summary-table td.total-row, html.dark .fh-body tr.masspay-total td, html.dark .fh-body .domain-pricing .tld-pricing-header div,
html.dark .fh-body .breadcrumb, html.dark .fh-body .progress, html.dark .fh-body .input-group-text, html.dark .fh-body .custom-file-label::after,
html.dark .fh-body .form-control:disabled, html.dark .fh-body .form-control[readonly], html.dark .fh-body .custom-select:disabled,
html.dark .fh-body .modal .modal-header, html.dark .fh-body .modal-localisation .item-selector .item:hover, html.dark .fh-body .modal-localisation .item-selector .item.active,
html.dark .fh-body .page-link:hover, html.dark .fh-body .dropdown-item:hover, html.dark .fh-body .dropdown-item:focus, html.dark .fh-body .list-group-item-action:hover, html.dark .fh-body .list-group-item-action:focus,
html.dark .fh-body .responsive-tabs-sm .nav-item a:hover, html.dark .fh-body .tiles .tile:hover, html.dark .fh-body .popover-user-notifications ul li a:hover, html.dark .fh-body .verification-banner,
html.dark .fh-body .btn-light, html.dark .fh-body .btn-default, html.dark .fh-body .badge-light, html.dark .fh-body .btn-return-to-admin {
  background-color: var(--card-hi) !important; color: var(--tx) !important; border-color: var(--bd) !important;
}
html.dark .fh-body .btn-default:hover, html.dark .fh-body .btn-light:hover, html.dark .fh-body .btn-default:focus, html.dark .fh-body .btn-default.active { background-color: var(--bd) !important; color: var(--tx) !important; }
html.dark .fh-body .form-control, html.dark .fh-body .custom-select, html.dark .fh-body .custom-file-label, html.dark .fh-body select, html.dark .fh-body textarea,
html.dark .fh-body .dataTables_wrapper .dataTables_filter label .form-control, html.dark .fh-body .input-group .btn-reveal-pw:hover, html.dark .fh-body .input-group .btn-reveal-pw:active {
  background-color: var(--bg) !important; color: var(--tx) !important; border-color: var(--bd) !important;
}
html.dark .fh-body .form-control::placeholder { color: var(--mut); }
html.dark .fh-body .custom-control-label::before { background-color: var(--bg); border-color: var(--bd); }
html.dark .fh-body .custom-control-input:checked ~ .custom-control-label::before { background-color: var(--p); border-color: var(--p); }
html.dark .fh-body .nav-tabs .nav-link.active, html.dark .fh-body .nav-tabs .nav-item.show .nav-link, html.dark .fh-body .responsive-tabs-sm .nav-item a.active, html.dark .fh-body .store-order-container .store-domain-tabs li.active a { background-color: var(--card) !important; color: var(--p) !important; border-color: var(--bd) var(--bd) var(--card) !important; }
html.dark .fh-body .nav-tabs { border-color: var(--bd); }
html.dark .fh-body .nav-tabs .nav-link { color: var(--mut); }
html.dark .fh-body .table-primary td, html.dark .fh-body .table-info td, html.dark .fh-body .list-group-item-primary, html.dark .fh-body .list-group-item-info, html.dark .fh-body .alert-primary, html.dark .fh-body .alert-info { background-color: var(--p-tint) !important; color: var(--tx) !important; border-color: transparent !important; }
html.dark .fh-body .table-success td, html.dark .fh-body .list-group-item-success, html.dark .fh-body .alert-success { background-color: var(--ok-tint) !important; color: var(--tx) !important; border-color: transparent !important; }
html.dark .fh-body .table-warning td, html.dark .fh-body .list-group-item-warning, html.dark .fh-body .alert-warning, html.dark .fh-body .mark, html.dark .fh-body mark { background-color: var(--warn-tint) !important; color: var(--tx) !important; border-color: transparent !important; }
html.dark .fh-body .table-danger td, html.dark .fh-body .list-group-item-danger, html.dark .fh-body .alert-danger { background-color: var(--bad-tint) !important; color: var(--tx) !important; border-color: transparent !important; }
html.dark .fh-body .alert-secondary, html.dark .fh-body .alert-light, html.dark .fh-body .alert-dark, html.dark .fh-body .table-light td, html.dark .fh-body .table-secondary td, html.dark .fh-body .list-group-item-light, html.dark .fh-body .list-group-item-secondary { background-color: var(--card-hi) !important; color: var(--tx) !important; border-color: transparent !important; }
html.dark .fh-body .text-dark, html.dark .fh-body .text-body, html.dark .fh-body .text-black-50 { color: var(--tx) !important; }
html.dark .fh-body .text-muted, html.dark .fh-body .text-secondary { color: var(--mut) !important; }
html.dark .fh-body .text-white { color: #fff !important; }
html.dark .fh-body .border, html.dark .fh-body .border-top, html.dark .fh-body .border-bottom, html.dark .fh-body .border-left, html.dark .fh-body .border-right, html.dark .fh-body hr { border-color: var(--bd) !important; }
html.dark .fh-body .close { color: var(--tx); text-shadow: none; opacity: .7; }
html.dark .fh-body .modal-backdrop { background: #000; }
html.dark .fh-body .btn-success, html.dark .fh-body .btn-success.disabled { color: #fff !important; }
html.dark .fh-body .btn-danger, html.dark .fh-body .btn-danger.disabled, html.dark .fh-body .btn-danger:disabled { background: var(--bad) !important; border-color: var(--bad) !important; color: #fff !important; }
html.dark .fh-body .btn-outline-primary { color: var(--link); border-color: var(--p); }
html.dark .fh-body .btn-outline-primary:hover { background: var(--p); color: #fff; }
html.dark .fh-body .btn-outline-secondary, html.dark .fh-body .btn-outline-dark { color: var(--tx); border-color: var(--bd); }
html.dark .fh-body .select2-container--default .select2-selection--single, html.dark .fh-body .select2-dropdown, html.dark .fh-body .select2-search__field { background: var(--bg) !important; color: var(--tx) !important; border-color: var(--bd) !important; }
html.dark .fh-body .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--tx); }
html.dark .fh-body .select2-results__option--highlighted { background: var(--p) !important; }
html.dark .fh-body .icheck-button, html.dark .fh-body .icheckbox_square-blue, html.dark .fh-body .iradio_square-blue { filter: invert(.9) hue-rotate(180deg); }
html.dark .fh-body .table-list tbody tr:hover td { background-color: var(--card-hi) !important; }
html.dark .fh-body .dataTables_paginate .paginate_button { color: var(--mut) !important; }
html.dark .fh-body .dataTables_paginate .paginate_button.current { background: var(--p) !important; color: #fff !important; border-color: var(--p) !important; }
html.dark .fh-body .dataTables_length select { background: var(--bg) !important; color: var(--tx) !important; border-color: var(--bd) !important; }
html.dark .fh-body .status-badge, html.dark .fh-body .label, html.dark .fh-body .badge-secondary { background: var(--card-hi) !important; color: var(--tx) !important; }
html.dark .fh-body .badge-success, html.dark .fh-body .label-success { background: var(--ok-tint) !important; color: var(--ok) !important; }
html.dark .fh-body .badge-warning, html.dark .fh-body .label-warning { background: var(--warn-tint) !important; color: var(--warn) !important; }
html.dark .fh-body .badge-danger, html.dark .fh-body .label-danger { background: var(--bad-tint) !important; color: var(--bad) !important; }
html.dark .fh-body .badge-info, html.dark .fh-body .badge-primary, html.dark .fh-body .label-info { background: var(--p-tint) !important; color: var(--link) !important; }
html.dark .fh-body .ticket-reply, html.dark .fh-body .view-ticket .ticket-reply, html.dark .fh-body .view-ticket .ticket-reply .body { background: var(--card) !important; color: var(--tx) !important; border-color: var(--bd) !important; }
html.dark .fh-body .view-ticket .ticket-reply.client .posted-by, html.dark .fh-body .view-ticket .ticket-reply.staff .posted-by { background: var(--card-hi) !important; }
html.dark .fh-body .kb-article-content, html.dark .fh-body .kb-article, html.dark .fh-body .announcement-single, html.dark .fh-body .announcement { color: var(--tx); }
html.dark .fh-body .btn-link { color: var(--link); }
html.dark .fh-body .btn-group .btn-default.active { background: var(--p) !important; color: #fff !important; border-color: var(--p) !important; }
html.dark .fh-body .form-control:focus, html.dark .fh-body .custom-select:focus { border-color: var(--p) !important; box-shadow: 0 0 0 3px var(--p-tint); }
html.dark .fh-body .btn-return-to-admin { background: var(--card) !important; }
html.dark .fh-body .table-container, html.dark .fh-body .table-responsive { background: transparent; }
html.dark .fh-body .lightbox, html.dark .fh-body .well { background: var(--card-hi); color: var(--tx); border-color: var(--bd); }
html.dark .fh-body .accordion .card-header .btn { color: var(--tx); }
html.dark .fh-body .status-active, html.dark .fh-body .status-paid { color: var(--ok) !important; }
html.dark .fh-body .status-pending, html.dark .fh-body .status-unpaid { color: var(--warn) !important; }
html.dark .fh-body .status-cancelled, html.dark .fh-body .status-terminated, html.dark .fh-body .status-overdue { color: var(--bad) !important; }
.fh-body #order-standard_cart .products .product footer .product-pricing .from { display: block; font-size: 12px; color: var(--mut); text-transform: uppercase; letter-spacing: .06em; }
.fh-body #order-standard_cart .products .product footer .product-pricing .setup { display: block; color: var(--mut); margin-top: 2px; }
.fh-body #order-standard_cart .products .product header .qty { display: inline-block; margin-top: 6px; font-size: 12px; color: var(--mut); font-family: var(--mono); }

.fh-nav { gap: 2px; }
.fh-nav-label { padding-bottom: 5px; }
.fh-nav-sep { display: block; height: 1px; margin: 10px 10px 8px; background: var(--bd-soft); }

/* ================================================================ v3.2 === */

/* --- page rhythm: sections never touch */
.fh-content .fh-grid { margin-bottom: 20px; }
.fh-content .fh-bar-row { margin-bottom: 16px; }
.fh-content .fh-cols + .fh-cols, .fh-content .fh-panel + .fh-panel, .fh-content .fh-panel + .fh-cols, .fh-content .fh-cols + .fh-panel { margin-top: 20px; }
.fh-cols .fh-panel + .fh-panel { margin-top: 0; }

/* --- sidebar accordion (no page load: the group opens in place) */
.fh-nav-toggle { width: 100%; background: transparent; border: 1px solid transparent; text-align: left; cursor: pointer; font-family: inherit; }
.fh-nav-toggle .fh-chev { margin-left: auto; color: var(--mut); transition: transform .22s ease; flex-shrink: 0; }
.fh-group.fh-open > .fh-nav-toggle .fh-chev { transform: rotate(180deg); }
.fh-group > .fh-nav-item { padding-right: 12px; }
.fh-caret { display: none; }
.fh-group-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .24s cubic-bezier(.4,0,.2,1); padding: 0; }
.fh-group.fh-open > .fh-group-body { grid-template-rows: 1fr; }
.fh-group-inner { overflow: hidden; display: flex; flex-direction: column; gap: 2px; min-height: 0; position: relative; }
.fh-group.fh-open > .fh-group-body > .fh-group-inner { padding: 3px 0 4px; }
.fh-group-body::before { display: none; }
.fh-group-inner::before { content: ""; position: absolute; left: 20px; top: 9px; bottom: 10px; width: 1px; background: var(--bd-soft); }
.fh-nav-sub { opacity: 0; transform: translateY(-3px); transition: opacity .2s ease .05s, transform .2s ease .05s; }
.fh-group.fh-open .fh-nav-sub { opacity: 1; transform: none; }

/* --- account menu in the user card */
.fh-user-wrap { position: relative; }
.fh-user { padding: 8px 8px 8px 8px; gap: 6px; }
.fh-user-btn { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 4px 6px 4px 4px; border: 0; background: transparent; border-radius: 10px; cursor: pointer; text-align: left; font-family: inherit; color: var(--tx); }
.fh-user-btn:hover { background: var(--bd-soft); }
.fh-user-btn .fh-chev { margin-left: auto; color: var(--mut); transition: transform .22s ease; flex-shrink: 0; }
.fh-user-open .fh-user-btn .fh-chev { transform: rotate(180deg); }
.fh-user-menu {
  position: absolute; left: 0; right: 0; bottom: calc(100% + 8px); z-index: 30;
  background: var(--card); border: 1px solid var(--bd); border-radius: 14px;
  box-shadow: 0 18px 40px -12px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.12);
  padding: 6px; display: flex; flex-direction: column; gap: 1px;
  max-height: calc(100vh - 160px); overflow-y: auto;
  opacity: 0; visibility: hidden; transform: translateY(6px) scale(.98); transform-origin: bottom center;
  transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.fh-user-open .fh-user-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.fh-user-menu-head { padding: 8px 10px 10px; display: flex; flex-direction: column; gap: 1px; border-bottom: 1px solid var(--bd-soft); margin-bottom: 4px; }
.fh-user-menu-head strong { font-size: 13.5px; color: var(--tx); }
.fh-user-menu-head span { font-size: 12px; color: var(--mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-user-menu-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 9px; font-size: 13.5px; font-weight: 500; color: var(--tx) !important; text-decoration: none !important; }
.fh-user-menu-item i { width: 16px; text-align: center; font-size: 13px; color: var(--mut); }
.fh-user-menu-item i.fh-dot { font-size: 6px; }
.fh-user-menu-item:hover, .fh-user-menu-item.fh-on { background: var(--p-tint); color: var(--p) !important; }
.fh-user-menu-item:hover i, .fh-user-menu-item.fh-on i { color: var(--p); }
.fh-user-menu-logout { color: var(--bad) !important; }
.fh-user-menu-logout i { color: var(--bad); }
.fh-user-menu-div { display: block; height: 1px; margin: 4px 6px; background: var(--bd-soft); }

/* --- list pages: no box lines around the table */
.fh-list-panel .table-container, .fh-list-panel .table-responsive, .fh-list-panel .dataTables_wrapper { border: 0 !important; box-shadow: none !important; background: transparent !important; border-radius: 0; }
.fh-list-panel table.table-list, .fh-list-panel .table { border: 0 !important; margin-bottom: 0; }
.fh-list-panel table.table-list thead th, .fh-list-panel .table thead th { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--bd-soft) !important; color: var(--mut) !important; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; padding: 12px 14px; }
.fh-list-panel table.table-list tbody td, .fh-list-panel .table tbody td { border: 0 !important; border-bottom: 1px solid var(--bd-soft) !important; background: transparent !important; padding: 14px; vertical-align: middle; }
.fh-list-panel table.table-list tbody tr:last-child td { border-bottom: 0 !important; }
.fh-list-panel table.table-list tbody tr:hover td { background: var(--card-hi) !important; }
.fh-list-panel .dataTables_info, .fh-list-panel .dataTables_length label { color: var(--mut); font-size: 13px; }
.fh-list-panel .dataTables_filter .form-control { border-radius: 10px; }
.fh-list-panel .dataTables_paginate .paginate_button { border-radius: 8px; }
.fh-list-panel table.table-list thead th.sorting::after, .fh-list-panel table.table-list thead th.sorting_asc::after, .fh-list-panel table.table-list thead th.sorting_desc::after { opacity: .5; }

/* --- cart: renewals / generic cart pages get the same air as the rest */
.fh-body #order-standard_cart .header-lined, .fh-body #order-standard_cart .header-lined.row { border: 0 !important; margin: 0 0 18px !important; padding: 0 !important; background: transparent !important; }
.fh-body #order-standard_cart .header-lined h1 { color: var(--tx) !important; }
.fh-body #order-standard_cart .service-renewal, .fh-body #order-standard_cart .domain-renewal, .fh-body #order-standard_cart .renewal-item { background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 14px; padding: 18px 20px; margin-bottom: 14px; color: var(--tx); }
.fh-body #order-standard_cart .service-renewal h3, .fh-body #order-standard_cart .service-renewal h4 { color: var(--tx); font-size: 17px; margin: 0 0 4px; }
.fh-body #order-standard_cart .service-renewal .label { border-radius: 999px; padding: 4px 10px; font-weight: 600; }
.fh-body #order-standard_cart .service-renewal .div-renewal-ineligible { color: var(--mut); }
.fh-body #order-standard_cart .order-summary { border-radius: 14px; overflow: hidden; }
.fh-body #order-standard_cart .order-summary .sub-heading, .fh-body #order-standard_cart .order-summary > h2, .fh-body #order-standard_cart .order-summary .summary-title { background: transparent !important; color: var(--tx) !important; }
.fh-body #order-standard_cart .order-summary .amt, .fh-body #order-standard_cart .order-summary .total-due-today .amt { color: var(--tx) !important; font-family: var(--mono); }
.fh-body #order-standard_cart .order-summary .btn-checkout { width: 100%; border-radius: 10px; padding: 12px; font-size: 15px; }
.fh-body #order-standard_cart .secondary-cart-sidebar .order-summary .summary-totals { color: var(--tx); }
.fh-body #order-standard_cart .btn-default.service-renewals-quick-filter { border-radius: 10px; }
.fh-body #order-standard_cart .service-renewals-filter { border-radius: 10px; margin-top: 8px; }
.fh-body #order-standard_cart #no-services, .fh-body #order-standard_cart .view-cart-empty { border-radius: 14px; padding: 28px; }

/* --- plan picker (orderforms/fimurohost_cart/products.tpl) */
.fh-body #order-standard_cart.fh-order > .row { display: block; }
.fh-order-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.fh-order-title { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.fh-order-title h1 { margin: 0; font-size: 28px; line-height: 1.15; letter-spacing: -.03em; color: var(--tx); }
.fh-order-title p { margin: 0; color: var(--mut); font-size: 14.5px; max-width: 64ch; }
.fh-order-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.fh-chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: var(--card-hi); color: var(--tx); }
.fh-chip i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.fh-chip-ok { background: var(--ok-tint); color: var(--ok); }
.fh-chip-p { background: var(--p-tint); color: var(--link); }
.fh-order-viewcart { flex-shrink: 0; white-space: nowrap; }
.fh-order-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.fh-order-cats { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-pill { display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--bd); background: var(--card); color: var(--tx) !important; font-size: 13.5px; font-weight: 500; text-decoration: none !important; transition: border-color .15s, background .15s; }
.fh-pill:hover { border-color: var(--p); }
.fh-pill.fh-on { background: var(--p); border-color: var(--p); color: #fff !important; font-weight: 600; }
.fh-cycle-toggle { display: inline-flex; gap: 2px; padding: 4px; border-radius: 12px; background: var(--card-hi); border: 1px solid var(--bd); }
.fh-cycle-btn { border: 0; background: transparent; color: var(--mut); padding: 8px 14px; border-radius: 9px; font: inherit; font-size: 13.5px; font-weight: 500; cursor: pointer; white-space: nowrap; transition: background .15s, color .15s; }
.fh-cycle-btn:hover { color: var(--tx); }
.fh-cycle-btn.fh-on { background: var(--card); color: var(--tx); font-weight: 650; box-shadow: 0 1px 2px rgba(0,0,0,.15); }
.fh-cycle-save { color: var(--ok); font-weight: 600; }
.fh-plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; margin: 0 0 18px; padding-top: 10px; }
.fh-body #order-standard_cart .fh-plan, .fh-body #order-standard_cart .fh-plan header, .fh-body #order-standard_cart .fh-plan .product-desc, .fh-body #order-standard_cart .fh-plan footer { text-align: left !important; }
.fh-body #order-standard_cart .fh-plan { position: relative; display: flex; flex-direction: column; margin: 0; padding: 0; background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 18px; overflow: visible; transition: border-color .15s, transform .15s, box-shadow .15s; }
.fh-body #order-standard_cart .fh-plan:hover { border-color: var(--p) !important; transform: translateY(-2px); box-shadow: 0 16px 34px -20px rgba(21,93,252,.45); }
.fh-body #order-standard_cart .fh-plan-popular { border-color: var(--p) !important; box-shadow: 0 0 0 1px var(--p), 0 20px 40px -24px rgba(21,93,252,.55); }
.fh-plan-flag { position: absolute; z-index: 2; top: -12px; left: 50%; transform: translateX(-50%); padding: 4px 12px; border-radius: 999px; background: #F5A07A; color: #2A1811; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.fh-body #order-standard_cart .fh-plan-head { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 16px !important; background: transparent !important; border-bottom: 1px solid var(--bd-soft) !important; margin: 0; }
.fh-plan-name { display: flex; flex-direction: column; gap: 2px; }
.fh-plan-name > span { font-size: 18px; font-weight: 700; letter-spacing: -.02em; color: var(--tx); }
.fh-plan-qty { font-family: var(--mono); font-size: 12px; color: var(--mut); }
.fh-body #order-standard_cart .fh-plan-price { float: none; text-align: left; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.fh-plan-from { font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--mut); font-weight: 600; }
.fh-price-block { display: none; flex-wrap: wrap; align-items: baseline; gap: 0 4px; }
.fh-price-block.fh-on { display: flex; }
.fh-price-note { flex-basis: 100%; }
.fh-body #order-standard_cart .fh-price-block .price { font-family: var(--mono); font-size: 30px; font-weight: 700; letter-spacing: -.03em; color: var(--tx); line-height: 1.1; display: inline; }
.fh-body #order-standard_cart .fh-price-block .cycle { font-size: 13px; color: var(--mut); margin-left: 4px; display: inline; }
.fh-price-note { font-size: 12.5px; color: var(--mut); margin-top: 3px; }
.fh-body #order-standard_cart .fh-plan-price .setup { font-size: 12px; color: var(--mut); margin-top: 4px; }
.fh-body #order-standard_cart .fh-plan-body { padding: 14px 22px 8px !important; width: 100%; float: none; color: var(--tx2); font-size: 13.5px; }
.fh-plan-tagline { margin: 0 0 10px; color: var(--mut); font-size: 13.5px; line-height: 1.5; }
.fh-body #order-standard_cart .fh-plan-features { list-style: none; margin: 0; padding: 0; }
.fh-body #order-standard_cart .fh-plan-features li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0 !important; border-bottom: 1px solid var(--bd-soft); position: static; }
.fh-body #order-standard_cart .fh-plan-features li::before { display: none; }
.fh-body #order-standard_cart .fh-plan-features li:last-child { border-bottom: 0; }
.fh-feat-name { color: var(--tx2); }
.fh-feat-val { font-family: var(--mono); font-weight: 600; color: var(--tx); white-space: nowrap; }
.fh-feat-yes { color: var(--ok); } .fh-feat-no { color: var(--mut); opacity: .7; }
.fh-plan-desc { color: var(--tx2); line-height: 1.6; }
.fh-plan-desc ul { padding-left: 18px; }
.fh-body #order-standard_cart .fh-plan-foot { padding: 12px 22px 22px !important; background: transparent !important; border: 0 !important; margin-top: auto; width: 100%; float: none; }
.fh-body #order-standard_cart .fh-plan-cta { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px 16px; border-radius: 12px; font-size: 14.5px; font-weight: 600; background: var(--card-hi); border: 1px solid var(--bd); color: var(--tx) !important; transition: background .15s, border-color .15s; }
.fh-body #order-standard_cart .fh-plan-cta:hover, .fh-body #order-standard_cart .fh-plan-popular .fh-plan-cta { background: var(--p); border-color: var(--p); color: #fff !important; }
.fh-body #order-standard_cart .fh-plan-popular .fh-plan-cta:hover { background: var(--p-hi); border-color: var(--p-hi); }
.fh-trust { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 18px; padding: 14px 22px; border: 1px solid var(--bd); border-radius: 14px; background: var(--card); margin-bottom: 20px; }
.fh-trust span { display: inline-flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--tx); }
.fh-trust i { width: 30px; height: 30px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: var(--ok-tint); color: var(--ok); font-size: 12px; }
.fh-compare .fh-panel-head p { margin: 2px 0 0; color: var(--mut); font-size: 13px; }
.fh-compare-scroll { overflow-x: auto; margin: 0 -22px -22px; padding: 0 22px 22px; }
.fh-compare-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.fh-compare-table th { text-align: center; padding: 12px 14px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--mut); border-bottom: 1px solid var(--bd-soft); }
.fh-compare-table th:first-child { text-align: left; }
.fh-compare-table td { padding: 11px 14px; text-align: center; border-bottom: 1px solid var(--bd-soft); color: var(--tx); }
.fh-compare-table tbody tr:nth-child(even) td { background: var(--card-hi); }
.fh-compare-table td.fh-compare-feat { text-align: left; color: var(--tx2); }
.fh-compare-table .fh-feat-val { font-weight: 500; }
@media (max-width: 720px) { .fh-order-head { flex-direction: column; } .fh-order-title h1 { font-size: 23px; } .fh-cycle-toggle { width: 100%; } .fh-cycle-btn { flex: 1; padding: 8px 6px; font-size: 12.5px; } }

/* renewals pages (categories column removed) */
.fh-body #order-standard_cart.fh-renewals .cart-body { width: 100%; float: none; padding: 0; }
.fh-body #order-standard_cart.fh-renewals .header-lined.row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.fh-body #order-standard_cart.fh-renewals .header-lined .col-md-6 { max-width: none; flex: 0 1 auto; padding: 0; }
.fh-body #order-standard_cart.fh-renewals .header-lined .col-md-6:last-child { display: flex; gap: 10px; align-items: center; }
.fh-body #order-standard_cart.fh-renewals .service-renewals-filter { margin: 0; width: 260px; }
.fh-body #order-standard_cart.fh-renewals .secondary-cart-body { float: none; width: auto; padding: 0; }
.fh-body #order-standard_cart.fh-renewals > .row > .row, .fh-body #order-standard_cart.fh-renewals .cart-body > .row { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; margin: 0; align-items: start; }
.fh-body #order-standard_cart.fh-renewals .secondary-cart-sidebar { float: none; width: auto; padding: 0; position: sticky; top: 20px; }
@media (max-width: 991px) { .fh-body #order-standard_cart.fh-renewals .cart-body > .row { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .fh-cycle-toggle { flex-wrap: wrap; } .fh-cycle-btn { flex: 1 1 auto; white-space: normal; } .fh-order-bar { align-items: stretch; } }
.fh-cycle-btn { white-space: normal; }
.fh-body #order-standard_cart .fh-plan { overflow: visible !important; }
.fh-body #order-standard_cart .fh-plan-head { align-items: stretch !important; }
.fh-body #order-standard_cart .fh-plan .fh-price-block .price { font-size: 30px !important; font-weight: 700 !important; line-height: 1.1 !important; color: var(--tx) !important; }
.fh-body #order-standard_cart .fh-plan .fh-price-block .cycle { font-size: 13px !important; color: var(--mut) !important; }

/* ================================================================ v3.3 === */

/* theme button: moon in light mode, sun in dark mode */
.fh-theme-btn .fh-ico-sun { display: none; }
html.dark .fh-theme-btn .fh-ico-sun { display: block; }
html.dark .fh-theme-btn .fh-ico-moon { display: none; }

/* currency chip / select */
.fh-cur { width: auto !important; padding: 0 12px !important; font-family: var(--mono); font-size: 13px; cursor: default; }
select.fh-cur-select { cursor: pointer; appearance: none; -webkit-appearance: none; padding-right: 26px !important; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235C6A83' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 9px center; color: var(--tx); }
.fh-cur-form { margin: 0; display: inline-flex; }

/* search palette */
.fh-search-wrap { position: relative; }
.fh-search { position: relative; }
.fh-kbd { margin-left: auto; font-family: var(--mono); font-size: 11px; color: var(--mut); border: 1px solid var(--bd); border-radius: 5px; padding: 1px 6px; line-height: 1.4; }
.fh-search:focus-within .fh-kbd { display: none; }
.fh-palette { position: absolute; top: calc(100% + 6px); left: 0; right: 0; min-width: 360px; z-index: 1050; background: var(--card); border: 1px solid var(--bd); border-radius: 14px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.12); padding: 6px; display: flex; flex-direction: column; gap: 1px; }
.fh-palette[hidden] { display: none; }
.fh-palette-item { display: flex; align-items: center; gap: 11px; padding: 9px 11px; border-radius: 9px; font-size: 13.5px; color: var(--tx) !important; text-decoration: none !important; }
.fh-palette-item i { width: 16px; text-align: center; color: var(--mut); font-size: 13px; }
.fh-palette-item.fh-on { background: var(--p-tint); color: var(--p) !important; }
.fh-palette-item.fh-on i { color: var(--p); }
.fh-palette-item b { font-weight: 650; }
@media (max-width: 1024px) { .fh-search-wrap { display: none; } }

/* overview v3.3 */
.fh-notice { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 12px; margin-bottom: 20px; font-size: 14px; color: var(--tx); background: var(--card); border: 1px solid var(--bd); }
.fh-notice > i { font-size: 16px; }
.fh-notice > span { flex: 1 1 auto; min-width: 0; }
.fh-notice-bad { background: var(--bad-tint); border-color: transparent; }
.fh-notice-bad > i { color: var(--bad); }
.fh-notice .fh-btn { flex-shrink: 0; }
.fh-kpi-money { font-size: 26px; }
.fh-tbl-wrap { overflow-x: auto; margin: 0 -22px -22px; padding: 0 22px 8px; }
.fh-tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.fh-tbl th { text-align: left; padding: 10px 12px; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 600; border-bottom: 1px solid var(--bd-soft); white-space: nowrap; }
.fh-tbl td { padding: 13px 12px; border-bottom: 1px solid var(--bd-soft); color: var(--tx); vertical-align: middle; }
.fh-tbl tbody tr:last-child td { border-bottom: 0; }
.fh-tbl tbody tr:hover td { background: var(--card-hi); }
.fh-tbl th:first-child, .fh-tbl td:first-child { padding-left: 4px; }
.fh-tbl-act { text-align: right; white-space: nowrap; }
.fh-tbl-act a { color: var(--link) !important; font-weight: 600; font-size: 13px; }
.fh-mono { font-family: var(--mono); font-size: 12.5px; }
.fh-pill-status { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--card-hi); color: var(--tx); white-space: nowrap; }
.fh-pill-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.fh-st-active, .fh-st-paid, .fh-st-completed { background: var(--ok-tint); color: var(--ok); }
.fh-st-pending, .fh-st-pendingtransfer, .fh-st-suspended, .fh-st-payment-pending, .fh-st-paymentpending, .fh-st-collections { background: var(--warn-tint); color: var(--warn); }
.fh-st-unpaid, .fh-st-overdue, .fh-st-cancelled, .fh-st-terminated, .fh-st-fraud, .fh-st-expired { background: var(--bad-tint); color: var(--bad); }
.fh-st-refunded, .fh-st-draft { background: var(--p-tint); color: var(--link); }
.fh-empty { padding: 18px 0 4px; color: var(--mut); font-size: 14px; }
.fh-empty a { color: var(--link); font-weight: 600; }
.fh-qa { display: flex; flex-direction: column; gap: 8px; }
.fh-qa a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--card-hi); border: 1px solid transparent; color: var(--tx) !important; font-weight: 600; font-size: 14px; text-decoration: none !important; transition: border-color .15s, background .15s; }
.fh-qa a i { width: 18px; text-align: center; color: var(--mut); }
.fh-qa a em { margin-left: auto; font-style: normal; color: var(--mut); }
.fh-qa a:hover { border-color: var(--p); background: var(--p-tint); }
.fh-qa a:hover i, .fh-qa a:hover em { color: var(--p); }
.fh-exp { display: flex; flex-direction: column; gap: 8px; }
.fh-exp-item { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 12px; background: var(--card-hi); color: var(--tx) !important; text-decoration: none !important; border: 1px solid transparent; }
.fh-exp-item:hover { border-color: var(--p); }
.fh-exp-item > i { color: var(--mut); width: 16px; text-align: center; }
.fh-exp-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.fh-exp-text strong { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-exp-text small { color: var(--mut); font-size: 12px; }

/* badges inside WHMCS panels/lists were rendering black */
.fh-body .badge, .fh-body .label { background: var(--card-hi) !important; color: var(--tx) !important; border-radius: 999px; padding: 4px 9px; font-weight: 600; font-size: 11.5px; }
.fh-body .badge-success, .fh-body .label-success, .fh-body .badge.badge-answered, .fh-body .badge.badge-open { background: var(--ok-tint) !important; color: var(--ok) !important; }
.fh-body .badge-warning, .fh-body .label-warning, .fh-body .badge.badge-customerreply, .fh-body .badge.badge-onhold, .fh-body .badge.badge-inprogress { background: var(--warn-tint) !important; color: var(--warn) !important; }
.fh-body .badge-danger, .fh-body .label-danger, .fh-body .badge.badge-closed { background: var(--bad-tint) !important; color: var(--bad) !important; }
.fh-body .badge-info, .fh-body .badge-primary, .fh-body .label-info, .fh-body .label-primary { background: var(--p-tint) !important; color: var(--link) !important; }
.fh-body .badge-dark, .fh-body .badge-secondary, .fh-body .badge-default, .fh-body .label-default { background: var(--card-hi) !important; color: var(--tx) !important; }
.fh-body kbd.fh-kbd { background: transparent !important; color: var(--mut) !important; box-shadow: none; }
.fh-user { padding: 6px; gap: 4px; }
.fh-user .fh-icon-btn { width: 30px; height: 30px; flex-shrink: 0; }
.fh-user-btn { gap: 8px; padding: 4px; }
.fh-user-text strong { font-size: 13px; }
.fh-avatar { width: 32px; height: 32px; font-size: 12px; flex-shrink: 0; }

/* ================================================================ v3.4 === */
.fh-crumb > span { display: none; }
.fh-crumb h1 { font-size: 22px; }

/* Renew Services — three columns: categories | list | summary */
.fh-body #order-standard_cart.fh-rn-page > .row { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 20px; margin: 0; align-items: start; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-side { width: auto; float: none; padding: 0; position: sticky; top: 20px; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-main { width: auto; float: none; padding: 0; min-width: 0; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-main > .row { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; margin: 0; align-items: start; }
.fh-body #order-standard_cart.fh-rn-page .secondary-cart-body { float: none; width: auto; padding: 0; min-width: 0; }
.fh-body #order-standard_cart.fh-rn-page .secondary-cart-sidebar { float: none; width: auto; padding: 0; position: sticky; top: 20px; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head { display: flex !important; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 14px; border: 0 !important; margin: 0 0 16px !important; padding: 0 !important; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head .col-md-6 { max-width: none; flex: 0 1 auto; padding: 0; }
.fh-rn-title h1 { margin: 0 0 4px !important; font-size: 28px !important; letter-spacing: -.03em; }
.fh-rn-title p { margin: 0; color: var(--mut); font-size: 14px; max-width: 52ch; }
.fh-rn-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.fh-body #order-standard_cart .fh-rn-search { width: 300px; margin: 0; display: flex; align-items: center; gap: 9px; height: 40px; padding: 0 13px; border: 1px solid var(--bd); border-radius: 11px; background: var(--card); color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-search input { border: 0 !important; background: transparent !important; padding: 0; height: auto; box-shadow: none !important; color: var(--tx) !important; font-size: 14px; flex: 1; }
.fh-body #order-standard_cart .fh-rn-toggle { height: 40px; border-radius: 11px !important; padding: 0 14px; font-weight: 600; font-size: 13.5px; }
/* cards */
.fh-body #order-standard_cart .fh-rn { padding: 0 !important; margin-bottom: 12px !important; overflow: hidden; }
.fh-rn-row { display: grid; grid-template-columns: 44px minmax(0, 1.4fr) minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 16px 18px; }
.fh-rn-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--p-tint); color: var(--link); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
.fh-rn-name { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fh-body #order-standard_cart .fh-rn-name h3 { font-size: 16px !important; font-weight: 700; margin: 0 !important; color: var(--tx); }
.fh-body #order-standard_cart .fh-rn-name h4 { font-size: 12.5px !important; font-family: var(--mono); font-weight: 500; margin: 0 !important; color: var(--mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-rn-due { display: flex; flex-direction: column; gap: 1px; }
.fh-rn-lbl { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 600; }
.fh-rn-due strong { font-family: var(--mono); font-size: 14px; color: var(--tx); }
.fh-rn-due small { color: var(--mut); font-size: 12px; }
.fh-rn-due small.fh-rn-past { color: var(--bad); }
.fh-body #order-standard_cart .fh-rn-status .label { border-radius: 999px !important; padding: 4px 11px !important; font-size: 12px !important; }
.fh-rn-act { min-width: 130px; text-align: right; }
.fh-body #order-standard_cart .fh-rn-act .btn-add-renewal-to-cart { border-radius: 10px !important; padding: 9px 14px; font-weight: 600; font-size: 13.5px; background: var(--p) !important; border-color: var(--p) !important; color: #fff !important; float: none !important; }
.fh-body #order-standard_cart .fh-rn-act .btn-add-renewal-to-cart .fa-spinner { display: none; }
.fh-body #order-standard_cart .fh-rn-act .btn-add-renewal-to-cart.loading .fa-spinner { display: inline-block; }
.fh-rn-unavail { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: 10px; border: 1px solid var(--bd); color: var(--mut); font-size: 13px; font-weight: 600; background: var(--card-hi); }
.fh-rn-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 18px; border-top: 1px solid var(--bd-soft); background: var(--card-hi); font-size: 13px; color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-foot .div-renewal-ineligible { color: var(--mut); margin: 0; }
.fh-rn-foot .div-renewal-period { color: var(--tx2); }
.fh-rn-foot .div-renewal-period-label { color: var(--mut); margin-right: 6px; }
.fh-rn-link { color: var(--link) !important; font-weight: 600; white-space: nowrap; }
.fh-rn-addons { padding: 6px 18px 12px; border-top: 1px solid var(--bd-soft); }
.fh-rn-addons-title { font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--mut) !important; margin: 10px 0 8px !important; }
.fh-rn-addons .fh-rn { border: 1px solid var(--bd-soft) !important; }
/* summary */
.fh-body #order-standard_cart .fh-rn-summary { padding: 0 !important; overflow: hidden; }
.fh-rn-summary-head { padding: 16px 20px; border-bottom: 1px solid var(--bd-soft); }
.fh-body #order-standard_cart .fh-rn-summary-head h2 { font-size: 16px !important; margin: 0 !important; color: var(--tx); }
.fh-rn-summary-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 26px 20px; }
.fh-rn-summary-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--card-hi); color: var(--mut); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 4px; }
.fh-rn-summary-empty strong { color: var(--tx); font-size: 14.5px; }
.fh-rn-summary-empty small { color: var(--mut); font-size: 12.5px; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container { padding: 0 20px; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container:not(:empty) { padding: 14px 20px 16px; }
.fh-rn-summary-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.fh-body #order-standard_cart .fh-rn-summary-actions #btnGoToCart { width: 100%; justify-content: center; border-radius: 12px !important; padding: 12px !important; font-size: 14.5px; }
.fh-rn-secure { display: flex; align-items: center; justify-content: center; gap: 7px; font-size: 12.5px; color: var(--mut); }
.fh-body #order-standard_cart .order-summary .loader { color: var(--mut); }
@media (max-width: 1199px) { .fh-body #order-standard_cart.fh-rn-page > .row { grid-template-columns: 1fr; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side { position: static; } }
@media (max-width: 991px) { .fh-body #order-standard_cart.fh-rn-page .fh-rn-main > .row { grid-template-columns: 1fr; } .fh-body #order-standard_cart.fh-rn-page .secondary-cart-sidebar { position: static; } }
@media (max-width: 720px) { .fh-rn-row { grid-template-columns: 44px minmax(0, 1fr); } .fh-rn-act { text-align: left; grid-column: 2; } .fh-rn-due, .fh-rn-status { grid-column: 2; } .fh-body #order-standard_cart .fh-rn-search { width: 100%; } }
.fh-rn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.fh-rn-name { flex: 1 1 200px; }
.fh-rn-due { flex: 0 0 auto; min-width: 120px; }
.fh-rn-status { flex: 0 0 auto; }
.fh-rn-act { flex: 0 0 auto; margin-left: auto; min-width: 0; }
.fh-body #order-standard_cart.fh-rn-page > .row { grid-template-columns: 230px minmax(0, 1fr); }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-main > .row { grid-template-columns: minmax(0, 1fr) 300px; }
@media (max-width: 1279px) { .fh-body #order-standard_cart.fh-rn-page > .row { grid-template-columns: 1fr; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side { position: static; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side .card-sidebar .list-group { display: flex; flex-direction: row; flex-wrap: wrap; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side .card-sidebar .list-group-item { border-radius: 999px !important; border: 1px solid var(--bd) !important; padding: 7px 14px; margin: 0 6px 6px 0; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side .card-sidebar { border: 0; background: transparent; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side .card-sidebar .card-header { padding-left: 0; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-side .card-sidebar .card-body, .fh-body #order-standard_cart.fh-rn-page .fh-rn-side .card-sidebar .list-group { padding: 6px 0 0; background: transparent; } }
@media (max-width: 720px) { .fh-rn-act { margin-left: 0; width: 100%; } .fh-rn-act .btn, .fh-rn-unavail { width: 100%; justify-content: center; } }

/* ================================================================ v3.5 === */
.fh-logo img, .fh-guest-bar .fh-logo img { height: 36px !important; width: auto; }
.fh-pane-logo img { height: 32px !important; }
/* renewals — match the reference */
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head { align-items: flex-start; margin-bottom: 14px !important; }
.fh-rn-chips { display: flex; gap: 8px; align-items: center; padding-top: 6px; }
.fh-rn-chip { font-family: var(--mono); font-size: 12px; padding: 5px 11px; border-radius: 999px; background: var(--card-hi); border: 1px solid var(--bd); color: var(--tx); }
.fh-rn-chip-warn { background: var(--warn-tint); border-color: transparent; color: var(--warn); }
.fh-rn-tools { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; }
.fh-rn-tools-spacer { flex: 1; }
.fh-body #order-standard_cart .fh-rn-search { flex: 1 1 auto; width: auto; }
.fh-body #order-standard_cart .fh-rn-toggle { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 14px 0 10px; border-radius: 11px !important; background: var(--card) !important; border: 1px solid var(--bd) !important; color: var(--tx) !important; font-weight: 600; font-size: 13.5px; }
.fh-switch { width: 34px; height: 20px; border-radius: 999px; background: var(--bd); position: relative; transition: background .18s; flex-shrink: 0; }
.fh-switch-knob { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .18s; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.fh-rn-toggle.fh-on .fh-switch { background: var(--p); }
.fh-rn-toggle.fh-on .fh-switch-knob { transform: translateX(14px); }
.fh-body #order-standard_cart .fh-rn-name h3 { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.fh-rn-plan { font-size: 16px; font-weight: 700; color: var(--tx); }
.fh-rn-group { font-size: 13px; font-weight: 500; color: var(--mut); }
.fh-rn-due strong { font-size: 15px; }
.fh-rn-due small.fh-rn-past { color: var(--bad); font-weight: 500; }
.fh-body #order-standard_cart .fh-rn-status .label.fh-st-pending { background: var(--warn-tint) !important; color: var(--warn) !important; }
.fh-body #order-standard_cart .fh-rn-status .label.fh-st-active { background: var(--ok-tint) !important; color: var(--ok) !important; }
.fh-body #order-standard_cart .fh-rn-status .label.fh-st-unpaid { background: var(--bad-tint) !important; color: var(--bad) !important; }
.fh-rn-unavail { background: var(--card-hi); border-color: var(--bd); color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-foot .div-renewal-ineligible { color: var(--mut); font-size: 13px; }
/* summary */
.fh-rn-summary-head { display: flex; align-items: center; justify-content: space-between; }
.fh-rn-summary-count { font-family: var(--mono); font-size: 12px; color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-summary .summary-container { padding: 0 20px 6px !important; font-size: 13.5px; color: var(--tx); }
.fh-body #order-standard_cart .fh-rn-summary .summary-container .product-name { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--mut); margin: 10px 0 4px; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--bd-soft); }
.fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix .float-left, .fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix .float-right { float: none !important; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix .float-right { text-align: right; font-family: var(--mono); }
.fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix a { color: var(--bad); margin-left: 6px; }
.fh-body #order-standard_cart .fh-rn-summary .summary-totals { margin-top: 6px; }
.fh-body #order-standard_cart .fh-rn-summary .summary-totals .clearfix { border: 0; padding: 6px 0; color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today { display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; padding: 12px 0 14px; margin-top: 4px; border-top: 1px solid var(--bd-soft); background: transparent !important; text-align: left; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today .amt { font-family: var(--mono); font-size: 26px; font-weight: 700; color: var(--tx) !important; display: block; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today span:not(.amt) { font-size: 14px; font-weight: 600; color: var(--tx); }
.fh-body #order-standard_cart .fh-rn-summary-actions #btnGoToCheckout { width: 100%; justify-content: center; border-radius: 12px !important; padding: 12px !important; font-size: 14.5px; font-weight: 600; opacity: .55; pointer-events: none; }
.fh-body #order-standard_cart .fh-rn-summary-actions.fh-ready #btnGoToCheckout { opacity: 1; pointer-events: auto; }
.fh-body #order-standard_cart .fh-rn-summary-actions #btnGoToCart { width: 100%; justify-content: center; border-radius: 12px !important; padding: 11px !important; font-size: 14px; }
.fh-rn-summary-empty { padding: 22px 20px 18px; }
.fh-body #order-standard_cart .fh-rn-summary-head h2 { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }

/* ================================================================ v3.6 === */
/* kill Standard Cart's grey/white renewal wrappers and its floated filter widths */
.fh-body #order-standard_cart .service-renewals, .fh-body #order-standard_cart .domain-renewals, .fh-body #order-standard_cart .addon-renewals, .fh-body #order-standard_cart .addon-renewals > div { background: transparent !important; border: 0 !important; margin: 0 !important; }
.fh-body #order-standard_cart .service-renewals .service-renewal, .fh-body #order-standard_cart .service-renewals .service-renewal:nth-child(even), .fh-body #order-standard_cart .addon-renewals .service-renewal { background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 14px !important; margin: 0 0 12px !important; }
.fh-body #order-standard_cart .fh-rn-toggle, .fh-body #order-standard_cart .service-renewals-quick-filter { width: auto !important; float: none !important; margin: 0 !important; flex-shrink: 0; }
.fh-body #order-standard_cart .form-control.service-renewals-filter, .fh-body #order-standard_cart .form-control.domain-renewals-filter { background: transparent !important; padding: 0 !important; width: auto !important; float: none !important; height: auto !important; box-shadow: none !important; border: 0 !important; color: var(--tx) !important; flex: 1 1 auto; }
.fh-body #order-standard_cart .fh-rn-search { flex: 1 1 auto; width: auto; max-width: none; margin: 0; }
.fh-body #order-standard_cart .fh-rn-tools { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; }
.fh-body #order-standard_cart.fh-rn-page .secondary-cart-body .fh-rn-head { margin-bottom: 14px !important; }
.fh-rn-title p { max-width: none; }
.fh-body #order-standard_cart .fh-rn-summary, .fh-body #order-standard_cart .order-summary { background: var(--card) !important; border: 1px solid var(--bd) !important; border-bottom-width: 1px !important; border-radius: 14px !important; margin: 0 !important; }
.fh-body #order-standard_cart .order-summary .summary-totals, .fh-body #order-standard_cart .order-summary .subtotal, .fh-body #order-standard_cart .order-summary .bordered-totals { border-color: var(--bd-soft) !important; }
.fh-body #order-standard_cart .order-summary .total-due-today span:not(.amt) { text-align: left; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today { border: 0 !important; border-top: 1px solid var(--bd-soft) !important; }

/* ================================================================ v3.7 === renew page, 1:1 with reference */
/* head: title left, chips right on the same line */
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head { display: flex !important; flex-wrap: nowrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head .fh-rn-title { flex: 1 1 auto; min-width: 0; }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head .fh-rn-chips { flex: 0 0 auto; padding: 0 0 2px; }
.fh-rn-title h1 { margin: 0 0 6px !important; }
.fh-rn-title p { font-size: 13.5px; }
/* search + toggle: one row, search fills, toggle compact */
.fh-body #order-standard_cart .fh-rn-tools { display: flex; align-items: stretch; gap: 10px; margin: 0 0 14px; }
.fh-body #order-standard_cart .fh-rn-search { flex: 1 1 auto; display: flex; align-items: center; gap: 10px; height: 42px; padding: 0 14px; margin: 0; border: 1px solid var(--bd); border-radius: 11px; background: var(--card); color: var(--mut); font-weight: 400; cursor: text; }
.fh-body #order-standard_cart .fh-rn-search:focus-within { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); }
.fh-body #order-standard_cart .fh-rn-search i { font-size: 13px; }
.fh-body #order-standard_cart .fh-rn-search input.form-control { flex: 1 1 auto; min-width: 0; height: 40px !important; line-height: 40px; font-size: 14px !important; }
.fh-body #order-standard_cart .fh-rn-search input::placeholder { color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-toggle { height: 42px !important; padding: 0 14px 0 12px !important; white-space: nowrap; }
/* card: name | due | status ........ action */
.fh-rn-row { flex-wrap: nowrap; gap: 18px; padding: 16px 18px; }
.fh-rn-name { flex: 0 1 230px; }
.fh-body #order-standard_cart .fh-rn-name h3 { flex-wrap: wrap; row-gap: 0; }
.fh-rn-due { flex: 0 0 130px; min-width: 0; }
.fh-rn-status { flex: 1 1 auto; }
.fh-rn-act { flex: 0 0 auto; margin-left: 0; }
.fh-rn-unavail { opacity: .75; }
.fh-rn-foot { padding: 10px 18px; font-size: 12.5px; }
.fh-body #order-standard_cart .fh-rn-foot .div-renewal-ineligible { font-weight: 400 !important; font-size: 12.5px; }
.fh-body #order-standard_cart .fh-rn-foot .div-renewal-ineligible i { opacity: .8; margin-right: 4px; }
/* summary card: everything inside, rows label ... value */
.fh-body #order-standard_cart .fh-rn-summary { display: flex; flex-direction: column; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix::before,
.fh-body #order-standard_cart .fh-rn-summary .summary-container .clearfix::after { display: none !important; content: none !important; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container { padding: 0 20px !important; border-top: 1px solid var(--bd-soft); }
.fh-body #order-standard_cart .fh-rn-summary .summary-totals { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.fh-body #order-standard_cart .fh-rn-summary .summary-totals .clearfix { display: flex !important; justify-content: space-between; padding: 14px 0 !important; border-bottom: 1px solid var(--bd-soft) !important; color: var(--tx) !important; font-size: 14px; }
.fh-body #order-standard_cart .fh-rn-summary .summary-totals .clearfix .float-right { font-family: var(--mono); color: var(--tx); }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today { display: flex !important; flex-direction: row-reverse; align-items: center; justify-content: space-between; padding: 16px 0 !important; margin: 0 !important; border: 0 !important; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today span:not(.amt) { font-size: 14px; font-weight: 600; text-align: left !important; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today span:not(.amt)::after { content: attr(data-cur); }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today .amt { font-size: 28px !important; text-align: right !important; }
.fh-body #order-standard_cart .fh-rn-summary-actions { margin: 0 !important; padding: 0 20px 18px; gap: 10px; }
.fh-body #order-standard_cart .fh-rn-summary-actions #btnGoToCheckout { background: var(--p) !important; border-color: var(--p) !important; color: #fff !important; opacity: .45; }
.fh-body #order-standard_cart .fh-rn-summary-actions.fh-ready #btnGoToCheckout { opacity: 1; }
.fh-body #order-standard_cart .fh-rn-summary-actions #btnGoToCart { background: transparent !important; border: 1px solid var(--bd) !important; color: var(--tx) !important; display: flex; align-items: center; gap: 8px; }
.fh-body #order-standard_cart .fh-rn-summary .fh-rn-secure { display: flex; align-items: center; justify-content: flex-start; gap: 8px; padding: 13px 20px; border-top: 1px solid var(--bd-soft); font-size: 12.5px; color: var(--mut); }
.fh-body #order-standard_cart .fh-rn-summary .loader { position: absolute; right: 16px; top: 16px; height: auto; padding: 0; }
.fh-body #order-standard_cart .fh-rn-summary { position: relative; }
@media (max-width: 900px) { .fh-rn-row { flex-wrap: wrap; } .fh-rn-name { flex: 1 1 100%; } .fh-rn-act { width: 100%; } .fh-body #order-standard_cart.fh-rn-page .fh-rn-head { flex-wrap: wrap; } }
.fh-body #order-standard_cart.fh-rn-page .fh-rn-head .col-md-6 { width: auto !important; }
.fh-body #order-standard_cart .fh-rn-summary .summary-container { border: 0 !important; border-top: 1px solid var(--bd-soft) !important; background: transparent !important; border-radius: 0 !important; box-shadow: none !important; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today span { white-space: nowrap; }
.fh-body #order-standard_cart .fh-rn-summary .total-due-today .amt { font-size: 24px !important; }
.fh-rn-name { flex: 0 0 210px; min-width: 0; }
.fh-rn-due { flex: 0 0 120px; }
.fh-rn-status { flex: 1 1 auto; min-width: 0; }
.fh-rn-status .fh-pill-status { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.fh-body #order-standard_cart .fh-rn-act .btn-add-renewal-to-cart { white-space: nowrap; }
.fh-body #order-standard_cart.fh-rn-page > .row { grid-template-columns: 220px minmax(0, 1fr); }

/* ================================================================ v3.8 === service details */
.fh-crumb-sub { display: block; font-family: var(--mono); font-size: 11.5px; color: var(--mut); margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-crumb-sub a { color: var(--mut) !important; }
.fh-crumb-sub a:hover { color: var(--link) !important; }
.fh-notice-warn { background: var(--warn-tint); border-color: transparent; }
.fh-notice-warn > i { color: var(--warn); }
.fh-svc-hero { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; padding: 22px 24px !important; }
.fh-svc-ico { width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px; background: var(--p-tint); color: var(--link); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; }
.fh-svc-id { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.fh-svc-title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fh-svc-title h2 { margin: 0 !important; font-size: 22px !important; letter-spacing: -.025em; }
.fh-svc-meta { display: flex; flex-wrap: wrap; gap: 4px 0; font-family: var(--mono); font-size: 12.5px; color: var(--mut); }
.fh-svc-meta span + span::before { content: "·"; margin: 0 9px; }
.fh-svc-cta { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.fh-svc-cta .fh-btn { height: 40px; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.fh-svc-cta .fh-btn .fh-ext, .fh-svc-cta .fh-btn .sidebar-menu-item-icon { font-size: 11px; }
.fh-btn-icon { width: 40px; padding: 0 !important; justify-content: center; }
.fh-more { position: relative; }
.fh-more-menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 1060; min-width: 240px; background: var(--card); border: 1px solid var(--bd); border-radius: 14px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.12); padding: 6px; display: flex; flex-direction: column; gap: 1px; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s, transform .15s, visibility 0s linear .15s; }
.fh-more.fh-open .fh-more-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.fh-more-item { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 9px; font-size: 13.5px; font-weight: 500; color: var(--tx) !important; text-decoration: none !important; }
.fh-more-item > i:first-child { width: 16px; text-align: center; color: var(--mut); }
.fh-more-item:hover { background: var(--p-tint); color: var(--p) !important; }
.fh-more-item:hover > i { color: var(--p); }
.fh-more-item .fh-ext { margin-left: auto; font-size: 10px; opacity: .6; }
.fh-more-div { height: 1px; margin: 4px 6px; background: var(--bd-soft); }
.fh-svc-cols { align-items: flex-start; }
.fh-svc-cols .fh-col-main { flex-grow: 1.9; }
.fh-svc-cols .fh-col-side { flex-grow: 1.1; }
.fh-panel-head p { margin: 3px 0 0; font-size: 13px; color: var(--mut); }
/* resource usage */
.fh-usage { display: flex; flex-direction: column; gap: 18px; padding-top: 4px; }
.fh-use-top { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; margin-bottom: 8px; color: var(--tx2); }
.fh-use-top strong { font-family: var(--mono); font-weight: 500; color: var(--tx); font-size: 13px; }
.fh-use-bar { height: 6px; border-radius: 999px; background: var(--bd-soft); overflow: hidden; }
.fh-use-bar i { display: block; height: 100%; border-radius: 999px; min-width: 4px; }
.fh-ub-p { background: #6D8DFF; } .fh-ub-ok { background: var(--ok); } .fh-ub-warn { background: #F5B547; } .fh-ub-bad { background: var(--bad); }
/* quick actions grid */
.fh-qgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fh-qbtn { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 12px; background: var(--card-hi); border: 1px solid transparent; color: var(--tx) !important; font-weight: 600; font-size: 14px; text-decoration: none !important; transition: border-color .15s, background .15s; min-width: 0; }
.fh-qbtn > i:first-child { width: 16px; text-align: center; color: var(--mut); flex-shrink: 0; }
.fh-qbtn > span:not(.loading):not(.sidebar-menu-item-icon) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-qbtn .fh-ext { margin-left: auto; font-size: 10px; color: var(--mut); }
.fh-qbtn:hover { border-color: var(--p); background: var(--p-tint); }
.fh-qbtn:hover > i { color: var(--p); }
.fh-qbtn.disabled { opacity: .5; pointer-events: none; }
/* module output */
.fh-module-out { text-align: left; }
.fh-module-out .btn { border-radius: 10px; }
.fh-svc-module { padding: 22px !important; }
/* definition lists (billing / server info) */
.fh-dl { margin: 0; display: flex; flex-direction: column; }
.fh-dl > div { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--bd-soft); }
.fh-dl > div:last-child { border-bottom: 0; }
.fh-dl dt { font-weight: 400; font-size: 13.5px; color: var(--mut); margin: 0; }
.fh-dl dd { margin: 0; font-family: var(--mono); font-size: 13px; color: var(--tx); text-align: right; display: flex; align-items: center; gap: 8px; min-width: 0; word-break: break-all; }
.fh-copy { border: 0; background: transparent; color: var(--mut); padding: 2px 4px; border-radius: 6px; cursor: pointer; font-size: 12px; flex-shrink: 0; }
.fh-copy:hover { color: var(--p); background: var(--p-tint); }
.fh-copy.fh-copied { color: var(--ok); }
.fh-copy.fh-copied i::before { content: "\f00c"; font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free"; font-weight: 900; }
.fh-svc-billbtns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.fh-svc-billbtns .fh-btn { justify-content: center; text-align: center; }
.fh-svc-billbtns .fh-btn.disabled { opacity: .5; pointer-events: none; }
.fh-dl-desc { display: block; font-weight: 400; font-size: 12.5px; color: var(--mut); }
.fh-pw-form { max-width: 520px; }
.fh-pw-row { display: flex; gap: 10px; }
.fh-pw-row .form-control { flex: 1; }
@media (max-width: 1100px) { .fh-svc-hero { flex-wrap: wrap; } .fh-svc-cta { width: 100%; } }
@media (max-width: 720px) { .fh-qgrid { grid-template-columns: 1fr; } .fh-svc-cta { flex-wrap: wrap; } .fh-svc-cta .fh-btn:not(.fh-btn-icon) { flex: 1; justify-content: center; } }
.fh-svc-billbtns .fh-btn { white-space: nowrap; font-size: 13.5px; padding-left: 10px; padding-right: 10px; }

/* ================================================================ v3.9 === service details — approved SaaS layout */
.fh-page { max-width: 1080px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.fh-page .fh-cols { gap: 24px; }
.fh-page .fh-col-main, .fh-page .fh-col-side { gap: 24px; }
.fh-slim { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 10px; font-size: 13px; color: var(--tx); }
.fh-slim > span { flex: 1 1 auto; min-width: 0; }
.fh-slim a { font-weight: 600; white-space: nowrap; }
.fh-slim .fh-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.fh-slim-bad { background: var(--bad-tint); } .fh-slim-bad .fh-dot { background: var(--bad); } .fh-slim-bad a { color: var(--bad) !important; }
.fh-slim-warn { background: var(--warn-tint); } .fh-slim-warn .fh-dot { background: var(--warn); } .fh-slim-warn a { color: var(--warn) !important; }
/* page header */
.fh-ph { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fh-ph-id { display: flex; align-items: center; gap: 16px; min-width: 0; }
.fh-ph-ico { width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px; background: var(--p-tint); color: #3D7BFF; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; }
.fh-ph-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fh-ph-title h1 { margin: 0 !important; font-size: 26px !important; font-weight: 700; letter-spacing: -.03em; word-break: break-all; }
.fh-ph-sub { display: block; margin-top: 4px; font-size: 14px; color: var(--mut); }
.fh-ph-cta { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.fh-ph-cta .fh-btn { height: 40px; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 13.5px; font-weight: 600; }
.fh-ph-cta .fh-btn .fh-ext { font-size: 11px; }
/* tabs */
.fh-body .fh-ptabs { display: flex; flex-wrap: wrap; gap: 24px; border-bottom: 1px solid var(--bd-soft); margin: 0; padding: 0; }
.fh-body .fh-ptabs a { padding: 0 0 12px; font-size: 14px; color: var(--mut) !important; text-decoration: none !important; border: 0; background: transparent; }
.fh-body .fh-ptabs a:hover { color: var(--tx) !important; }
.fh-body .fh-ptabs a.active { color: var(--tx) !important; font-weight: 600; box-shadow: inset 0 -2px 0 var(--p); }
/* at-a-glance strip */
.fh-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--bd); border-radius: 14px; background: var(--card); margin-bottom: 24px; }
.fh-strip > div { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; border-right: 1px solid var(--bd-soft); min-width: 0; }
.fh-strip > div:last-child { border-right: 0; }
.fh-strip-l { font-size: 12px; color: var(--mut); }
.fh-strip strong { font-family: var(--mono); font-size: 17px; font-weight: 600; color: var(--tx); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-strip strong em { font-style: normal; font-size: 12px; font-weight: 400; color: var(--mut); }
.fh-strip small { font-size: 12px; color: var(--mut); }
.fh-strip small.fh-strip-bad { color: var(--bad); } .fh-strip small.fh-strip-warn { color: var(--warn); }
.fh-strip .fh-use-bar { height: 4px; margin-top: 4px; }
/* cards */
.fh-card { border: 1px solid var(--bd); border-radius: 14px; background: var(--card); min-width: 0; }
.fh-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--bd-soft); }
.fh-card-head h2 { margin: 0 !important; font-size: 15px !important; font-weight: 600; }
.fh-card-head .fh-act { font-size: 13px; font-weight: 500; }
.fh-card-body { padding: 6px 20px 16px; }
.fh-qgrid.fh-card-body { padding: 14px; gap: 8px; }
.fh-card-flush { margin: 0 !important; padding: 0 8px 8px !important; }
.fh-card-pad { padding: 20px 22px; }
.fh-card .fh-dl > div { padding: 11px 0; }
.fh-mt { margin-top: 12px; }
.fh-card .fh-dl dd .fh-pill-status { font-family: var(--sans); }
.fh-module-out.fh-card-body { padding: 18px 20px; }
/* quick action tiles */
.fh-page .fh-qbtn { padding: 12px 14px; border-radius: 10px; font-weight: 500; font-size: 13.5px; }
.fh-page .fh-qbtn > i:first-child { width: 30px; height: 30px; border-radius: 8px; background: var(--p-tint); color: #3D7BFF; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }
.fh-page .fh-qbtn:hover > i:first-child { background: var(--p); color: #fff; }
/* support card + quiet cancel */
.fh-help-card { padding: 18px 20px; border-radius: 14px; background: var(--p-tint); display: flex; flex-direction: column; gap: 6px; }
.fh-help-card strong { font-size: 14px; color: var(--tx); }
.fh-help-card span { font-size: 13px; line-height: 1.5; color: var(--tx2); }
.fh-help-card a { margin-top: 4px; font-size: 13px; font-weight: 600; color: var(--link) !important; }
.fh-cancel-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 0 4px; font-size: 13px; color: var(--mut); }
.fh-cancel-row a { color: var(--bad) !important; font-weight: 600; }
.fh-cancel-pending { color: var(--warn); font-weight: 600; }
.fh-page .fh-svc-cols { align-items: flex-start; }
.fh-page .fh-svc-cols .fh-col-main { flex-grow: 1.65; }
.fh-page .fh-svc-cols .fh-col-side { flex-grow: 1; }
@media (max-width: 1100px) { .fh-ph { flex-wrap: wrap; } .fh-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fh-strip > div:nth-child(2) { border-right: 0; } .fh-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--bd-soft); } }
@media (max-width: 720px) { .fh-ph-cta { width: 100%; flex-wrap: wrap; } .fh-ph-cta .fh-btn:not(.fh-btn-icon) { flex: 1; justify-content: center; } .fh-ph-title h1 { font-size: 21px !important; } .fh-body .fh-ptabs { gap: 16px; overflow-x: auto; flex-wrap: nowrap; } .fh-body .fh-ptabs a { white-space: nowrap; } }

/* ================================================================ v3.10 === one content width on every page */
.fh-app .fh-content { width: 100%; max-width: 1400px; margin-left: auto; margin-right: auto; }
.fh-page { max-width: none; }

/* ================================================================ v3.11 === */
.fh-app .fh-content { max-width: 1560px; }
/* sticky top bar */
.fh-app .fh-topbar { position: sticky; top: 0; z-index: 1030; background: var(--side); }
@supports (backdrop-filter: blur(8px)) {
  .fh-app .fh-topbar { background: color-mix(in srgb, var(--side) 88%, transparent); backdrop-filter: saturate(160%) blur(10px); -webkit-backdrop-filter: saturate(160%) blur(10px); }
}
.fh-palette { z-index: 1040; }
.fh-page .fh-qgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1400px) { .fh-page .fh-qgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .fh-page .fh-qgrid { grid-template-columns: 1fr; } }

/* ================================================================ v3.12 === */
.fh-logo img.fh-logo-light, .fh-logo img.fh-logo-dark, html.dark .fh-logo img.fh-logo-dark,
.fh-guest-bar .fh-logo img.fh-logo-light, .fh-guest-bar .fh-logo img.fh-logo-dark { height: 36px !important; width: auto !important; max-width: none !important; }
.fh-pane-logo img { height: 36px !important; width: auto !important; }
.fh-slim-x { border: 0; background: transparent; color: var(--mut); width: 26px; height: 26px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; margin-left: 4px; }
.fh-slim-x:hover { background: rgba(127,127,127,.15); color: var(--tx); }
.fh-qsep { grid-column: 1 / -1; height: 1px; background: var(--bd-soft); margin: 4px 2px; }

/* ================================================================ v3.13 === list pages (My Services) */
.fh-lp { display: flex; flex-direction: column; gap: 20px; }
.fh-lp-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding-top: 6px; }
.fh-lp-head h1 { margin: 0 0 6px !important; font-size: 30px !important; font-weight: 700; letter-spacing: -.03em; }
.fh-lp-head p { margin: 0; color: var(--mut); font-size: 14px; }
.fh-lp-head .fh-btn { height: 42px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; white-space: nowrap; }
.fh-lp-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.fh-seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 4px; border: 1px solid var(--bd); border-radius: 12px; background: var(--card); }
.fh-seg-btn { border: 0; background: transparent; color: var(--mut); font: inherit; font-size: 13.5px; font-weight: 500; padding: 7px 12px; border-radius: 9px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.fh-seg-btn em { font-style: normal; font-family: var(--mono); font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--card-hi); color: var(--mut); }
.fh-seg-btn:hover { color: var(--tx); }
.fh-seg-btn.fh-on { background: var(--card-hi); color: var(--tx); font-weight: 600; }
.fh-seg-btn.fh-on em { background: var(--p); color: #fff; }
.fh-lp-search { display: flex; align-items: center; gap: 10px; width: 340px; max-width: 100%; height: 42px; padding: 0 14px; margin: 0; border: 1px solid var(--bd); border-radius: 11px; background: var(--card); color: var(--mut); font-weight: 400; }
.fh-lp-search:focus-within { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); }
.fh-lp-search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--tx); font: inherit; font-size: 14px; outline: none; }
.fh-lp-card { overflow: hidden; }
.fh-lp-card .fh-tbl-wrap { margin: 0; padding: 0; }
.fh-lp-tbl th { padding: 14px 20px !important; background: transparent; }
.fh-lp-tbl th button { border: 0; background: transparent; padding: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.fh-lp-tbl th button i { font-size: 10px; opacity: .6; }
.fh-lp-tbl th button.fh-sorted { color: var(--tx); }
.fh-lp-tbl th button.fh-sorted i { opacity: 1; }
.fh-lp-tbl td { padding: 14px 20px !important; }
.fh-lp-tbl tbody tr[data-fh-row] { cursor: pointer; }
.fh-lp-tbl th:first-child, .fh-lp-tbl td:first-child { padding-left: 20px !important; }
.fh-lp-svc { display: flex; align-items: center; gap: 14px; }
.fh-lp-ico { width: 40px; height: 40px; flex-shrink: 0; border-radius: 11px; background: var(--card-hi); color: var(--mut); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; }
.fh-lp-ico.fh-on { background: var(--p-tint); color: #3D7BFF; }
.fh-lp-name { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.fh-lp-name strong { font-size: 14.5px; font-weight: 700; color: var(--tx); }
.fh-lp-name span { font-size: 13px; color: var(--mut); }
.fh-lp-dom { display: inline-block; margin-top: 2px; font-family: var(--mono); font-size: 13px; color: var(--link) !important; }
.fh-lp-two { display: flex; flex-direction: column; gap: 2px; }
.fh-lp-two strong { font-size: 14px; font-weight: 600; color: var(--tx); }
.fh-lp-two span { font-size: 12.5px; color: var(--mut); }
.fh-lp-two span.fh-bad { color: var(--bad); } .fh-lp-two span.fh-warn { color: var(--warn); }
.fh-lp-tbl .fh-tbl-act .fh-btn { display: inline-flex; align-items: center; gap: 8px; height: 36px; font-weight: 600; font-size: 13px; }
.fh-lp-tbl .fh-tbl-act .fh-btn i { font-size: 10px; }
.fh-lp-none td { text-align: center; color: var(--mut); padding: 28px !important; }
.fh-lp-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 20px; border-top: 1px solid var(--bd-soft); flex-wrap: wrap; }
.fh-lp-info { display: flex; align-items: center; gap: 16px; font-size: 13.5px; color: var(--mut); }
.fh-lp-info b { color: var(--tx); font-weight: 600; }
.fh-lp-info label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 400; }
.fh-lp-info select { height: 34px; padding: 0 28px 0 10px; border: 1px solid var(--bd); border-radius: 9px; background: var(--card); color: var(--tx); font: inherit; font-size: 13px; }
.fh-pager { display: flex; align-items: center; gap: 6px; }
.fh-pager button { min-width: 36px; height: 36px; padding: 0 10px; border-radius: 9px; border: 1px solid var(--bd); background: var(--card); color: var(--tx); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.fh-pager button:hover:not(:disabled) { border-color: var(--p); }
.fh-pager button.fh-on { background: var(--p); border-color: var(--p); color: #fff; }
.fh-pager button:disabled { opacity: .4; cursor: default; }
.fh-pager span { color: var(--mut); padding: 0 2px; }
.fh-lp-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 48px 20px; text-align: center; color: var(--mut); font-size: 14px; }
.fh-lp-empty strong { color: var(--tx); font-size: 16px; }
.fh-lp-empty .fh-btn { margin-top: 8px; }
@media (max-width: 900px) {
  .fh-lp-head { flex-direction: column; align-items: stretch; }
  .fh-lp-search { width: 100%; }
  .fh-lp-tbl thead { display: none; }
  .fh-lp-tbl, .fh-lp-tbl tbody, .fh-lp-tbl tr, .fh-lp-tbl td { display: block; width: 100%; }
  .fh-lp-tbl tr[data-fh-row] { padding: 12px 16px; border-bottom: 1px solid var(--bd-soft); display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; }
  .fh-lp-tbl tr[data-fh-row][hidden] { display: none; }
  .fh-lp-tbl td { padding: 0 !important; border: 0 !important; }
  .fh-lp-tbl td:first-child { grid-column: 1 / -1; }
  .fh-lp-tbl td.fh-tbl-act { grid-column: 1 / -1; text-align: left; }
}

/* ================================================================ v3.15 === plan picker v2 */
.fh-body #order-standard_cart.fh-order { display: flex; flex-direction: column; gap: 20px; }
.fh-body #order-standard_cart .fh-order-bar { margin: 0; }
.fh-group-banner { display: flex; align-items: center; gap: 18px; padding: 20px 22px; }
.fh-group-ico { width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; background: var(--p-tint); color: #3D7BFF; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; }
.fh-group-text { flex: 1 1 auto; min-width: 0; }
.fh-body .fh-group-text h1 { margin: 0 0 4px !important; font-size: 19px !important; font-weight: 700; letter-spacing: -.02em; }
.fh-group-text p { margin: 0; color: var(--mut); font-size: 13.5px; line-height: 1.5; max-width: 70ch; }
.fh-group-banner .fh-order-chips { margin: 0; flex-shrink: 0; justify-content: flex-end; }
.fh-body #order-standard_cart .fh-plans-v2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; padding-top: 10px; margin: 0; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan { padding: 22px 20px 20px !important; border-radius: 16px; display: flex; flex-direction: column; gap: 16px; transform: none; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan:hover { transform: translateY(-2px); }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-popular { background: linear-gradient(180deg, color-mix(in srgb, var(--p) 10%, var(--card)) 0%, var(--card) 60%) !important; }
.fh-plan-top h3 { margin: 0 0 10px !important; font-size: 17px !important; font-weight: 700; letter-spacing: -.02em; color: var(--tx); }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-price { display: block; float: none; text-align: left; padding: 0; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-price-block { display: none; flex-direction: column; gap: 2px; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-price-block.fh-on { display: flex; }
.fh-strike { font-family: var(--mono); font-size: 12.5px; color: var(--mut); text-decoration: line-through; }
.fh-big-row { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; }
.fh-body #order-standard_cart .fh-big { font-size: 32px; font-weight: 700; letter-spacing: -.035em; line-height: 1.1; color: var(--tx); }
.fh-per { font-size: 13px; color: var(--mut); }
.fh-billed { font-size: 12.5px; color: var(--mut); }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-body { padding: 0 !important; background: transparent !important; flex: 1 1 auto; }
.fh-body #order-standard_cart .fh-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.fh-body #order-standard_cart .fh-checks li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--tx2); line-height: 1.4; padding: 0 !important; border: 0 !important; }
.fh-body #order-standard_cart .fh-checks li::before { display: none; }
.fh-body #order-standard_cart .fh-checks li i { color: var(--ok); font-size: 12px; margin-top: 3px; flex-shrink: 0; }
.fh-body #order-standard_cart .fh-checks li.fh-x { color: var(--mut); }
.fh-body #order-standard_cart .fh-checks li.fh-x i { color: var(--mut); opacity: .7; }
.fh-body #order-standard_cart .fh-checks li b { color: var(--tx); font-weight: 600; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-tagline { margin: 10px 0 0; font-size: 13px; color: var(--mut); }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-foot { padding: 0 !important; margin: 0; border: 0 !important; background: transparent !important; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-cta { display: flex; align-items: center; justify-content: center; width: 100%; height: 46px; border-radius: 12px; font-size: 15px; font-weight: 600; background: var(--card-hi) !important; border: 1px solid var(--bd) !important; color: var(--tx) !important; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-cta:hover { border-color: var(--p) !important; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-popular .fh-plan-cta { background: var(--p) !important; border-color: var(--p) !important; color: #fff !important; box-shadow: 0 10px 24px -10px rgba(21,93,252,.7); }
.fh-body #order-standard_cart .fh-compare { padding: 22px; }
.fh-compare-head h2 { margin: 0 !important; font-size: 16px !important; font-weight: 700; }
.fh-compare-head p { margin: 3px 0 14px; color: var(--mut); font-size: 13px; }
.fh-compare .fh-compare-scroll { margin: 0; padding: 0; }
.fh-compare-table th:not(:first-child) { color: var(--tx); text-transform: none; letter-spacing: 0; font-size: 13.5px; }
.fh-compare-table td .fh-feat-val { font-family: var(--mono); font-size: 13px; }
@media (max-width: 1000px) { .fh-group-banner { flex-wrap: wrap; } .fh-group-banner .fh-order-chips { width: 100%; justify-content: flex-start; } }
/* v3.16 plan picker fixes */
.fh-body #order-standard_cart .fh-plans-v2 { grid-template-columns: repeat(var(--fh-cols, 4), minmax(0, 1fr)); }
@media (max-width: 1280px) { .fh-body #order-standard_cart .fh-plans-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px)  { .fh-body #order-standard_cart .fh-plans-v2 { grid-template-columns: 1fr; } }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan { gap: 14px; padding: 22px !important; }
.fh-plan-top h3 { margin-bottom: 12px !important; font-size: 18px !important; }
.fh-body #order-standard_cart .fh-big { font-size: 34px; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-desc { color: var(--tx2); font-size: 13.5px; line-height: 1.6; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-desc.fh-lines-done { line-height: 1.4; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-cta { height: 46px; }
.fh-body #order-standard_cart .fh-plans-v2 { max-width: calc(var(--fh-cols, 4) * 400px); }
@media (max-width: 1280px) { .fh-body #order-standard_cart .fh-plans-v2 { max-width: none; } }
/* ================================================================ v3.17 === plan picker: svg checks, compare table, table view */
.fh-order-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fh-view-toggle { display: inline-flex; gap: 2px; padding: 4px; border-radius: 12px; background: var(--card-hi); border: 1px solid var(--bd); }
.fh-view-toggle[hidden] { display: none; }
.fh-view-toggle .fh-cycle-btn { display: inline-flex; align-items: center; gap: 7px; }
.fh-cycle-save:not(:empty) { display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 650; background: color-mix(in srgb, var(--ok) 16%, transparent); color: var(--ok); }
.fh-body #order-standard_cart .fh-plans-v2[hidden] { display: none; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan { gap: 18px; padding: 24px 22px 22px !important; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-top { display: flex; flex-direction: column; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-top h3 { margin: 0 0 14px !important; }
.fh-body #order-standard_cart .fh-plans-v2 .fh-plan-body { border-top: 1px solid var(--bd) !important; padding-top: 18px !important; }
.fh-body #order-standard_cart .fh-strike { display: block; margin-bottom: 2px; }
.fh-body #order-standard_cart .fh-strike[hidden] { display: none; }
.fh-body #order-standard_cart .fh-billed { margin-top: 4px; }
.fh-body #order-standard_cart .fh-setup { display: block; margin-top: 4px; font-size: 12px; color: var(--mut); }
.fh-body #order-standard_cart .fh-checks { gap: 11px; }
.fh-body #order-standard_cart .fh-checks li { align-items: center; }
.fh-ck, .fh-xk { flex-shrink: 0; display: block; }
.fh-body #order-standard_cart .fh-checks li .fh-ck { color: var(--ok); width: 18px; height: 18px; padding: 2px; border-radius: 50%; background: color-mix(in srgb, var(--ok) 14%, transparent); }
.fh-body #order-standard_cart .fh-checks li .fh-xk { color: var(--mut); width: 18px; height: 18px; padding: 2px; }
.fh-body #order-standard_cart .fh-plan-flag { z-index: 2; }
/* compare every feature */
.fh-body #order-standard_cart .fh-compare { padding: 0; overflow: hidden; }
.fh-body #order-standard_cart .fh-compare[hidden] { display: none; }
.fh-compare .fh-compare-head { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; cursor: pointer; }
.fh-compare .fh-compare-head > span { display: flex; flex-direction: column; gap: 3px; }
.fh-compare .fh-compare-head strong { font-size: 16px; font-weight: 700; color: var(--tx); }
.fh-compare .fh-compare-head em { font-style: normal; font-size: 13px; color: var(--mut); }
.fh-compare .fh-compare-head svg { color: var(--mut); transition: transform .2s; }
.fh-compare.fh-closed .fh-compare-head svg { transform: rotate(-90deg); }
.fh-compare.fh-closed [data-fh-compare-body] { display: none; }
.fh-compare [data-fh-compare-body] { border-top: 1px solid var(--bd); overflow-x: auto; }
.fh-body .fh-compare-table, .fh-body .fh-vtable { width: 100%; border-collapse: collapse; margin: 0; }
.fh-body .fh-compare-table th, .fh-body .fh-compare-table td { padding: 13px 18px; border-bottom: 1px solid var(--bd); text-align: center; vertical-align: middle; font-size: 13.5px; color: var(--tx2); background: transparent; }
.fh-body .fh-compare-table th { font-size: 14px; font-weight: 650; color: var(--tx); text-transform: none; letter-spacing: 0; padding-top: 16px; padding-bottom: 16px; }
.fh-body .fh-compare-table th:first-child, .fh-body .fh-compare-table td:first-child { text-align: left; padding-left: 22px; color: var(--tx2); width: 26%; }
.fh-body .fh-compare-table tr:last-child td { border-bottom: 0; }
.fh-body .fh-compare-table .fh-col-pop { background: color-mix(in srgb, var(--p) 6%, transparent); }
.fh-body .fh-compare-table th.fh-col-pop { color: var(--p); }
.fh-feat-yes, .fh-feat-no { display: inline-flex; }
.fh-feat-yes .fh-ck { color: var(--ok); width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: color-mix(in srgb, var(--ok) 14%, transparent); }
.fh-feat-no .fh-xk { color: var(--mut); opacity: .6; width: 18px; height: 18px; }
.fh-feat-val { font-weight: 600; color: var(--tx); font-size: 13.5px; }
.fh-slot .fh-price-block { display: none; flex-direction: column; align-items: inherit; }
.fh-slot .fh-price-block.fh-on { display: flex; }
.fh-slot .fh-strike, .fh-slot .fh-billed { font-size: 11.5px; }
.fh-compare-table .fh-slot { align-items: center; display: flex; flex-direction: column; }
.fh-compare-table .fh-slot .fh-big-row { justify-content: center; }
.fh-body #order-standard_cart .fh-slot .fh-big { font-size: 20px; }
.fh-body #order-standard_cart .fh-slot-cta { display: inline-flex; align-items: center; justify-content: center; height: 38px; padding: 0 18px; border-radius: 10px; font-size: 13.5px; font-weight: 600; background: var(--card-hi) !important; border: 1px solid var(--bd) !important; color: var(--tx) !important; white-space: nowrap; text-decoration: none; }
.fh-body #order-standard_cart .fh-slot-cta:hover { border-color: var(--p) !important; }
.fh-body #order-standard_cart .fh-col-pop .fh-slot-cta, .fh-body #order-standard_cart .fh-vt-pop .fh-slot-cta { background: var(--p) !important; border-color: var(--p) !important; color: #fff !important; }
/* table view for big groups */
.fh-body #order-standard_cart .fh-vtable-wrap { padding: 0; overflow: hidden; }
.fh-body #order-standard_cart .fh-vtable-wrap[hidden] { display: none; }
.fh-vtable-wrap .fh-compare-scroll { overflow-x: auto; margin: 0; }
.fh-body .fh-vtable th { padding: 14px 16px; font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--mut); text-align: left; border-bottom: 1px solid var(--bd); background: var(--card-hi); white-space: nowrap; }
.fh-body .fh-vtable td { padding: 16px; border-bottom: 1px solid var(--bd); vertical-align: middle; font-size: 14px; color: var(--tx2); background: transparent; }
.fh-body .fh-vtable th:first-child, .fh-body .fh-vtable td:first-child { padding-left: 22px; }
.fh-body .fh-vtable th:last-child, .fh-body .fh-vtable td:last-child { padding-right: 22px; text-align: right; }
.fh-body .fh-vtable tbody tr { transition: background .15s; }
.fh-body .fh-vtable tbody tr:hover { background: var(--card-hi); }
.fh-body .fh-vtable tbody tr:last-child td { border-bottom: 0; }
.fh-body .fh-vtable tr.fh-vt-pop { background: color-mix(in srgb, var(--p) 7%, transparent); box-shadow: inset 3px 0 0 var(--p); }
.fh-vt-plan strong { font-size: 15px; font-weight: 700; color: var(--tx); letter-spacing: -.01em; }
.fh-vt-plan small { display: block; margin-top: 3px; font-size: 12px; color: var(--mut); }
.fh-vt-flag { margin-left: 8px; padding: 2px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: var(--p); color: #fff; vertical-align: 2px; }
.fh-vtable .fh-feat-val { font-family: var(--mono); font-size: 13.5px; font-weight: 600; }
.fh-vtable .fh-vt-price .fh-slot .fh-big-row { gap: 3px; }
.fh-vtable .fh-vt-price { white-space: nowrap; }
.fh-vtable-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding: 14px 22px; border-top: 1px solid var(--bd); background: var(--card-hi); font-size: 13px; color: var(--tx2); }
.fh-vtable-foot[hidden] { display: none; }
.fh-vtable-foot > span { font-weight: 650; color: var(--tx); margin-right: 4px; }
.fh-vtable-foot em { font-style: normal; display: inline-flex; align-items: center; gap: 6px; }
.fh-vtable-foot .fh-ck { color: var(--ok); }
@media (max-width: 860px) {
  .fh-body .fh-vtable thead { display: none; }
  .fh-body .fh-vtable, .fh-body .fh-vtable tbody { display: block; }
  .fh-body .fh-vtable tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; padding: 18px; border-bottom: 1px solid var(--bd); }
  .fh-body .fh-vtable td, .fh-body .fh-vtable td:first-child, .fh-body .fh-vtable td:last-child { padding: 0; border: 0; text-align: left; }
  .fh-body .fh-vtable td[data-label]:not(.fh-vt-plan)::before { content: attr(data-label); display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--mut); margin-bottom: 2px; }
  .fh-body .fh-vtable .fh-vt-plan, .fh-body .fh-vtable .fh-vt-act { grid-column: 1 / -1; }
  .fh-body #order-standard_cart .fh-vtable .fh-slot-cta { width: 100%; height: 42px; }
  .fh-order-tools { width: 100%; }
}
.fh-body #order-standard_cart .fh-plans-v2 { width: 100%; margin-left: auto; margin-right: auto; }
.fh-body #order-standard_cart .fh-compare-scroll { padding: 0 !important; margin: 0 !important; border: 0 !important; }
.fh-body .fh-compare-table tbody tr, .fh-body .fh-compare-table tbody tr:nth-child(even) { background: transparent; }
.fh-feat-val, .fh-vtable .fh-feat-val { font-family: inherit !important; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.fh-body #order-standard_cart .fh-compare-table .fh-slot-cta { width: auto !important; min-width: 150px; max-width: 240px; }
.fh-body #order-standard_cart .fh-vtable .fh-slot-cta { min-width: 130px; }
@media (max-width: 700px) {
  .fh-body .fh-compare-table th, .fh-body .fh-compare-table td { padding: 11px 10px; font-size: 12.5px; }
  .fh-body .fh-compare-table th:first-child, .fh-body .fh-compare-table td:first-child { padding-left: 16px; width: 34%; }
  .fh-body #order-standard_cart .fh-compare-table .fh-slot-cta { min-width: 0; padding: 0 12px; height: 34px; font-size: 12.5px; }
  .fh-body #order-standard_cart .fh-compare-table .fh-slot .fh-big { font-size: 17px; }
  .fh-compare-table .fh-slot .fh-billed { display: none; }
}
/* v3.18 compare table — plan headers, grouped rows, highlighted popular column */
.fh-body .fh-compare-table { border-collapse: separate; border-spacing: 0; }
.fh-body .fh-compare-table thead th { vertical-align: bottom; padding: 20px 14px 16px; border-bottom: 1px solid var(--bd); }
.fh-body .fh-compare-table th.fh-cmp-corner { text-align: left; padding-left: 22px; }
.fh-cmp-corner span { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--mut); }
.fh-cmp-plan strong { display: block; font-size: 14.5px; font-weight: 700; color: var(--tx); }
.fh-cmp-plan small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: var(--mut); }
.fh-body .fh-compare-table th.fh-col-pop strong { color: var(--tx); }
.fh-cmp-plan .fh-slot { margin-top: 10px; }
.fh-body #order-standard_cart .fh-cmp-plan .fh-slot .fh-big { font-size: 20px; font-family: var(--mono); letter-spacing: -.02em; }
.fh-cmp-plan .fh-slot .fh-strike { display: none !important; }
.fh-cmp-plan .fh-slot .fh-billed { font-size: 11.5px; font-weight: 400; color: var(--mut); margin-top: 2px; }
.fh-body .fh-compare-table .fh-cmp-col, .fh-body .fh-compare-table .fh-cmp-plan { background: color-mix(in srgb, var(--card-hi) 70%, transparent); }
.fh-body .fh-compare-table .fh-col-pop { background: color-mix(in srgb, var(--p) 9%, var(--card)) !important; }
.fh-body .fh-compare-table th.fh-col-pop { box-shadow: inset 0 2px 0 var(--p); }
.fh-body .fh-compare-table th.fh-col-pop strong, .fh-body .fh-compare-table th.fh-col-pop { color: var(--tx); }
.fh-body .fh-compare-table tbody td { padding: 12px 14px; font-size: 13px; }
.fh-body .fh-compare-table tbody td.fh-compare-feat { color: var(--tx2); }
.fh-body .fh-compare-table tr.fh-cmp-group td { padding: 9px 14px; background: color-mix(in srgb, var(--bd) 35%, transparent); }
.fh-body .fh-compare-table tr.fh-cmp-group td:first-child { padding-left: 22px; font-size: 10.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--p); }
.fh-body .fh-compare-table tr.fh-cmp-group td.fh-col-pop { background: color-mix(in srgb, var(--p) 9%, var(--card)) !important; }
.fh-body .fh-compare-table tr.fh-cmp-cta td { padding: 18px 14px 20px; border-bottom: 0; }
.fh-feat-dash { color: var(--mut); opacity: .6; }
.fh-body .fh-compare-table .fh-feat-val { font-size: 13px; font-weight: 650; }
.fh-body #order-standard_cart .fh-compare-table .fh-slot-cta { min-width: 0; height: 34px; padding: 0 16px; font-size: 13px; }
.fh-body .fh-compare-table .fh-feat-yes .fh-ck { width: 18px; height: 18px; }
@media (max-width: 700px) {
  .fh-body .fh-compare-table { min-width: 560px; }
  .fh-body .fh-compare-table thead th { padding: 16px 10px 12px; }
  .fh-cmp-plan .fh-slot .fh-billed { display: none; }
}
.fh-cmp-plan .fh-slot, .fh-cmp-plan .fh-slot .fh-price-block { align-items: center; text-align: center; }
.fh-cmp-plan .fh-slot .fh-big-row { justify-content: center; }
.fh-body .fh-compare-table tbody tr td.fh-compare-feat, .fh-body .fh-compare-table tbody tr.fh-cmp-cta td:first-child, .fh-body .fh-compare-table thead th.fh-cmp-corner { background: transparent !important; }
/* v3.19 compare table replaces the cards on desktop; cards stay on phones */
@media (min-width: 761px) { .fh-body #order-standard_cart.fh-has-compare .fh-plans-v2 { display: none; } }
.fh-compare .fh-compare-head { cursor: default; }
.fh-body .fh-compare-table th.fh-cmp-plan { position: relative; padding-top: 26px; }
.fh-cmp-flag { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); padding: 2px 9px; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; background: var(--p); color: #fff; }
.fh-body #order-standard_cart .fh-cmp-plan .fh-slot-cta { margin-top: 12px; min-width: 130px; height: 36px; }
@media (max-width: 760px) { .fh-cmp-plan .fh-slot-cta { display: none !important; } .fh-cmp-flag { top: 4px; } }
/* v3.20 compare: no heading; Configure hover keeps its colours in both themes */
.fh-body #order-standard_cart .fh-compare .fh-compare-scroll, .fh-body #order-standard_cart .fh-compare [data-fh-compare-body] { border-top: 0 !important; }
.fh-body #order-standard_cart .fh-slot-cta:hover, .fh-body #order-standard_cart .fh-slot-cta:focus, .fh-body #order-standard_cart .fh-plans-v2 .fh-plan-cta:hover, .fh-body #order-standard_cart .fh-plans-v2 .fh-plan-cta:focus { background: var(--card-hi) !important; border-color: var(--p) !important; color: var(--p) !important; box-shadow: none; }
.fh-body #order-standard_cart .fh-col-pop .fh-slot-cta:hover, .fh-body #order-standard_cart .fh-vt-pop .fh-slot-cta:hover, .fh-body #order-standard_cart .fh-col-pop .fh-slot-cta:focus, .fh-body #order-standard_cart .fh-vt-pop .fh-slot-cta:focus, .fh-body #order-standard_cart .fh-plans-v2 .fh-plan-popular .fh-plan-cta:hover, .fh-body #order-standard_cart .fh-plans-v2 .fh-plan-popular .fh-plan-cta:focus { background: color-mix(in srgb, var(--p) 85%, #000) !important; border-color: color-mix(in srgb, var(--p) 85%, #000) !important; color: #fff !important; }
/* ================================================================ v3.21 === view cart (standard_cart viewcart.tpl) + coloured buttons */
.fh-body .btn-success, .fh-body a.btn-success, .fh-body .btn-success:hover, .fh-body .btn-success:focus,
.fh-body .btn-danger, .fh-body a.btn-danger, .fh-body .btn-danger:hover, .fh-body .btn-danger:focus,
.fh-body .btn-primary, .fh-body a.btn-primary, .fh-body .btn-primary:hover, .fh-body .btn-primary:focus,
.fh-body .btn-info, .fh-body a.btn-info, .fh-body .btn-warning, .fh-body a.btn-warning { color: #fff !important; text-decoration: none; }
.fh-body .btn-success { background: var(--ok) !important; border-color: var(--ok) !important; }
.fh-body .btn-danger { background: var(--bad) !important; border-color: var(--bad) !important; }
.fh-body .btn-success:hover, .fh-body .btn-success:focus { background: color-mix(in srgb, var(--ok) 85%, #000) !important; border-color: color-mix(in srgb, var(--ok) 85%, #000) !important; }
.fh-body .btn-danger:hover, .fh-body .btn-danger:focus { background: color-mix(in srgb, var(--bad) 85%, #000) !important; border-color: color-mix(in srgb, var(--bad) 85%, #000) !important; }
.fh-body #order-standard_cart .btn-link.btn-remove-from-cart, .fh-body #order-standard_cart .btn-continue-shopping, .fh-body #order-standard_cart .empty-cart .btn { color: var(--mut) !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.fh-body #order-standard_cart .btn-link.btn-remove-from-cart:hover, .fh-body #order-standard_cart .empty-cart .btn:hover { color: var(--bad) !important; }
.fh-body #order-standard_cart .btn-continue-shopping:hover { color: var(--p) !important; }

/* items list */
.fh-body #order-standard_cart .view-cart-items-header { background: transparent !important; border: 0 !important; color: var(--mut) !important; font-size: 11.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; padding: 0 20px 10px !important; }
.fh-body #order-standard_cart .view-cart-items { background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 16px; overflow: hidden; }
.fh-body #order-standard_cart .view-cart-items .item { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--bd) !important; padding: 18px 20px !important; margin: 0 !important; color: var(--tx2) !important; font-size: 13px; }
.fh-body #order-standard_cart .view-cart-items .item:last-child { border-bottom: 0 !important; }
.fh-body #order-standard_cart .view-cart-items .item:nth-child(even) { background: transparent !important; }
.fh-body #order-standard_cart .view-cart-items .item-title { display: block; font-size: 15px !important; font-weight: 650; color: var(--tx) !important; margin-bottom: 3px; }
.fh-body #order-standard_cart .view-cart-items .item-group { display: block; font-size: 13px; color: var(--tx2) !important; }
.fh-body #order-standard_cart .view-cart-items .item-domain { display: block; font-size: 12.5px; color: var(--p) !important; margin-bottom: 4px; }
.fh-body #order-standard_cart .view-cart-items .item-price { text-align: right; }
.fh-body #order-standard_cart .view-cart-items .item-price > span:first-child, .fh-body #order-standard_cart .view-cart-items .item-price .renewal-price { font-size: 16px !important; font-weight: 700; color: var(--tx) !important; }
.fh-body #order-standard_cart .view-cart-items .item-price .cycle { display: block; font-size: 12px !important; color: var(--mut) !important; }
.fh-body #order-standard_cart .view-cart-items .btn-link { color: var(--p) !important; }
.fh-body #order-standard_cart .empty-cart { padding: 8px 4px 0 !important; }
.fh-body #order-standard_cart .empty-cart .btn { font-size: 12.5px; font-weight: 500; }

/* promo tabs */
.fh-body #order-standard_cart .view-cart-tabs { margin-top: 18px; }
.fh-body #order-standard_cart .view-cart-tabs .nav-tabs { border: 0 !important; gap: 4px; padding: 0; margin: 0 0 8px; }
.fh-body #order-standard_cart .view-cart-tabs .nav-tabs .nav-link { background: transparent !important; border: 1px solid transparent !important; border-radius: 9px !important; color: var(--mut) !important; font-size: 13px; font-weight: 600; padding: 7px 12px !important; }
.fh-body #order-standard_cart .view-cart-tabs .nav-tabs .nav-link.active, .fh-body #order-standard_cart .view-cart-tabs .nav-tabs .active > .nav-link { background: var(--card-hi) !important; border-color: var(--bd) !important; color: var(--tx) !important; }
.fh-body #order-standard_cart .view-cart-tabs .tab-content { background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 16px !important; padding: 18px !important; color: var(--tx2); }
.fh-body #order-standard_cart .view-cart-tabs .form-group { margin-bottom: 12px; }
.fh-body #order-standard_cart .view-cart-tabs .field-icon { color: var(--mut) !important; }
.fh-body #order-standard_cart .view-cart-tabs .btn-default { height: 44px; border-radius: 11px; font-weight: 600; background: var(--card-hi) !important; border: 1px solid var(--bd) !important; color: var(--tx) !important; }
.fh-body #order-standard_cart .view-cart-tabs .btn-default:hover { border-color: var(--p) !important; color: var(--p) !important; }
.fh-body #order-standard_cart .view-cart-promotion-code { background: color-mix(in srgb, var(--ok) 12%, transparent) !important; border: 1px dashed var(--ok) !important; color: var(--tx) !important; border-radius: 10px; }

/* order summary */
.fh-body #order-standard_cart .order-summary { background: var(--card) !important; border: 1px solid var(--bd) !important; border-radius: 16px !important; overflow: hidden; padding: 0 !important; }
.fh-body #order-standard_cart .order-summary h2 { background: transparent !important; color: var(--tx) !important; font-size: 16px !important; font-weight: 700; text-align: left; padding: 18px 20px 14px !important; margin: 0 !important; border-bottom: 1px solid var(--bd); letter-spacing: -.01em; }
.fh-body #order-standard_cart .order-summary .summary-container { background: transparent !important; color: var(--tx2) !important; padding: 16px 20px 20px !important; font-size: 13.5px; }
.fh-body #order-standard_cart .order-summary .subtotal, .fh-body #order-standard_cart .order-summary .bordered-totals, .fh-body #order-standard_cart .order-summary .recurring-totals { border-color: var(--bd) !important; color: var(--tx2) !important; padding: 8px 0 !important; }
.fh-body #order-standard_cart .order-summary .subtotal span:last-child { color: var(--tx); font-weight: 600; }
.fh-body #order-standard_cart .order-summary .recurring-charges { color: var(--mut) !important; font-style: normal !important; font-size: 12.5px; text-align: right; }
.fh-body #order-standard_cart .order-summary .total-due-today { margin: 14px 0 16px !important; padding: 16px 0 0 !important; border-top: 1px solid var(--bd); text-align: right; }
.fh-body #order-standard_cart .order-summary .total-due-today .amt { display: block; font-size: 30px !important; font-weight: 700; letter-spacing: -.03em; color: var(--tx) !important; font-family: inherit; line-height: 1.15; }
.fh-body #order-standard_cart .order-summary .total-due-today span:not(.amt) { font-size: 12px; color: var(--mut); }
.fh-body #order-standard_cart .order-summary .text-right { text-align: center !important; }
.fh-body #order-standard_cart .btn-checkout, .fh-body #order-standard_cart a.btn-checkout { display: flex !important; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; margin: 0 0 6px; padding: 0 !important; border-radius: 12px !important; font-size: 15px !important; font-weight: 650; background: var(--p) !important; border: 1px solid var(--p) !important; color: #fff !important; box-shadow: 0 10px 24px -12px rgba(21,93,252,.8); }
.fh-body #order-standard_cart .btn-checkout:hover, .fh-body #order-standard_cart .btn-checkout:focus { background: color-mix(in srgb, var(--p) 85%, #000) !important; border-color: color-mix(in srgb, var(--p) 85%, #000) !important; color: #fff !important; }
.fh-body #order-standard_cart .btn-checkout.disabled { opacity: .45; box-shadow: none; }
.fh-body #order-standard_cart .btn-continue-shopping { font-size: 13px !important; padding: 6px 0 !important; }
.fh-body #order-standard_cart .order-summary .loader { background: color-mix(in srgb, var(--card) 80%, transparent) !important; color: var(--p) !important; }
.fh-body #order-standard_cart .cart-body .header-lined h1 { color: var(--tx) !important; }

/* domain addons tab (domain details) */
.fh-body #tabAddons .btn, .fh-body .tab-pane#tabAddons .btn { height: 36px; padding: 0 16px; border-radius: 10px; font-size: 13.5px; font-weight: 600; display: inline-flex; align-items: center; margin: 8px 6px 0 0; }
.fh-body #tabAddons .fa-3x { color: var(--p); font-size: 2.2em; }
.fh-body #order-standard_cart .cart-sidebar .panel-title, .fh-body #order-standard_cart .cart-sidebar .card-title { color: var(--tx) !important; }

/* ================================================================ v3.28 === open a ticket (supportticketsubmit-*) */
.fh-st { --st-amber: #D97706; max-width: 1180px; margin: 0 auto; color: var(--tx); }
html.dark .fh-st { --st-amber: #F2B35B; }
.fh-st-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 24px; flex-wrap: wrap; margin: 4px 0 22px; }
.fh-body .fh-st-head h1 { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 6px !important; font-size: 26px !important; font-weight: 700 !important; letter-spacing: -.025em; color: var(--tx) !important; text-wrap: balance; }
.fh-st-head p { margin: 0; max-width: 60ch; font-size: 13.5px; line-height: 1.55; color: var(--mut); }
.fh-st-live { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--bd); background: var(--card); font-size: 12.5px; font-weight: 500; color: var(--tx2); white-space: nowrap; }
.fh-st-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent); }
.fh-st-chip { display: inline-flex; align-items: center; height: 26px; padding: 0 11px; border-radius: 999px; background: var(--p-tint); color: var(--p); font-size: 12.5px; font-weight: 650; letter-spacing: 0; }
html.dark .fh-st-chip { color: #8FB0FF; }
.fh-st-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 12.5px; font-weight: 600; color: var(--mut) !important; text-decoration: none !important; }
.fh-st-back:hover { color: var(--p) !important; }
.fh-st-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 22px; align-items: start; }
.fh-st-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.fh-st-side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 96px; }
.fh-st-card { background: var(--card); border: 1px solid var(--bd); border-radius: 18px; padding: 20px 22px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.fh-body .fh-st-card h2 { margin: 0 0 12px !important; font-size: 15px !important; font-weight: 700 !important; color: var(--tx) !important; }
.fh-st-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.fh-body .fh-st-card-head h2 { margin: 0 !important; }
.fh-st-card-head a { font-size: 12.5px; font-weight: 600; color: var(--p); }

/* departments */
.fh-st-depts { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.fh-st-dept { display: flex; align-items: flex-start; gap: 14px; padding: 18px; border-radius: 16px; border: 1px solid var(--bd); background: var(--card); color: var(--tx) !important; text-decoration: none !important; transition: border-color .15s, box-shadow .15s, transform .15s; }
.fh-st-dept:hover { border-color: color-mix(in srgb, var(--p) 55%, var(--bd)); box-shadow: 0 12px 30px -20px rgba(21,93,252,.55); transform: translateY(-1px); }
.fh-st-dept:focus-visible { outline: 2px solid var(--p); outline-offset: 2px; }
.fh-st-dept-ico { width: 42px; height: 42px; flex-shrink: 0; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--p-tint); color: var(--p); }
html.dark .fh-st-dept-ico { color: #8FB0FF; }
.fh-st-dept-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.fh-st-dept-text strong { font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
.fh-st-dept-text small { font-size: 12.5px; line-height: 1.5; color: var(--mut); }
.fh-st-dept-go { align-self: center; flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--mut); background: var(--card-hi); transition: background .15s, color .15s; }
.fh-st-dept:hover .fh-st-dept-go { background: var(--p); color: #fff; }
.fh-st-kb { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 16px; border: 1px dashed var(--bd); background: transparent; color: var(--tx) !important; text-decoration: none !important; }
.fh-st-kb:hover { border-color: var(--p); }
.fh-st-kb-ico { width: 38px; height: 38px; flex-shrink: 0; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; background: var(--card-hi); color: var(--tx2); }
.fh-st-kb > span:nth-child(2) { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fh-st-kb strong { font-size: 14px; font-weight: 650; }
.fh-st-kb small { font-size: 12.5px; color: var(--mut); }
.fh-st-kb em { font-style: normal; font-size: 13px; font-weight: 650; color: var(--p); white-space: nowrap; }
.fh-st-recent { list-style: none; margin: 0; padding: 0; }
.fh-st-recent li { border-top: 1px solid var(--bd); }
.fh-st-recent li:first-child { border-top: 0; }
.fh-st-recent li > a, .fh-st-recent li > div { display: block; padding: 10px 0; color: var(--tx) !important; text-decoration: none !important; font-size: 13.5px; font-weight: 500; }
.fh-st-recent li > a:hover { color: var(--p) !important; }
.fh-st-recent small, .fh-st-recent .text-muted { display: block; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--mut) !important; }
.fh-st-recent .label, .fh-st-recent .badge { font-size: 10.5px; padding: 2px 8px; border-radius: 999px; margin-right: 6px; }
.fh-st-empty { margin: 0; font-size: 13px; color: var(--mut); }

/* the form */
.fh-st-formcard { padding: 24px 26px; }
.fh-st-who { display: flex; align-items: center; gap: 12px; margin: -4px 0 20px; padding: 12px 14px; border-radius: 14px; background: var(--card-hi); border: 1px solid var(--bd); }
.fh-st-avatar { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--p); color: #fff; font-weight: 700; font-size: 14px; flex-shrink: 0; }
.fh-st-who > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.fh-st-who strong { font-size: 13.5px; color: var(--tx); }
.fh-st-who small { font-size: 12px; color: var(--mut); overflow-wrap: anywhere; }
.fh-st-row { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
.fh-st-row-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fh-body .fh-st-form .form-group { margin-bottom: 18px; }
.fh-body .fh-st-form label, .fh-body .fh-st-prio legend { display: block; margin: 0 0 7px; font-size: 12.5px; font-weight: 600; color: var(--tx2); }
.fh-body .fh-st-form .form-control { min-height: 44px; border-radius: 12px; font-size: 14px; }
.fh-body .fh-st-form .fh-st-subject { min-height: 50px; font-size: 15.5px; font-weight: 500; }
.fh-body .fh-st-form textarea.form-control { min-height: 220px; line-height: 1.6; padding-top: 12px; }
.fh-st-prio { border: 0; padding: 0; min-width: 0; }
.fh-st-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.fh-st-seg-opt { position: relative; margin: 0 !important; cursor: pointer; }
.fh-st-seg-opt input { position: absolute; opacity: 0; pointer-events: none; }
.fh-st-seg-opt > span { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; height: 100%; padding: 11px 14px; border-radius: 12px; border: 1px solid var(--bd); background: var(--card); font-size: 13.5px; font-weight: 650; color: var(--tx); transition: border-color .15s, box-shadow .15s, background .15s; }
.fh-st-seg-opt > span small { flex-basis: 100%; padding-left: 16px; font-size: 11.5px; font-weight: 400; color: var(--mut); }
.fh-st-seg-opt i, .fh-p-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; background: var(--mut); }
.fh-p-low i, .fh-p-dot.fh-p-low { background: var(--mut); }
.fh-p-med i, .fh-p-dot.fh-p-med { background: var(--st-amber); }
.fh-p-high i, .fh-p-dot.fh-p-high { background: #EF4444; }
.fh-st-seg-opt:hover > span { border-color: color-mix(in srgb, var(--p) 45%, var(--bd)); }
.fh-st-seg-opt input:checked + span { border-color: var(--p); background: color-mix(in srgb, var(--p) 5%, var(--card)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--p) 15%, transparent); }
.fh-st-seg-opt.fh-p-high input:checked + span { border-color: var(--bad); background: color-mix(in srgb, var(--bad) 6%, var(--card)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bad) 14%, transparent); }
.fh-st-seg-opt input:focus-visible + span { outline: 2px solid var(--p); outline-offset: 2px; }
.fh-st-files .custom-file-label { border-radius: 12px 0 0 12px; height: 44px; display: flex; align-items: center; color: var(--mut); background: var(--card); border-color: var(--bd); }
.fh-st-files .custom-file-label::after { height: 42px; display: flex; align-items: center; background: var(--card-hi); color: var(--tx2); border-left-color: var(--bd); }
.fh-st-files .custom-file { height: 44px; }
.fh-body .fh-st-files #btnTicketAttachmentsAdd { display: inline-flex; align-items: center; gap: 6px; height: 44px; border-radius: 0 12px 12px 0; font-size: 13px; font-weight: 600; }
.fh-st-hint { display: block; margin-top: 6px; font-size: 12px; color: var(--mut); }
.fh-st-captcha:empty { display: none; }
.fh-st-captcha { margin-bottom: 8px; }
.fh-st-actions { display: flex; justify-content: flex-end; align-items: center; gap: 14px; margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--bd); }
.fh-st-cancel { font-size: 13.5px; font-weight: 600; color: var(--mut) !important; text-decoration: none !important; }
.fh-st-cancel:hover { color: var(--tx) !important; }
.fh-body .fh-st .fh-st-submit { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 24px; border-radius: 12px; font-size: 14.5px; font-weight: 650; background: var(--p); border-color: var(--p); color: #fff; box-shadow: 0 10px 24px -12px rgba(21,93,252,.8); }
.fh-body .fh-st .fh-st-submit:hover { background: color-mix(in srgb, var(--p) 85%, #000); border-color: color-mix(in srgb, var(--p) 85%, #000); }
#autoAnswerSuggestions:not(.w-hidden) { margin-bottom: 16px; }
.fh-st-tips { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.fh-st-tips li { position: relative; padding-left: 28px; display: flex; flex-direction: column; gap: 2px; }
.fh-st-tips li::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; border-radius: 50%; background: color-mix(in srgb, var(--ok) 15%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%2316A34A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.fh-st-tips b { font-size: 13.5px; font-weight: 650; color: var(--tx); }
.fh-st-tips span { font-size: 12.5px; line-height: 1.5; color: var(--mut); }
.fh-st-note p { display: flex; align-items: baseline; gap: 8px; margin: 0 0 8px; font-size: 12.5px; line-height: 1.5; color: var(--tx2); }
.fh-st-note p:last-child { margin-bottom: 0; }
.fh-st-note p b:not(.fh-p-dot) { color: var(--tx); font-weight: 650; }
.fh-st-note .fh-p-dot { position: relative; top: -1px; }
.fh-st-done { max-width: 560px; margin: 40px auto; padding: 40px 32px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.fh-st-done-ico { width: 60px; height: 60px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--ok) 15%, transparent); color: var(--ok); }
.fh-body .fh-st-done h1 { margin: 6px 0 0 !important; font-size: 22px !important; font-weight: 700 !important; color: var(--tx) !important; }
.fh-st-done h1 a { color: var(--p); font-family: var(--mono); }
.fh-st-done p { margin: 0; max-width: 46ch; font-size: 13.5px; line-height: 1.6; color: var(--mut); }
.fh-st-done-actions { display: flex; align-items: center; gap: 16px; margin-top: 10px; }
@media (max-width: 1000px) { .fh-st-grid { grid-template-columns: 1fr; } .fh-st-side { position: static; } }
@media (max-width: 640px) {
  .fh-st-row-2 { grid-template-columns: 1fr; }
  .fh-st-seg { grid-template-columns: 1fr; }
  .fh-st-formcard { padding: 18px; }
  .fh-st-kb { flex-wrap: wrap; }
  .fh-st-actions { flex-direction: column-reverse; align-items: stretch; }
  .fh-body .fh-st .fh-st-submit { justify-content: center; }
}

/* ================================================================ v3.29 === support tickets list + view ticket */
.fh-tk-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.fh-tk-actions { display: flex; align-items: center; gap: 10px; }
.fh-tk-ghost, .fh-tk-cta { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 16px; border-radius: 11px; font-size: 13.5px; font-weight: 600; white-space: nowrap; text-decoration: none !important; transition: border-color .15s, background .15s, color .15s; }
.fh-tk-ghost { border: 1px solid var(--bd); background: var(--card); color: var(--tx) !important; }
.fh-tk-ghost:hover { border-color: var(--p); color: var(--p) !important; }
.fh-tk-cta { border: 1px solid var(--p); background: var(--p); color: #fff !important; box-shadow: 0 10px 22px -12px rgba(21,93,252,.8); }
.fh-tk-cta:hover { background: color-mix(in srgb, var(--p) 85%, #000); border-color: color-mix(in srgb, var(--p) 85%, #000); }
.fh-tk-ghost:focus-visible, .fh-tk-cta:focus-visible, .fh-tk-open:focus-visible { outline: 2px solid var(--p); outline-offset: 2px; }
.fh-tk-tbl th { font-size: 11.5px; letter-spacing: .07em; text-transform: uppercase; }
.fh-tk-id, .fh-tk-mono { font-family: var(--mono); font-size: 13px; color: var(--tx2); white-space: nowrap; }
.fh-tk-subj a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--tx) !important; text-decoration: none !important; }
.fh-tk-subj a:hover { color: var(--p) !important; }
.fh-tk-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--p); flex-shrink: 0; }
.fh-tk-unread .fh-tk-subj a { font-weight: 700; }
.fh-tk-open { font-weight: 600; font-size: 13.5px; color: var(--p) !important; text-decoration: none !important; }
.fh-tk-tbl tbody tr[data-fh-row]:hover td { background: var(--card-hi); }
.fh-tk-status, .fh-tk-prio { --tk-c: var(--mut); display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; color: var(--tk-c); background: color-mix(in srgb, var(--tk-c) 13%, transparent); font-family: var(--sans); vertical-align: middle; letter-spacing: 0; }
.fh-tk-status i, .fh-tk-prio i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.fh-tk-s-open, .fh-tk-s-customer-reply { --tk-c: var(--ok); }
.fh-tk-s-answered { --tk-c: var(--p); }
html.dark .fh-tk-s-answered { --tk-c: #7BA6FF; }
.fh-tk-s-in-progress, .fh-tk-s-on-hold { --tk-c: #D97706; }
html.dark .fh-tk-s-in-progress, html.dark .fh-tk-s-on-hold { --tk-c: #F2B35B; }
.fh-tk-s-closed { --tk-c: var(--mut); }
.fh-tk-prio-high { --tk-c: #DC2626; }
html.dark .fh-tk-prio-high { --tk-c: #F87171; }
.fh-tk-prio-medium { --tk-c: #B45309; }
html.dark .fh-tk-prio-medium { --tk-c: #F2B35B; }
.fh-tk-prio-low { --tk-c: var(--mut); }
@media (max-width: 760px) {
  .fh-tk-bar { flex-direction: column; align-items: stretch; }
  .fh-tk-actions { justify-content: stretch; } .fh-tk-actions a { flex: 1; justify-content: center; }
}

/* view ticket */
.fh-vt { max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.fh-vt-note { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 14px; border: 1px solid var(--bd); background: var(--card-hi); font-size: 13.5px; color: var(--tx2); }
.fh-vt-head { display: flex; justify-content: space-between; align-items: center; gap: 16px 24px; flex-wrap: wrap; padding: 20px 22px !important; }
.fh-vt-title { min-width: 0; }
.fh-body .fh-vt-title h1 { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 6px !important; font-size: 21px !important; font-weight: 700 !important; letter-spacing: -.02em; color: var(--tx) !important; text-wrap: balance; }
.fh-vt-title p { margin: 0; font-family: var(--mono); font-size: 12.5px; color: var(--mut); }
.fh-vt-actions { display: flex; gap: 10px; flex-shrink: 0; }
.fh-vt-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.fh-vt-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.fh-vt-side { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 96px; }
.fh-vt-thread { padding: 22px !important; display: flex; flex-direction: column; gap: 16px; }
.fh-vt-msg { display: flex; gap: 14px; align-items: flex-start; }
.fh-vt-av { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 12.5px; font-weight: 700; background: var(--p-tint); color: var(--p); }
html.dark .fh-vt-av { color: #8FB0FF; }
.fh-vt-bubble { flex: 1 1 auto; min-width: 0; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--bd); background: var(--card); }
.fh-vt-staff .fh-vt-bubble { border-color: color-mix(in srgb, var(--p) 55%, var(--bd)); background: color-mix(in srgb, var(--p) 3%, var(--card)); }
.fh-vt-bubble header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.fh-vt-bubble header strong { font-size: 14px; font-weight: 650; color: var(--tx); }
.fh-vt-bubble header time { margin-left: auto; font-family: var(--mono); font-size: 12px; color: var(--mut); }
.fh-vt-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: var(--p-tint); color: var(--p); }
html.dark .fh-vt-badge { color: #8FB0FF; }
.fh-vt-badge i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.fh-vt-body { font-size: 14px; line-height: 1.65; color: var(--tx2); overflow-wrap: anywhere; }
.fh-vt-body p:last-child { margin-bottom: 0; }
.fh-vt-body a { color: var(--p); }
.fh-vt-body pre, .fh-vt-body code { background: var(--card-hi); color: var(--tx); border-radius: 8px; }
.fh-vt-body pre { padding: 12px; overflow-x: auto; }
.fh-vt-body blockquote { border-left: 3px solid var(--bd); margin: 8px 0; padding: 2px 12px; color: var(--mut); }
.fh-vt-files { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.fh-vt-file { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 6px 12px; border-radius: 10px; border: 1px solid var(--bd); background: var(--card-hi); font-size: 12.5px; color: var(--tx) !important; text-decoration: none !important; overflow-wrap: anywhere; }
a.fh-vt-file:hover { border-color: var(--p); color: var(--p) !important; }
.fh-vt-file-off { color: var(--mut) !important; }
.fh-vt-rate { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--bd); }
.fh-vt-rate-label { font-size: 12.5px; color: var(--mut); }
.fh-vt-rate .rating, .fh-vt-rate .rating-done { float: none; margin: 0; }
.fh-vt-reply { padding: 22px !important; }
.fh-body .fh-vt-reply h2, .fh-body .fh-vt-card h2 { margin: 0 0 14px !important; padding-bottom: 14px; border-bottom: 1px solid var(--bd); font-size: 15.5px !important; font-weight: 700 !important; color: var(--tx) !important; }
.fh-body .fh-vt-reply textarea.form-control { min-height: 140px; border-radius: 12px; font-size: 14px; line-height: 1.6; }
.fh-body .fh-vt-reply .form-group { margin-bottom: 14px; }
.fh-body .fh-vt-reply .form-control { border-radius: 12px; }
.fh-vt-reset { border: 0; background: none; padding: 0; cursor: pointer; }
.fh-vt-card { padding: 20px 22px !important; }
.fh-vt-dl { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.fh-vt-dl > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.fh-vt-dl dt { font-weight: 400; font-size: 13px; color: var(--mut); }
.fh-vt-dl dd { margin: 0; text-align: right; font-size: 13px; color: var(--tx); }
.fh-vt-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fh-vt-links a { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--tx2) !important; text-decoration: none !important; }
.fh-vt-links a::before { content: ""; width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid var(--bd); flex-shrink: 0; }
.fh-vt-links a:hover { color: var(--p) !important; }
.fh-vt-links a:hover::before { border-color: var(--p); }
.fh-vt-extra .card { margin: 0; }
@media (max-width: 1000px) { .fh-vt-grid { grid-template-columns: 1fr; } .fh-vt-side { position: static; } }
@media (max-width: 640px) {
  .fh-vt-av { width: 30px; height: 30px; font-size: 11px; }
  .fh-vt-msg { gap: 10px; }
  .fh-vt-bubble { padding: 14px; }
  .fh-vt-bubble header time { margin-left: 0; width: 100%; }
  .fh-vt-actions { width: 100%; } .fh-vt-actions a { flex: 1; justify-content: center; }
}
#ticketReplyContainer { scroll-margin-top: 100px; }
.fh-tk-card .fh-tbl-wrap { overflow-x: auto; } .fh-tk-subj { min-width: 220px; }
.fh-tk, .fh-tk-card { min-width: 0; max-width: 100%; } .fh-tk-card .fh-tbl-wrap { max-width: 100%; }

/* ================================================================ v3.30 === affiliates */
.fh-af { max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.fh-af-head { margin: 4px 0 2px; }
.fh-body .fh-af-head h1 { margin: 0 0 6px !important; font-size: 26px !important; font-weight: 700 !important; letter-spacing: -.025em; color: var(--tx) !important; }
.fh-af-head p { margin: 0; max-width: 62ch; font-size: 13.5px; line-height: 1.55; color: var(--mut); }
.fh-af-ok { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 14px; background: color-mix(in srgb, var(--ok) 12%, transparent); border: 1px solid color-mix(in srgb, var(--ok) 35%, transparent); color: var(--tx); font-size: 13.5px; }
.fh-af-ok svg { color: var(--ok); flex-shrink: 0; }
.fh-af-top { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: stretch; }
.fh-af-link, .fh-af-earn { padding: 22px !important; }
.fh-af-label { font-size: 11.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--mut); margin-bottom: 10px; }
.fh-af-linkrow { display: flex; gap: 8px; }
.fh-af-linkrow input { flex: 1 1 auto; min-width: 0; height: 48px; padding: 0 16px; border-radius: 12px; border: 1px solid var(--bd); background: var(--card-hi); color: var(--tx); font-family: var(--mono); font-size: 14px; outline: none; }
.fh-af-linkrow input:focus { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); }
.fh-af-copy { flex-shrink: 0; display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 18px; border-radius: 12px; border: 1px solid var(--p); background: var(--p); color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 10px 22px -12px rgba(21,93,252,.8); transition: background .15s; }
.fh-af-copy:hover { background: color-mix(in srgb, var(--p) 85%, #000); }
.fh-af-copy.fh-done { background: var(--ok); border-color: var(--ok); }
.fh-af-copy:focus-visible, .fh-af-withdraw:focus-visible { outline: 2px solid var(--p); outline-offset: 2px; }
.fh-af-share { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin-top: 12px; font-size: 12.5px; color: var(--mut); }
.fh-af-share span { margin-right: 2px; }
.fh-af-share a { display: inline-flex; align-items: center; height: 28px; padding: 0 11px; border-radius: 999px; border: 1px solid var(--bd); background: var(--card); color: var(--tx2) !important; font-weight: 500; text-decoration: none !important; }
.fh-af-share a:hover { border-color: var(--p); color: var(--p) !important; }
.fh-af-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 22px; border: 1px solid var(--bd); border-radius: 14px; overflow: hidden; }
.fh-af-stat { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 16px 18px; border-left: 1px solid var(--bd); }
.fh-af-stat:first-child { border-left: 0; }
.fh-af-stat-ico { grid-row: 1 / span 2; width: 36px; height: 36px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--p-tint); color: var(--p); }
html.dark .fh-af-stat-ico { color: #8FB0FF; }
.fh-af-stat b { font-family: var(--mono); font-size: 22px; font-weight: 700; letter-spacing: -.02em; color: var(--tx); line-height: 1.1; font-variant-numeric: tabular-nums; }
.fh-af-stat small { font-size: 12px; color: var(--mut); }
.fh-af-earn { display: flex; flex-direction: column; }
.fh-af-balance { font-family: var(--mono); font-size: 32px; font-weight: 700; letter-spacing: -.03em; color: var(--tx); line-height: 1.1; font-variant-numeric: tabular-nums; }
.fh-af-meter { height: 6px; margin: 14px 0 8px; border-radius: 999px; background: var(--card-hi); border: 1px solid var(--bd); overflow: hidden; }
.fh-af-meter i { display: block; height: 100%; width: 2%; border-radius: inherit; background: var(--p); transition: width .6s ease; }
.fh-af-hint { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--mut); }
.fh-af-hint-ok { margin-top: auto; padding-top: 14px; color: var(--ok); }
.fh-af-dl { margin: 16px 0 18px; padding-top: 14px; border-top: 1px solid var(--bd); display: flex; flex-direction: column; gap: 8px; }
.fh-af-dl > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.fh-af-dl dt { font-weight: 400; color: var(--mut); }
.fh-af-dl dd { margin: 0; font-family: var(--mono); font-weight: 600; color: var(--tx); }
.fh-af-earn form { margin-top: auto; }
.fh-af-withdraw { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; border-radius: 12px; border: 1px solid var(--p); background: var(--p); color: #fff; font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; transition: background .15s; }
.fh-af-withdraw:hover:not([disabled]) { background: color-mix(in srgb, var(--p) 85%, #000); }
.fh-af-withdraw[disabled] { background: var(--card-hi); border-color: var(--bd); color: var(--mut); cursor: not-allowed; }
.fh-af-refs { overflow: hidden; }
.fh-af-refs-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; padding: 20px 22px; border-bottom: 1px solid var(--bd); }
.fh-body .fh-af-refs-head h2 { margin: 0 0 3px !important; font-size: 16px !important; font-weight: 700 !important; color: var(--tx) !important; }
.fh-af-refs-head p { margin: 0; font-size: 12.5px; color: var(--mut); }
.fh-af-refs .fh-lp-search { width: 280px; }
.fh-af-svc { font-weight: 600; color: var(--tx); }
.fh-af-comm { color: var(--ok) !important; font-weight: 600; }
.fh-af-empty { padding: 22px; }
.fh-af-empty ol { list-style: none; counter-reset: fha; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.fh-af-empty li { counter-increment: fha; position: relative; padding: 16px 16px 16px 54px; border-radius: 14px; border: 1px dashed var(--bd); display: flex; flex-direction: column; gap: 3px; }
.fh-af-empty li::before { content: counter(fha); position: absolute; left: 16px; top: 16px; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; background: var(--p-tint); color: var(--p); }
html.dark .fh-af-empty li::before { color: #8FB0FF; }
.fh-af-empty b { font-size: 14px; color: var(--tx); }
.fh-af-empty span { font-size: 12.5px; line-height: 1.5; color: var(--mut); }
.fh-af-banners { padding: 22px !important; }
.fh-body .fh-af-banners h2 { margin: 0 0 14px !important; font-size: 16px !important; font-weight: 700 !important; color: var(--tx) !important; }
.fh-af-banners-body { overflow-x: auto; color: var(--tx2); }
.fh-af-banners-body textarea { width: 100%; border-radius: 12px; border: 1px solid var(--bd); background: var(--card-hi); color: var(--tx); font-family: var(--mono); font-size: 12.5px; padding: 12px; }
.fh-af-off { max-width: 560px; margin: 40px auto; padding: 40px 32px !important; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.fh-af-off-ico { width: 56px; height: 56px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; background: var(--p-tint); color: var(--p); }
.fh-body .fh-af-off h1 { margin: 6px 0 0 !important; font-size: 22px !important; font-weight: 700 !important; color: var(--tx) !important; }
.fh-af-off p { margin: 0; font-size: 13.5px; color: var(--mut); }
@media (max-width: 1000px) { .fh-af-top { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .fh-af-linkrow { flex-direction: column; }
  .fh-af-copy { justify-content: center; }
  .fh-af-stats { grid-template-columns: 1fr; }
  .fh-af-stat { border-left: 0; border-top: 1px solid var(--bd); }
  .fh-af-stat:first-child { border-top: 0; }
  .fh-af-empty ol { grid-template-columns: 1fr; }
  .fh-af-refs .fh-lp-search { width: 100%; }
}
.fh-af-link { display: flex; flex-direction: column; } .fh-af-link .fh-af-stats { margin-top: auto; } .fh-af-share { margin-bottom: 22px; }

/* ================================================================ v3.31 — markdown editor (ticket submit / reply) */
.fh-body .md-editor { border: 1px solid var(--bd) !important; border-radius: 12px; overflow: hidden; background: var(--card); }
.fh-body .md-editor.active { border-color: var(--p) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--p) 14%, transparent) !important; }
.fh-body .md-editor .md-footer, .fh-body .md-editor > .md-header { background: var(--card-hi) !important; color: var(--mut) !important; border-color: var(--bd) !important; }
.fh-body .md-editor .md-footer { border-top: 1px solid var(--bd) !important; font-size: 11.5px; }
.fh-body .md-editor > textarea, .fh-body .md-editor > .md-preview { border-top-color: var(--bd) !important; border-bottom: 0 !important; }
html.dark .fh-body .md-editor .md-footer *, html.dark .fh-body .md-editor .md-footer { color: var(--mut) !important; background-color: var(--card-hi) !important; }
html.dark .fh-body .md-editor > textarea, html.dark .fh-body .md-editor > textarea:focus, html.dark .fh-body .md-editor > .md-preview { background: var(--card) !important; color: var(--tx) !important; }
html.dark .fh-body .md-editor.md-fullscreen-mode, html.dark .fh-body .md-editor.md-fullscreen-mode .md-input, html.dark .fh-body .md-editor.md-fullscreen-mode .md-preview,
html.dark .fh-body .md-editor.md-fullscreen-mode .md-input:focus, html.dark .fh-body .md-editor.md-fullscreen-mode .md-input:hover { background: var(--bg, var(--card)) !important; color: var(--tx) !important; }
html.dark .fh-body .md-editor .md-controls .md-control { color: var(--mut); }
html.dark .fh-body .md-editor .md-controls .md-control:hover { color: var(--tx); }

/* ================================================================ v3.33 — logo size locked (same box in light and dark) */
.fh-logo img.fh-logo-light, .fh-logo img.fh-logo-dark, html.dark .fh-logo img.fh-logo-dark, html.dark .fh-logo img.fh-logo-light,
.fh-guest-bar .fh-logo img.fh-logo-light, .fh-guest-bar .fh-logo img.fh-logo-dark {
  width: 225px !important; height: 36px !important; min-width: 225px; max-width: none !important; object-fit: contain; object-position: left center; transform: none !important; zoom: 1;
}

/* ================================================================ v3.34 — currency badge tooltip, dismissable overview notice */
.fh-cur-tip { position: relative; cursor: help; }
.fh-cur-tip .fh-tip { position: absolute; top: calc(100% + 10px); right: 0; z-index: 60; width: 260px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--bd); background: var(--card); box-shadow: 0 16px 40px -12px rgba(0,0,0,.35); font-family: var(--sans, inherit); font-size: 12.5px; font-weight: 400; line-height: 1.5; letter-spacing: 0; color: var(--tx2); text-align: left; white-space: normal; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s, transform .15s, visibility 0s .15s; pointer-events: none; }
.fh-cur-tip .fh-tip::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.fh-cur-tip .fh-tip b { display: block; margin-bottom: 3px; font-size: 13px; font-weight: 650; color: var(--tx); }
.fh-cur-tip .fh-tip a { color: var(--p); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.fh-cur-tip:hover .fh-tip, .fh-cur-tip:focus .fh-tip, .fh-cur-tip:focus-within .fh-tip { opacity: 1; visibility: visible; transform: none; transition: opacity .15s, transform .15s; pointer-events: auto; }
.fh-notice .fh-slim-x { margin-left: 2px; }

/* ================================================================ v3.35 — signed-out visitors get the sidebar shell too */
.fh-guest-cta { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.fh-guest-cta .fh-btn { width: 100%; justify-content: center; white-space: nowrap; }
@media (max-width: 560px) { .fh-app-guest .fh-guest-signin { display: none; } }
.fh-help .fh-guest-cta a.fh-btn { font-size: 12.5px; color: var(--tx) !important; }
.fh-help .fh-guest-cta a.fh-btn-primary { color: #fff !important; }

/* ================================================================ v3.36 — styled currency dropdown (header + create account) */
.fh-dd-native { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; border: 0 !important; opacity: 0 !important; pointer-events: none !important; }
.fh-dd { position: relative; display: inline-flex; }
.fh-dd-field { display: flex; width: 100%; }
.fh-dd-btn { display: inline-flex; align-items: center; gap: 8px; cursor: pointer !important; font: inherit; color: var(--tx); }
.fh-dd-top .fh-dd-btn { gap: 6px; padding: 0 10px 0 12px !important; }
.fh-dd-top .fh-dd-val { font-family: var(--mono); font-size: 13px; font-weight: 600; }
.fh-dd-chev { flex-shrink: 0; color: var(--mut); transition: transform .15s; }
.fh-dd-open .fh-dd-chev { transform: rotate(180deg); }
.fh-dd-btn:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--p-tint); border-color: var(--p) !important; }
.fh-dd-open .fh-dd-btn { border-color: var(--p) !important; }

.fh-dd-field .fh-dd-btn { width: 100%; height: 46px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--bd); background: var(--card); text-align: left; transition: border-color .15s, box-shadow .15s; }
.fh-dd-field .fh-dd-btn:hover { border-color: color-mix(in srgb, var(--p) 45%, var(--bd)); }
.fh-dd-field .fh-dd-val { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; }
.fh-dd-field .fh-dd-val b { font-family: var(--mono); font-weight: 650; }
.fh-dd-field .fh-dd-val small { font-size: 12.5px; color: var(--mut); margin-left: 4px; }
.fh-body .prepend-icon .fh-dd-field .fh-dd-btn { padding-left: 42px; }

.fh-dd-list { position: absolute; top: calc(100% + 6px); right: 0; z-index: 80; min-width: 220px; max-height: 300px; overflow: auto; margin: 0; padding: 6px; list-style: none; border-radius: 14px; border: 1px solid var(--bd); background: var(--card); box-shadow: 0 18px 44px -14px rgba(0,0,0,.35), 0 2px 6px rgba(0,0,0,.06); animation: fh-dd-in .14s ease-out; }
.fh-dd-field .fh-dd-list { left: 0; right: 0; min-width: 0; }
.fh-dd-list[hidden] { display: none; }
@keyframes fh-dd-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.fh-dd-list li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; cursor: pointer; color: var(--tx); outline: 0; }
.fh-dd-list li:hover, .fh-dd-list li:focus { background: var(--card-hi); }
.fh-dd-list li.fh-on { background: var(--p-tint); }
.fh-dd-sym { width: 30px; height: 30px; flex-shrink: 0; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: var(--card-hi); color: var(--tx2); font-size: 13.5px; font-weight: 700; }
.fh-dd-list li.fh-on .fh-dd-sym { background: var(--p); color: #fff; }
.fh-dd-field .fh-dd-btn > .fh-dd-sym { width: 24px; height: 24px; border-radius: 7px; font-size: 12px; }
.fh-body .prepend-icon .fh-dd-field .fh-dd-btn > .fh-dd-sym { display: none; }
.fh-dd-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.fh-dd-txt b { font-family: var(--mono); font-size: 13.5px; font-weight: 650; color: var(--tx); }
.fh-dd-txt small { font-size: 11.5px; color: var(--mut); }
.fh-dd-tick { flex-shrink: 0; color: var(--p); opacity: 0; }
.fh-dd-list li.fh-on .fh-dd-tick { opacity: 1; }
html.dark .fh-dd-list li.fh-on .fh-dd-tick { color: #8FB0FF; }
@media (max-width: 480px) { .fh-dd-top { display: none; } }
.fh-dd-sym { font-size: 15px; }

/* ============================== v3.41 responsive pass (phones + tablets) ============================== */
/* The page background: Nexus paints <html> with its dark "inverted" colour and gives html/body a fixed
   100% height, so on long pages the area below the first screen showed dark in light mode. */
html { background: var(--bg) !important; height: auto !important; min-height: 100%; }
body.fh-body { height: auto !important; min-height: 100vh; background: var(--bg); }

/* "Already have an account? Sign in" line on the sign-up page shared its class name with the renewals
   on/off switch and was squeezed into a 34px pill */
p.fh-switch { width: auto; height: auto; border-radius: 0; background: none; position: static; transition: none; }

/* nothing may push the page sideways */
.fh-main, .fh-content { min-width: 0; max-width: 100%; }
.fh-content h1, .fh-content h2, .fh-content h3, .fh-content h4 { overflow-wrap: anywhere; }
.fh-content img, .fh-content video, .fh-content iframe { max-width: 100%; height: auto; }
.fh-content pre, .fh-content code { white-space: pre-wrap; word-break: break-word; }

/* wide tables scroll inside their card (wrapper added by fimurohost.js) */
.fh-tscroll { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.fh-tscroll > table { margin-bottom: 0; }
.fh-body .table-container, .fh-body .table-responsive, .fh-body .dataTables_wrapper { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* renewals page: an old rule kept the two-column layout on phones */
@media (max-width: 1279px) {
  .fh-body #order-standard_cart.fh-rn-page > .row { grid-template-columns: minmax(0, 1fr) !important; }
}
@media (max-width: 991px) {
  .fh-body #order-standard_cart.fh-rn-page .fh-rn-main > .row { grid-template-columns: minmax(0, 1fr) !important; }
  .fh-body #order-standard_cart.fh-rn-page .secondary-cart-sidebar { position: static !important; }
}

/* tablets */
@media (max-width: 1024px) {
  .fh-topbar { min-height: 60px; }
  .fh-crumb { flex: 1 1 auto; min-width: 0; text-align: left; align-items: flex-start; }
  .fh-crumb h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .fh-content { padding-left: 20px; padding-right: 20px; }
}

/* phones: one compact top bar — menu · title · theme · main action */
@media (max-width: 720px) {
  .fh-topbar { flex-direction: row !important; flex-wrap: nowrap; align-items: center !important; height: auto; min-height: 56px; padding: 8px 12px !important; gap: 10px !important; }
  .fh-crumb { flex: 1 1 auto; min-width: 0; }
  .fh-crumb h1 { font-size: 17px !important; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; }
  .fh-crumb-sub { font-size: 10.5px; }
  .fh-top-actions { flex-wrap: nowrap !important; gap: 8px; margin-left: auto; }
  .fh-top-actions .fh-btn-sm { padding-left: 12px; padding-right: 12px; white-space: nowrap; }
  .fh-top-actions .fh-icon-btn, .fh-menu-btn { width: 38px; height: 38px; flex-shrink: 0; }
  .fh-content { padding: 16px 14px 24px !important; }

  /* order progress: numbers for done / next steps, full label only for the current one */
  .fh-flow-steps { flex-wrap: nowrap; overflow: visible !important; width: auto !important; }
  .fh-flow-steps li:not(.fh-on) { font-size: 0; gap: 0; padding: 4px; }
  .fh-flow-steps li:not(.fh-on) i { font-size: 10.5px; }

  /* rows of buttons wrap instead of running off the screen */
  .fh-tk-actions, .fh-seg, .fh-rn-head, .fh-rn-chips, .fh-svc-cta, .fh-ph-cta, .fh-vt-actions, .fh-vt-head { flex-wrap: wrap; max-width: 100%; }
  .fh-tk-actions > *, .fh-vt-actions > * { flex: 1 1 auto; justify-content: center; }
  .fh-seg { overflow-x: auto; }
  .fh-body .btn-group { flex-wrap: wrap; }

  /* forms: full-width fields, no zoom-on-focus on iPhone */
  .fh-body input.form-control, .fh-body select.form-control, .fh-body textarea.form-control, .fh-body .custom-select { font-size: 16px; }
  .fh-body .form-row, .fh-body .row { margin-left: -8px; margin-right: -8px; }
  .fh-body .form-row > [class*="col"], .fh-body .row > [class*="col"] { padding-left: 8px; padding-right: 8px; }

  .fh-body #order-standard_cart .secondary-cart-sidebar, .fh-body #order-standard_cart .order-summary { width: auto !important; max-width: 100% !important; }

  .fh-list-panel .fh-tbl-wrap { margin: 0 !important; padding: 0 0 8px !important; }

  /* modals fit the screen */
  .fh-body .modal-dialog { margin: 12px; max-width: calc(100vw - 24px); }

  /* sign-in / sign-up */
  .fh-auth-form { padding: 28px 16px !important; min-width: 0; max-width: 100%; }
  .fh-form-inner { width: 100% !important; max-width: 100% !important; }
}

@media (max-width: 400px) {
  .fh-top-actions .fh-btn-sm { padding-left: 10px; padding-right: 10px; font-size: 12.5px; }
  .fh-app-guest .fh-top-actions .fh-cur-form { display: none; }
}

/* v3.41 — phone / tablet menu drawer: fits the visible screen (iPhone toolbars), whole drawer scrolls,
   has its own close button */
.fh-side-close { display: none; }
@media (max-width: 1024px) {
  .fh-sidebar { width: min(300px, 86vw) !important; height: 100vh; height: 100dvh; max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 16px 14px calc(16px + env(safe-area-inset-bottom)); gap: 14px; }
  .fh-sidebar .fh-nav { flex: 0 0 auto; overflow: visible; }
  .fh-sidebar .fh-side-foot { margin-top: auto; }
  .fh-sidebar .fh-logo { display: flex; align-items: center; padding-right: 44px; }
  .fh-sidebar .fh-logo img { width: auto; max-width: 100%; height: 30px; }
  .fh-side-close { display: inline-flex; align-items: center; justify-content: center; position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--bd); background: var(--card); color: var(--tx); cursor: pointer; z-index: 2; }
  .fh-side-close:hover { background: var(--card-hi); }
}

/* ======================================================= v3.46 on/off switches ===
   WHMCS's Yes/No switches (mailing list, "don't store card", …) are sized by their script when the page
   loads; inside a section that is hidden at that moment they came out broken ("Yes" above "No").
   Drawn here with CSS only, so they look right however they were initialised. Clicking works as before. */
.bootstrap-switch, .bootstrap-switch.bootstrap-switch-small, .bootstrap-switch.bootstrap-switch-mini, .bootstrap-switch.bootstrap-switch-large { position: relative !important; display: inline-block !important; width: 48px !important; min-width: 0 !important; max-width: none !important; height: 28px !important; padding: 0 !important; border: 1px solid var(--bd) !important; border-radius: 999px !important; background: var(--card-hi) !important; overflow: hidden !important; vertical-align: middle; box-shadow: none !important; transition: background-color .2s, border-color .2s; }
.bootstrap-switch.bootstrap-switch-on { background: var(--ok) !important; border-color: var(--ok) !important; }
.bootstrap-switch .bootstrap-switch-container, .bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0 !important; transform: none !important; display: block !important; }
.bootstrap-switch .bootstrap-switch-container .bootstrap-switch-handle-on, .bootstrap-switch .bootstrap-switch-container .bootstrap-switch-handle-off { display: none !important; }
.bootstrap-switch .bootstrap-switch-container .bootstrap-switch-label { position: absolute !important; inset: 0; display: block !important; width: 100% !important; height: 100% !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: transparent !important; color: transparent !important; font-size: 0 !important; cursor: pointer; }
.bootstrap-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(10, 16, 32, .35); transition: transform .2s; pointer-events: none; }
.bootstrap-switch.bootstrap-switch-on::after { transform: translateX(20px); }
.bootstrap-switch.bootstrap-switch-focused { box-shadow: 0 0 0 3px color-mix(in srgb, var(--p) 22%, transparent) !important; }
.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly { opacity: .55; cursor: default; }
.bootstrap-switch input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
.marketing-email-optin .bootstrap-switch { margin-top: 4px; }


/* ===== v3.48 — invoice: theme logo + payment-method cards ===== */
.fh-invoice .fh-inv-brand { margin: 0 0 10px; }
.fh-invoice .fh-inv-brand img { height: 34px !important; width: auto !important; max-width: 100%; }
.fh-invoice .fh-inv-brand .fh-logo-dark { display: none; }
html.dark .fh-invoice .fh-inv-brand .fh-logo-light { display: none; }
html.dark .fh-invoice .fh-inv-brand .fh-logo-dark { display: inline-block; }
.fh-invoice [data-role="paymethod-info"] { display: block; float: none !important; margin-top: 8px; }
.fh-invoice .fh-gw-form { margin: 0; }
.fh-invoice .fh-gw-list { display: flex; flex-direction: column; gap: 8px; width: 100%; max-width: 340px; margin-left: auto; }
.fh-invoice .fh-gw { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 1px solid var(--bd); border-radius: 12px; background: var(--card); color: var(--tx); font-size: 14px; font-weight: 600; line-height: 1.3; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s, background .15s; }
.fh-invoice .fh-gw:hover { border-color: var(--p); }
.fh-invoice .fh-gw:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--p-tint); border-color: var(--p); }
.fh-invoice .fh-gw-dot { flex: 0 0 18px; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--bd); background: var(--card); box-sizing: border-box; transition: border-color .15s, box-shadow .15s; }
.fh-invoice .fh-gw-name { flex: 1 1 auto; min-width: 0; }
.fh-invoice .fh-gw-tag { flex: 0 0 auto; font-size: 11px; font-weight: 700; letter-spacing: .02em; padding: 3px 8px; border-radius: 999px; background: var(--p-tint); color: var(--p); }
.fh-invoice .fh-gw.fh-gw-on { border-color: var(--p); background: color-mix(in srgb, var(--p) 6%, var(--card)); box-shadow: 0 0 0 1px var(--p) inset; cursor: default; }
.fh-invoice .fh-gw.fh-gw-on .fh-gw-dot { border-color: var(--p); box-shadow: inset 0 0 0 4px var(--card); background: var(--p); }
@media (max-width: 575.98px) { .fh-invoice .fh-gw-list { max-width: none; margin: 0; } }
@media print { .fh-invoice .fh-gw-list .fh-gw:not(.fh-gw-on) { display: none !important; } .fh-invoice .fh-gw-tag, .fh-invoice .fh-gw-dot { display: none !important; } .fh-invoice .fh-inv-brand .fh-logo-dark { display: none !important; } .fh-invoice .fh-inv-brand .fh-logo-light { display: inline-block !important; } }

/* ================================================================ v3.50 — short create-account form (clientregister.tpl) */
.fh-reg form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.fh-reg #containerNewUserSignup, .fh-reg #containerNewUserSecurity, .fh-reg #containerPassword { display: flex; flex-direction: column; gap: 16px; }
.fh-reg #containerNewUserSecurity.w-hidden, .fh-reg #containerPassword.hidden { display: none; }
.fh-reg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fh-reg-row-3 { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
@media (max-width: 560px) { .fh-reg-row { grid-template-columns: 1fr; } }
.fh-reg-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
.fh-reg-field > label { margin: 0; font-size: 13px; font-weight: 600; color: var(--tx2); }
.fh-reg-opt { font-weight: 400; color: var(--mut); }
.fh-reg .form-control { width: 100%; background: var(--card); border: 1px solid var(--bd); color: var(--tx); box-shadow: none; transition: border-color .15s, box-shadow .15s; }
.fh-reg .form-control:focus { border-color: var(--p); box-shadow: 0 0 0 3px var(--p-tint); outline: 0; }
.fh-reg select.form-control { cursor: pointer; }
.fh-reg .fh-dd-field .fh-dd-btn { height: 48px; }
.fh-reg .iti { display: block; width: 100%; }
.fh-reg .iti input.form-control { width: 100%; }
.fh-reg-pass { position: relative; }
.fh-reg-pass .form-control { padding-right: 48px; }
.fh-reg-eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--mut); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.fh-reg-eye:hover { color: var(--tx); background: var(--card-hi); }
.fh-reg-eye.fh-on { color: var(--p); }
.fh-reg-hint { font-size: 12.5px; color: var(--mut); }
.fh-reg .control .form-control, .fh-reg .control select, .fh-reg .control input[type=text] { width: 100%; }
.fh-reg-tos { display: flex; align-items: center; gap: 10px; margin: 2px 0 0; font-size: 14px; font-weight: 400; color: var(--tx2); cursor: pointer; }
.fh-reg-tos input { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--p); cursor: pointer; }
.fh-reg-tos a { font-weight: 600; }
.fh-reg-submit { margin: 2px 0 0; }
.fh-reg .fh-reg-btn { width: 100%; height: 50px; border-radius: 12px; font-size: 15.5px; font-weight: 650; }
.fh-reg #frmCheckout .fh-ts { margin: 0; }
.fh-form-head p a { font-weight: 600; }
.fh-reg { margin-top: 22px; }
.fh-body .fh-reg .form-control { height: 48px !important; min-height: 48px; border-radius: 12px !important; font-size: 15px; background-color: var(--card) !important; border: 1px solid var(--bd) !important; color: var(--tx) !important; }
.fh-body .fh-reg .form-control:not([type="tel"]) { padding: 0 14px !important; }
.fh-body .fh-reg .form-control[type="tel"] { padding-right: 14px !important; }
.fh-body .fh-reg .form-control:focus { border-color: var(--p) !important; box-shadow: 0 0 0 3px var(--p-tint) !important; }
.fh-body .fh-reg .fh-reg-pass .form-control { padding-right: 48px !important; }
.fh-body .fh-reg select.form-control { padding-right: 36px !important; }
.fh-reg-eye:focus { outline: 0; }
.fh-reg-eye:focus-visible { box-shadow: 0 0 0 3px var(--p-tint); }
.fh-body #registration.fh-reg { margin-top: 22px !important; }

/* v3.51 — country picker (create account) */
.fh-cc { position: relative; }
.fh-cc .fh-cc-btn { height: 48px; border-radius: 12px; gap: 10px; }
.fh-cc .fh-dd-val { font-size: 14.5px; color: var(--tx); }
.fh-cc-flag { position: static !important; display: inline-block !important; flex-shrink: 0; margin: 0 !important; border-radius: 2px; }
.fh-cc-panel { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 90; border-radius: 14px; border: 1px solid var(--bd); background: var(--card); box-shadow: 0 18px 44px -14px rgba(0,0,0,.35), 0 2px 6px rgba(0,0,0,.06); animation: fh-dd-in .14s ease-out; overflow: hidden; min-width: 260px; }
.fh-cc-panel[hidden] { display: none; }
.fh-cc-search { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--bd-soft); color: var(--mut); }
.fh-cc-search input { flex: 1 1 auto; min-width: 0; height: 34px; border: 0 !important; outline: 0; background: transparent !important; color: var(--tx); font: inherit; font-size: 14.5px; box-shadow: none !important; padding: 0 !important; }
.fh-cc-list { list-style: none; margin: 0; padding: 6px; max-height: 280px; overflow-y: auto; overscroll-behavior: contain; }
.fh-cc-list li { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; cursor: pointer; color: var(--tx); font-size: 14px; outline: 0; }
.fh-cc-list li[hidden] { display: none; }
.fh-cc-list li.fh-cc-act { background: var(--card-hi); }
.fh-cc-list li.fh-on { background: var(--p-tint); font-weight: 600; }
.fh-cc-name { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fh-cc-list li.fh-on .fh-dd-tick { opacity: 1; }
.fh-cc-empty { margin: 0; padding: 14px; text-align: center; font-size: 13.5px; color: var(--mut); }
html.dark .fh-cc-flag { box-shadow: 0 0 0 1px rgba(255,255,255,.12); }

/* v3.52 — checkout: one password field with eye, country picker inside the Standard Cart field layout */
.fh-co-pass { position: relative; }
.fh-body .fh-co-pass .form-control { padding-right: 48px !important; }
.prepend-icon:has(.fh-cc) > .field-icon { display: none !important; }
.fh-body .prepend-icon .fh-cc .fh-dd-btn { padding-left: 14px !important; }
.fh-co .fh-cc .fh-cc-btn { height: 46px; }
.fh-co-pass .fh-reg-eye { top: auto; bottom: 5px; transform: none; }
