/*!
 * Full Hosting console layer for WHMCS (template "fullhosting-console", parent antler, Bootstrap 3.4.1).
 * Loaded by includes/hooks/fh_console_theme.php (ClientAreaHeadOutput) and directly by the
 * child viewinvoice.tpl / viewquote.tpl. Source of truth: approved console mockups (2026-10-04).
 * Rules: monochrome dark, white highlight, no violet, no hover lift/glow, contrast >= 4.5:1,
 * visible focus, 44px targets. Never sets `display` on .hidden/.w-hidden/.collapse/.tab-pane/.modal
 * or other JS-toggled elements.
 */

:root {
    /* dark (approved console look) = default */
    color-scheme: dark;
    --fh-bg: #000;
    --fh-ground: radial-gradient(1600px 720px at 50% 0, #242424 0%, #0e0e0e 48%, #000 100%);
    --fh-ground-auth: radial-gradient(1200px 640px at 30% 0, #242424 0%, #0e0e0e 50%, #000 100%);
    --fh-surface: #121212;
    --fh-card: linear-gradient(180deg, #1c1c1c 0%, #111 100%);
    --fh-menu-bg: #111;
    --fh-raise: #1a1a1a;
    --fh-elev: #242526;
    --fh-edge: #262626;
    --fh-edge-top: #404040;
    --fh-edge-strong: #3e4042;
    --fh-heading: #fff;
    --fh-text: #a8a8a8;
    --fh-soft: #d4d4d4;
    --fh-muted: #9a9a9a;
    --fh-faint: #909090;
    --fh-input: #363636;
    --fh-input-hover: #444;
    --fh-input-focus: #4a4a4a;
    --fh-input-edge: #7a7a7a;
    --fh-input-edge-focus: #a0a0a0;
    --fh-placeholder: #b0b0b0;
    --fh-hdr-bg: rgba(0,0,0,.6);
    --fh-tint-1: rgba(255,255,255,.02);
    --fh-tint-2: rgba(255,255,255,.05);
    --fh-tint-3: rgba(255,255,255,.08);
    --fh-underline: rgba(255,255,255,.35);
    --fh-hi-bg: #fff;
    --fh-hi-fg: #000;
    --fh-focus: #fafafa;
    --fh-chrome: linear-gradient(180deg, #fff 0%, #dcdcdc 52%, #bfbfbf 100%);
    --fh-primary-fg: #0a0a0a;
    --fh-primary-edge: #9c9c9c;
    --fh-primary-edge-top: #fff;
    --fh-primary-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(0,0,0,.18), 0 3px 10px rgba(0,0,0,.65);
    --fh-card-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 16px 36px -24px rgba(0,0,0,.95);
    --fh-drop-shadow: 0 16px 36px -24px rgba(0,0,0,.95);
    --fh-menu-shadow: 0 16px 36px -12px rgba(0,0,0,.9);
    --fh-avatar-bg: radial-gradient(circle at 35% 28%, #3d3d3d, #151515 72%);
    --fh-avatar-edge: #3b3b3b;
    --fh-ok: #05df72;  --fh-ok-bg: rgba(5,223,114,.08);  --fh-ok-edge: rgba(5,223,114,.28);
    --fh-warn: #ffb900; --fh-warn-bg: rgba(255,185,0,.08); --fh-warn-edge: rgba(255,185,0,.28);
    --fh-bad: #ff6467;  --fh-bad-bg: rgba(255,100,103,.08); --fh-bad-edge: rgba(255,100,103,.28);
    --fh-danger-bg: #7a1214; --fh-danger-hover: #8f1a1d; --fh-danger-edge: #a3282b;
    --fh-font: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --fh-select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23d4d4d4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    --fh-check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
/* light: soft neutrals (never a pure white page), same tokens; OS preference unless the visitor picked one */
@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) {
        color-scheme: light;
        --fh-bg: #f4f4f2;
        --fh-ground: radial-gradient(1600px 720px at 50% 0, #fbfbfa 0%, #f4f4f2 55%, #f4f4f2 100%);
        --fh-ground-auth: radial-gradient(1200px 640px at 30% 0, #fbfbfa 0%, #f1f1ee 55%, #ececea 100%);
        --fh-surface: #f4f4f2;
        --fh-card: linear-gradient(180deg, #fcfcfb 0%, #f8f8f6 100%);
        --fh-menu-bg: #fcfcfb;
        --fh-raise: #efefec;
        --fh-elev: #e7e7e4;
        --fh-edge: #e4e4e7;
        --fh-edge-top: #e4e4e7;
        --fh-edge-strong: #d4d4d8;
        --fh-heading: #18181b;
        --fh-text: #3f3f46;
        --fh-soft: #27272a;
        --fh-muted: #52525b;
        --fh-faint: #52525b;
        --fh-input: #ffffff;
        --fh-input-hover: #e7e7e4;
        --fh-input-focus: #ffffff;
        --fh-input-edge: #a1a1aa;
        --fh-input-edge-focus: #52525b;
        --fh-placeholder: #71717a;
        --fh-hdr-bg: rgba(244,244,242,.85);
        --fh-tint-1: rgba(24,24,27,.02);
        --fh-tint-2: rgba(24,24,27,.04);
        --fh-tint-3: rgba(24,24,27,.07);
        --fh-underline: rgba(24,24,27,.35);
        --fh-hi-bg: #18181b;
        --fh-hi-fg: #fafaf9;
        --fh-focus: #18181b;
        --fh-chrome: linear-gradient(180deg, #2a2a2e 0%, #18181b 100%);
        --fh-primary-fg: #fafaf9;
        --fh-primary-edge: #18181b;
        --fh-primary-edge-top: #3f3f46;
        --fh-primary-shadow: 0 1px 2px rgba(24,24,27,.25);
        --fh-card-shadow: 0 1px 2px rgba(24,24,27,.04), 0 12px 28px -22px rgba(24,24,27,.25);
        --fh-drop-shadow: 0 12px 28px -22px rgba(24,24,27,.3);
        --fh-menu-shadow: 0 16px 36px -16px rgba(24,24,27,.3);
        --fh-avatar-bg: radial-gradient(circle at 35% 28%, #ffffff, #e4e4e7 72%);
        --fh-avatar-edge: #d4d4d8;
        --fh-ok: #166534;  --fh-ok-bg: rgba(21,128,61,.08);  --fh-ok-edge: rgba(21,128,61,.3);
        --fh-warn: #a14b07; --fh-warn-bg: rgba(180,83,9,.08); --fh-warn-edge: rgba(180,83,9,.3);
        --fh-bad: #b91c1c;  --fh-bad-bg: rgba(185,28,28,.07); --fh-bad-edge: rgba(185,28,28,.3);
        --fh-danger-bg: #b91c1c; --fh-danger-hover: #991b1b; --fh-danger-edge: #991b1b;
        --fh-select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
        --fh-check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2318181b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    }
}
:root[data-theme="light"] {
    color-scheme: light;
    --fh-bg: #f4f4f2;
    --fh-ground: radial-gradient(1600px 720px at 50% 0, #fbfbfa 0%, #f4f4f2 55%, #f4f4f2 100%);
    --fh-ground-auth: radial-gradient(1200px 640px at 30% 0, #fbfbfa 0%, #f1f1ee 55%, #ececea 100%);
    --fh-surface: #f4f4f2;
    --fh-card: linear-gradient(180deg, #fcfcfb 0%, #f8f8f6 100%);
    --fh-menu-bg: #fcfcfb;
    --fh-raise: #efefec;
    --fh-elev: #e7e7e4;
    --fh-edge: #e4e4e7;
    --fh-edge-top: #e4e4e7;
    --fh-edge-strong: #d4d4d8;
    --fh-heading: #18181b;
    --fh-text: #3f3f46;
    --fh-soft: #27272a;
    --fh-muted: #52525b;
    --fh-faint: #52525b;
    --fh-input: #ffffff;
    --fh-input-hover: #e7e7e4;
    --fh-input-focus: #ffffff;
    --fh-input-edge: #a1a1aa;
    --fh-input-edge-focus: #52525b;
    --fh-placeholder: #71717a;
    --fh-hdr-bg: rgba(244,244,242,.85);
    --fh-tint-1: rgba(24,24,27,.02);
    --fh-tint-2: rgba(24,24,27,.04);
    --fh-tint-3: rgba(24,24,27,.07);
    --fh-underline: rgba(24,24,27,.35);
    --fh-hi-bg: #18181b;
    --fh-hi-fg: #fafaf9;
    --fh-focus: #18181b;
    --fh-chrome: linear-gradient(180deg, #2a2a2e 0%, #18181b 100%);
    --fh-primary-fg: #fafaf9;
    --fh-primary-edge: #18181b;
    --fh-primary-edge-top: #3f3f46;
    --fh-primary-shadow: 0 1px 2px rgba(24,24,27,.25);
    --fh-card-shadow: 0 1px 2px rgba(24,24,27,.04), 0 12px 28px -22px rgba(24,24,27,.25);
    --fh-drop-shadow: 0 12px 28px -22px rgba(24,24,27,.3);
    --fh-menu-shadow: 0 16px 36px -16px rgba(24,24,27,.3);
    --fh-avatar-bg: radial-gradient(circle at 35% 28%, #ffffff, #e4e4e7 72%);
    --fh-avatar-edge: #d4d4d8;
    --fh-ok: #166534;  --fh-ok-bg: rgba(21,128,61,.08);  --fh-ok-edge: rgba(21,128,61,.3);
    --fh-warn: #a14b07; --fh-warn-bg: rgba(180,83,9,.08); --fh-warn-edge: rgba(180,83,9,.3);
    --fh-bad: #b91c1c;  --fh-bad-bg: rgba(185,28,28,.07); --fh-bad-edge: rgba(185,28,28,.3);
    --fh-danger-bg: #b91c1c; --fh-danger-hover: #991b1b; --fh-danger-edge: #991b1b;
    --fh-select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    --fh-check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2318181b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}


/* ------------------------------------------------------------------ base */
html { background: var(--fh-bg); }
body.fh {
    margin: 0;
    background: var(--fh-bg) var(--fh-ground) no-repeat !important;
    color: var(--fh-text) !important;
    font-family: var(--fh-font) !important;
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
body.fh .box-container,
body.fh .box-container.fh-shell { background: transparent !important; min-height: 100vh; display: flex; flex-direction: column; }
body.fh h1, body.fh h2, body.fh h3, body.fh h4, body.fh h5, body.fh h6, body.fh p, body.fh a, body.fh li, body.fh td, body.fh th,
body.fh dt, body.fh dd, body.fh label, body.fh legend, body.fh small, body.fh strong, body.fh b, body.fh .btn, body.fh button, body.fh input, body.fh select,
body.fh textarea, body.fh .form-control, body.fh .panel-title, body.fh .section-heading, body.fh .menu-item { font-family: var(--fh-font) !important; }
body.fh h1, body.fh h2, body.fh h3, body.fh h4, body.fh h5, body.fh h6,
body.fh .h1, body.fh .h2, body.fh .h3, body.fh .h4, body.fh .h5, body.fh .h6 { color: var(--fh-heading) !important; letter-spacing: -.02em; font-family: var(--fh-font) !important; }
body.fh p, body.fh li, body.fh dd, body.fh dt, body.fh td, body.fh label, body.fh small, body.fh .small,
body.fh .mergecolor, body.fh .seccolor, body.fh .c-grey, body.fh .c-grey-light, body.fh .text-muted, body.fh .help-block { color: var(--fh-text); }
body.fh strong, body.fh b, body.fh .whitecolor { color: inherit; }
body.fh a { color: var(--fh-heading); text-underline-offset: 3px; }
body.fh a:hover, body.fh a:focus { color: var(--fh-soft); }
body.fh :focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 2px !important; }
body.fh ::selection { background: var(--fh-hi-bg); color: var(--fh-hi-fg); }
body.fh hr { border-color: var(--fh-edge); }
body.fh .text-muted, body.fh .help-block { color: var(--fh-muted) !important; }
body.fh .text-success { color: var(--fh-ok) !important; }
body.fh .text-warning { color: var(--fh-warn) !important; }
body.fh .text-danger { color: var(--fh-bad) !important; }
body.fh .text-info, body.fh .text-primary { color: var(--fh-heading) !important; }
body.fh code, body.fh pre { background: var(--fh-raise); color: var(--fh-soft); border: 1px solid var(--fh-edge); }
body.fh .sr-only:not(:focus):not(:active) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* antler motion / decorative chrome: no reveal animations, no spinner or frame borders */
body.fh [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }
body.fh #spinner-area, body.fh .body-borders { visibility: hidden !important; }
body.fh .container-clientarea-bg, body.fh .blobleft, body.fh .blobright { background: none !important; }

/* no hover lift (site rule) */
body.fh .box-container *:not(svg):not(path):hover { transform: none !important; }

/* skip link */
body.fh .fh-skip { position: absolute; left: 16px; top: -60px; z-index: 2000; padding: 10px 16px; border-radius: 8px; background: var(--fh-hi-bg); color: var(--fh-hi-fg); font-weight: 700; }
body.fh .fh-skip:focus { top: 12px; color: var(--fh-hi-fg); }

/* ------------------------------------------------------------------ shared atoms */
.fh .fh-micro { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fh-muted); }
.fh .fh-lead { margin: 0; font-size: 16px; color: var(--fh-text); }
.fh .fh-card {
    background: var(--fh-card);
    border: 1px solid var(--fh-edge);
    border-top-color: var(--fh-edge-top);
    border-radius: 16px;
    box-shadow: var(--fh-card-shadow);
}
.fh .fh-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 44px; padding: 0 20px; border-radius: 12px;
    font-family: var(--fh-font); font-size: 14px; font-weight: 700; line-height: 1.2;
    text-decoration: none !important; border: 1px solid var(--fh-edge-strong); cursor: pointer; white-space: nowrap;
    background: var(--fh-input); color: var(--fh-heading) !important; box-shadow: none; transition: background-color .15s, filter .15s;
}
/* Bootstrap/antler .btn: `display` is left to Bootstrap 3 so .hidden/.w-hidden/JS toggles keep working */
body.fh .btn {
    min-height: 44px; padding: 11px 20px; border-radius: 12px;
    font-size: 14px; font-weight: 700; line-height: 20px; vertical-align: middle;
    text-decoration: none !important; text-transform: none; letter-spacing: 0;
    border: 1px solid var(--fh-edge-strong); cursor: pointer;
    background: var(--fh-input); color: var(--fh-heading) !important;
    box-shadow: none; transform: none !important; transition: background-color .15s, filter .15s;
}
body.fh .btn:hover, body.fh .btn:focus, .fh .fh-btn:hover { transform: none !important; box-shadow: none; }
body.fh .btn-sm, body.fh .btn-group-sm > .btn { min-height: 40px; padding: 9px 14px; font-size: 13px; line-height: 20px; }
body.fh .btn-xs { min-height: 32px; padding: 6px 10px; font-size: 12px; line-height: 18px; border-radius: 8px; }
body.fh .btn-lg { min-height: 52px; padding: 14px 26px; font-size: 16px; line-height: 22px; }
body.fh .btn-block { width: 100%; }
.fh .fh-block { display: flex; width: 100%; }
body.fh .btn-group > .btn, body.fh .btn-group-vertical > .btn { border-radius: 0; }
body.fh .btn-group > .btn:first-child { border-top-left-radius: 12px; border-bottom-left-radius: 12px; }
body.fh .btn-group > .btn:last-child, body.fh .btn-group > .dropdown-toggle { border-top-right-radius: 12px; border-bottom-right-radius: 12px; }
body.fh .input-group-btn > .btn { border-radius: 0 12px 12px 0; }

/* primary = chrome (one per screen) */
.fh .fh-primary,
body.fh .btn-primary, body.fh .btn-default-yellow-fill, body.fh .btn-success, body.fh .btn-info,
body.fh .btn-checkout, body.fh #btnCompleteOrder, body.fh .btn-default-fill.question,
body.fh input[type="submit"].btn-primary, body.fh .payment-btn-container .btn, body.fh .payment-btn-container input[type="submit"],
body.fh .payment-btn-container button {
    color: var(--fh-primary-fg) !important;
    background: var(--fh-chrome) !important;
    border: 1px solid var(--fh-primary-edge) !important; border-top-color: var(--fh-primary-edge-top) !important;
    box-shadow: var(--fh-primary-shadow) !important;
}
.fh .fh-primary:hover, body.fh .btn-primary:hover, body.fh .btn-default-yellow-fill:hover, body.fh .btn-success:hover,
body.fh .btn-info:hover, body.fh .btn-checkout:hover, body.fh #btnCompleteOrder:hover { color: var(--fh-primary-fg) !important; filter: brightness(.94); }
.fh .fh-primary *, body.fh .btn-primary *, body.fh .btn-default-yellow-fill *, body.fh .btn-success *, body.fh .btn-info * { color: var(--fh-primary-fg) !important; }
/* secondary */
.fh .fh-secondary, body.fh .btn-default, body.fh .btn-default-fill, body.fh .btn-default-pink, body.fh .btn-default-purple,
body.fh .btn-default-yellow, body.fh .btn-warning, body.fh .btn-secondary {
    color: var(--fh-heading) !important; background: var(--fh-input) !important; border: 1px solid var(--fh-edge-strong) !important;
}
.fh .fh-secondary:hover, body.fh .btn-default:hover, body.fh .btn-default-fill:hover, body.fh .btn-warning:hover { background: var(--fh-input-hover) !important; color: var(--fh-heading) !important; }
/* ghost */
.fh .fh-ghost, body.fh .btn-link.btn, body.fh .btn-outline {
    color: var(--fh-heading) !important; background: transparent !important; border: 1px solid var(--fh-edge-strong) !important;
}
.fh .fh-ghost:hover { background: var(--fh-raise) !important; }
body.fh .btn-link { color: var(--fh-heading) !important; text-decoration: underline !important; }
/* danger stays readable: white text on dark red */
body.fh .btn-danger { color: var(--fh-heading) !important; background: var(--fh-danger-bg) !important; border: 1px solid var(--fh-danger-edge) !important; }
body.fh .btn-danger:hover { background: var(--fh-danger-hover) !important; }
body.fh .btn[disabled], body.fh .btn.disabled { opacity: .55; }

/* pills / labels / badges */
.fh .fh-pill, body.fh .label, body.fh .status, body.fh .label-default {
    display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
    font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: 0; text-transform: none; white-space: nowrap;
    color: var(--fh-soft) !important; background: var(--fh-tint-2) !important; border: 1px solid var(--fh-edge-strong);
    text-shadow: none;
}
body.fh .label::before, body.fh .status::before, .fh .fh-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
body.fh .label-success, body.fh .label.status-active, body.fh .label.status-paid, body.fh .label.status-completed,
body.fh .status-active, body.fh .status-paid, body.fh .status-completed, body.fh .label-active, .fh .fh-ok {
    color: var(--fh-ok) !important; background: var(--fh-ok-bg) !important; border-color: var(--fh-ok-edge) !important;
}
body.fh .label-warning, body.fh .label.status-unpaid, body.fh .label.status-pending, body.fh .status-unpaid, body.fh .status-pending,
body.fh .label.status-payment-pending, body.fh .label.status-answered, body.fh .label.status-customer-reply, body.fh .label.status-pending-transfer, .fh .fh-warn {
    color: var(--fh-warn) !important; background: var(--fh-warn-bg) !important; border-color: var(--fh-warn-edge) !important;
}
body.fh .label-danger, body.fh .label.status-overdue, body.fh .label.status-cancelled, body.fh .label.status-terminated,
body.fh .label.status-suspended, body.fh .label.status-expired, body.fh .label.status-fraud, body.fh .label.status-refunded,
body.fh .status-overdue, body.fh .status-cancelled, body.fh .status-terminated, body.fh .status-suspended, .fh .fh-bad {
    color: var(--fh-bad) !important; background: var(--fh-bad-bg) !important; border-color: var(--fh-bad-edge) !important;
}
body.fh .label-info, body.fh .label-primary, body.fh .label.status-open, body.fh .label.status-in-progress, body.fh .label.status-closed,
body.fh .label.status-draft, body.fh .label.status-transferred-away, .fh .fh-off {
    color: var(--fh-soft) !important; background: var(--fh-tint-2) !important; border-color: var(--fh-edge-strong) !important;
}
body.fh .badge, .fh .fh-badge {
    display: inline-block; min-width: 20px; padding: 2px 7px; border-radius: 999px; font-size: 11px; font-weight: 800; line-height: 1.4;
    color: var(--fh-hi-fg) !important; background: var(--fh-hi-bg) !important; border: 0; text-shadow: none;
}
body.fh .fh-text-warn { color: var(--fh-warn) !important; }

/* ------------------------------------------------------------------ header */
body.fh .fh-hdr { position: relative; z-index: 1030; border-bottom: 1px solid var(--fh-edge); background: var(--fh-hdr-bg); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body.fh .fh-hdr-in { display: flex; align-items: center; gap: 8px 24px; min-height: 72px; max-width: 1264px; margin: 0 auto; padding: 10px 32px; }
body.fh .fh-logo { display: inline-flex; align-items: center; min-height: 44px; flex: none; }
body.fh .fh-logo-svg { display: block; max-width: 100%; height: auto; }
body.fh .fh-nav { display: flex; gap: 4px; flex: 1 1 auto; min-width: 0; }
body.fh .fh-nav a, body.fh .fh-mnav-in a {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 8px;
    font-size: 14px; font-weight: 700; color: var(--fh-text); text-decoration: none; white-space: nowrap;
}
body.fh .fh-nav a:hover, body.fh .fh-mnav-in a:hover { color: var(--fh-heading); background: var(--fh-tint-2); }
body.fh .fh-nav a[aria-current="page"], body.fh .fh-mnav-in a[aria-current="page"] { color: var(--fh-heading); background: var(--fh-tint-3); }
body.fh .fh-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; flex: none; }
body.fh .fh-ibtn {
    position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
    border-radius: 999px; border: 1px solid var(--fh-edge); background: var(--fh-raise); color: var(--fh-soft); text-decoration: none; cursor: pointer;
}
body.fh .fh-ibtn:hover { color: var(--fh-heading); background: var(--fh-elev); }
body.fh .fh-dot { position: absolute; top: 8px; right: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--fh-hi-bg); border: 2px solid var(--fh-raise); }
body.fh .fh-count { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--fh-hi-bg); color: var(--fh-hi-fg); font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
body.fh .fh-acct { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px 0 6px; border-radius: 999px; border: 1px solid var(--fh-edge); background: var(--fh-raise); color: var(--fh-heading); font-weight: 600; cursor: pointer; }
body.fh .fh-acct:hover { background: var(--fh-elev); }
body.fh .fh-avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--fh-avatar-bg); border: 1px solid var(--fh-avatar-edge); font-size: 12px; font-weight: 800; color: var(--fh-heading); }
body.fh .fh-hdr-cta { padding: 0 18px; }
body.fh .fh-burger { visibility: hidden; position: absolute; }
body.fh .fh-mnav { border-top: 1px solid var(--fh-edge); background: var(--fh-menu-bg); }
body.fh .fh-mnav-in { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px 16px; }
body.fh .fh-mnav-in a { font-size: 16px; }
body.fh .fh-mnav-sep { height: 1px; margin: 8px 0; background: var(--fh-edge); }

/* dropdown menus (Bootstrap 3 .open toggling is untouched) */
body.fh .dropdown-menu {
    background: var(--fh-menu-bg) !important; border: 1px solid var(--fh-edge-strong) !important; border-radius: 12px !important;
    box-shadow: var(--fh-menu-shadow) !important; padding: 6px; color: var(--fh-text);
}
body.fh .dropdown-menu > li > a, body.fh .dropdown-menu .dropdown-item { color: var(--fh-soft) !important; border-radius: 8px; padding: 10px 12px; }
body.fh .dropdown-menu > li > a:hover, body.fh .dropdown-menu > li > a:focus, body.fh .dropdown-menu .dropdown-item:hover { background: var(--fh-raise) !important; color: var(--fh-heading) !important; }
body.fh .dropdown-menu .divider { background: var(--fh-edge); }
body.fh .fh-menu { min-width: 260px; margin-top: 8px; }
body.fh .fh-menu-head { padding: 10px 12px 8px; color: var(--fh-heading); font-weight: 700; border-bottom: 1px solid var(--fh-edge); margin-bottom: 6px; }
body.fh .fh-menu-head span { display: block; margin-top: 2px; font-size: 12px; font-weight: 500; color: var(--fh-muted); }
body.fh .fh-menu-item { display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 8px; color: var(--fh-soft); text-decoration: none; font-weight: 600; }
body.fh .fh-menu-item:hover, body.fh .fh-menu-item:focus { background: var(--fh-raise); color: var(--fh-heading); }
body.fh .fh-menu-sep { border-top: 1px solid var(--fh-edge); border-radius: 0 0 8px 8px; margin-top: 6px; }
body.fh .fh-menu-empty { margin: 0; padding: 10px 12px; color: var(--fh-text); }
body.fh .fh-lang .dropdown-menu { max-height: 60vh; overflow-y: auto; }
body.fh .fh-menu-item[aria-current] { color: var(--fh-heading); background: var(--fh-tint-3); }
body.fh .fh-notif { width: 320px; max-width: calc(100vw - 32px); }
body.fh .fh-notif .fh-menu-item { min-height: 44px; padding: 10px 12px; line-height: 1.4; font-weight: 500; }
body.fh .fh-alert-danger { box-shadow: inset 3px 0 0 var(--fh-bad); }
body.fh .fh-alert-warning { box-shadow: inset 3px 0 0 var(--fh-warn); }

/* ------------------------------------------------------------------ page frame */
body.fh .fh-page { flex: 1 0 auto; display: block; outline: 0; }
body.fh #main-body { padding: 40px 0 72px; background: transparent !important; }
body.fh #main-body > .container { max-width: 1264px; width: 100%; padding-left: 32px; padding-right: 32px; }
body.fh .main-content { background: transparent !important; padding: 0 !important; }
body.fh .fh-pagehead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0 0 28px; }
body.fh .fh-pagehead-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
body.fh .fh-pagehead h1 { margin: 0; font-size: 36px; font-weight: 900; letter-spacing: -.03em; line-height: 1.1; overflow-wrap: anywhere; }
body.fh .fh-crumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--fh-muted); }
body.fh .fh-crumb a { color: var(--fh-text); text-decoration: none; }
body.fh .fh-crumb a:hover { color: var(--fh-heading); text-decoration: underline; }
body.fh .fh-crumb [aria-current] { color: var(--fh-muted); }
body.fh .fh-sidemenu .fh-sidebar { width: 320px; max-width: calc(100vw - 32px); max-height: 70vh; overflow-y: auto; padding: 8px; }
body.fh .fh-sidebar .item-drop-side, body.fh .fh-sidebar .panel { background: transparent !important; border: 0 !important; box-shadow: none !important; margin: 0 0 8px; }
body.fh .fh-sidebar .panel-heading { background: transparent !important; border: 0 !important; padding: 8px 10px 4px !important; }
body.fh .fh-sidebar .panel-title { font-size: 11px !important; font-weight: 800 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--fh-muted) !important; }
body.fh .fh-sidebar .panel-body { padding: 6px 10px !important; color: var(--fh-text) !important; background: transparent !important; }
body.fh .fh-sidebar .list-group-item { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--fh-soft) !important; font-weight: 600; }
body.fh .fh-sidebar .list-group-item:hover { background: var(--fh-raise) !important; color: var(--fh-heading) !important; }
body.fh .fh-sidebar .list-group-item.active { background: var(--fh-tint-3) !important; color: var(--fh-heading) !important; }
body.fh .fh-sidebar .list-group-item i { width: 18px; text-align: center; color: var(--fh-muted); }

/* antler page header (pages that still print it) */
body.fh .section-heading { color: var(--fh-heading) !important; font-weight: 900; letter-spacing: -.03em; }
body.fh .section-subheading { color: var(--fh-text) !important; }
body.fh .dropnav-header-lined .drop-down-btn { position: static !important; width: 44px; height: 44px; border-radius: 999px; background: var(--fh-raise) !important; border: 1px solid var(--fh-edge) !important; color: var(--fh-heading) !important; }

/* ------------------------------------------------------------------ footer */
body.fh .fh-foot { border-top: 1px solid var(--fh-edge); font-size: 12px; color: var(--fh-faint); background: transparent; }
body.fh .fh-foot-in { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; justify-content: space-between; max-width: 1264px; margin: 0 auto; padding: 24px 32px; }
body.fh .fh-foot-links { display: flex; flex-wrap: wrap; gap: 4px 20px; align-items: center; }
body.fh .fh-foot a { color: var(--fh-text); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
body.fh .fh-foot a:hover { color: var(--fh-heading); text-decoration: underline; }
body.fh .fh-foot span { color: var(--fh-faint); }

/* ------------------------------------------------------------------ surfaces (antler + Bootstrap 3) */
body.fh .bg-colorstyle, body.fh .bg-seccolorstyle, body.fh .bg-white, body.fh .bg-pratalight, body.fh .bg-greylight,
body.fh .sec-bg1, body.fh .sec-bg2, body.fh .sec-bg3, body.fh .sec-bg4, body.fh .sec-main, body.fh .sec-normal,
body.fh .bg-yellow, body.fh .p-80, body.fh .wrapper, body.fh .content, body.fh .inner-content, body.fh .page-wrapper,
body.fh .main-body, body.fh .motpath, body.fh .cpupath, body.fh .exapath, body.fh .fullrock-content {
    background-color: transparent !important; background-image: none !important; color: var(--fh-text);
}
body.fh .panel, body.fh .well, body.fh .card, body.fh .service-section, body.fh .tabs, body.fh .sec-bx,
body.fh .client-home-panels .panel, body.fh .tab-content > .tab-pane .panel, body.fh .product-details, body.fh .module-client-area,
body.fh .ticket-reply, body.fh .announcement-single, body.fh .kb-article-content, body.fh .knowledge .wrapper {
    background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; border-top-color: var(--fh-edge-top) !important;
    border-radius: 16px !important; box-shadow: var(--fh-card-shadow) !important;
    color: var(--fh-text) !important;
}
body.fh .panel { overflow: hidden; margin-bottom: 24px; }
body.fh .panel-heading, body.fh .panel-default > .panel-heading, body.fh .panel-primary > .panel-heading, body.fh .panel-info > .panel-heading,
body.fh .panel-success > .panel-heading, body.fh .panel-warning > .panel-heading, body.fh .panel-danger > .panel-heading {
    background: transparent !important; color: var(--fh-heading) !important; border-bottom: 1px solid var(--fh-edge) !important; padding: 18px 24px;
}
body.fh .panel-title, body.fh .panel-heading h3, body.fh .panel-heading .panel-title { color: var(--fh-heading) !important; font-size: 18px !important; font-weight: 700 !important; }
body.fh .panel-body { background: transparent !important; color: var(--fh-text) !important; padding: 20px 24px; }
body.fh .panel-footer { background: var(--fh-tint-1) !important; border-top: 1px solid var(--fh-edge) !important; color: var(--fh-text); padding: 14px 24px; }
body.fh .list-group-item { background: transparent !important; border-color: var(--fh-edge) !important; color: var(--fh-text) !important; }
body.fh a.list-group-item:hover, body.fh a.list-group-item:focus { background: var(--fh-raise) !important; color: var(--fh-heading) !important; }
body.fh .list-group-item.active, body.fh a.list-group-item.active { background: var(--fh-tint-3) !important; color: var(--fh-heading) !important; border-color: var(--fh-edge) !important; }

/* nav tabs / pills */
body.fh .nav-tabs { border-bottom: 1px solid var(--fh-edge) !important; }
body.fh .nav-tabs > li > a { color: var(--fh-text) !important; background: transparent !important; border: 1px solid transparent !important; border-radius: 8px 8px 0 0; min-height: 44px; display: flex; align-items: center; }
body.fh .nav-tabs > li > a:hover { color: var(--fh-heading) !important; background: var(--fh-tint-2) !important; }
body.fh .nav-tabs > li.active > a, body.fh .nav-tabs > li.active > a:hover, body.fh .nav-tabs > li.active > a:focus { color: var(--fh-heading) !important; background: var(--fh-surface) !important; border-color: var(--fh-edge) var(--fh-edge) transparent !important; }
body.fh .nav-pills > li > a { color: var(--fh-text) !important; border-radius: 8px; }
body.fh .nav-pills > li.active > a, body.fh .nav-pills > li.active > a:hover { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; }

/* alerts */
body.fh .alert { border-radius: 12px !important; border: 1px solid var(--fh-edge-strong) !important; background: var(--fh-surface) !important; color: var(--fh-soft) !important; text-shadow: none; }
body.fh .alert a { color: var(--fh-heading) !important; text-decoration: underline; }
body.fh .alert-success { border-color: var(--fh-ok-edge) !important; box-shadow: inset 3px 0 0 var(--fh-ok); }
body.fh .alert-warning { border-color: var(--fh-warn-edge) !important; box-shadow: inset 3px 0 0 var(--fh-warn); }
body.fh .alert-danger { border-color: var(--fh-bad-edge) !important; box-shadow: inset 3px 0 0 var(--fh-bad); }
body.fh .alert-info { box-shadow: inset 3px 0 0 var(--fh-heading); }

/* modals (BS3 .fade/.in untouched) */
body.fh .modal-content { background: var(--fh-menu-bg) !important; border: 1px solid var(--fh-edge-strong) !important; border-radius: 16px !important; color: var(--fh-text) !important; box-shadow: var(--fh-menu-shadow) !important; }
body.fh .modal-header, body.fh .modal-footer { border-color: var(--fh-edge) !important; background: transparent !important; }
body.fh .modal-title { color: var(--fh-heading) !important; }
body.fh .modal-backdrop.in { opacity: .75; background: #000; }
body.fh .close { color: var(--fh-heading) !important; opacity: .8; text-shadow: none; min-width: 44px; min-height: 44px; }
body.fh .close:hover { opacity: 1; }
body.fh .popover, body.fh .tooltip-inner { background: var(--fh-raise) !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong); }

/* ------------------------------------------------------------------ forms */
html body.fh .box-container .form-control, html body.fh .form-control, body.fh input[type="text"], body.fh input[type="email"], body.fh input[type="password"],
body.fh input[type="tel"], body.fh input[type="number"], body.fh input[type="search"], body.fh input[type="url"],
body.fh textarea, body.fh select {
    min-height: 44px; padding: 10px 14px; border-radius: 8px !important;
    background-color: var(--fh-input) !important; border: 1px solid var(--fh-input-edge) !important;
    color: var(--fh-heading) !important; font-size: 16px; font-family: var(--fh-font); box-shadow: none !important;
}
body.fh .form-control { height: auto; }
body.fh .input-sm, body.fh .form-control.input-sm { min-height: 40px; font-size: 14px; }
body.fh textarea.form-control { min-height: 120px; }
body.fh .form-control::placeholder, body.fh input::placeholder, body.fh textarea::placeholder { color: var(--fh-placeholder) !important; opacity: 1; }
html body.fh .box-container .form-control:focus, body.fh .form-control:focus, body.fh input:focus, body.fh textarea:focus, body.fh select:focus {
    background-color: var(--fh-input-focus) !important; border-color: var(--fh-input-edge-focus) !important; outline: 2px solid var(--fh-focus) !important; outline-offset: 2px !important;
}
body.fh .form-control[disabled], body.fh .form-control[readonly], body.fh fieldset[disabled] .form-control, body.fh .form-control.disabled {
    background-color: var(--fh-raise) !important; border-color: var(--fh-edge-strong) !important; color: var(--fh-soft) !important; opacity: 1;
}
/* select arrow: local SVG (replaces antler's http://inebur.com/... down.svg = mixed content) */
body.fh select, body.fh select.form-control, body.fh .form-control select {
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    background-image: var(--fh-select-arrow) !important; background-repeat: no-repeat !important;
    background-position: right 14px center !important; background-size: 16px 16px !important; padding-right: 42px !important;
}
body.fh select[multiple], body.fh select[size] { background-image: none !important; padding-right: 14px !important; }
body.fh select option { background: var(--fh-raise); color: var(--fh-heading); }
body.fh label, body.fh .control-label { color: var(--fh-heading) !important; font-weight: 600; font-size: 13px; }
body.fh .fh-label { display: block; margin-bottom: 8px; color: var(--fh-heading); font-size: 13px; font-weight: 600; }
body.fh .input-group-addon { background: var(--fh-raise) !important; border: 1px solid var(--fh-input-edge) !important; color: var(--fh-soft) !important; }
body.fh .input-group .form-control:first-child { border-radius: 8px 0 0 8px !important; }
body.fh .input-group .form-control:last-child { border-radius: 0 8px 8px 0 !important; }
body.fh .input-group-addon:first-child { border-radius: 8px 0 0 8px !important; }
body.fh .has-error .form-control { border-color: var(--fh-bad) !important; }
body.fh .has-error .help-block, body.fh .has-error .control-label { color: var(--fh-bad) !important; }
body.fh .has-success .form-control { border-color: var(--fh-ok) !important; }
body.fh input[type="checkbox"], body.fh input[type="radio"] { accent-color: var(--fh-focus); width: 18px; height: 18px; min-height: 0; }
body.fh .checkbox label, body.fh .radio label, body.fh .checkbox-inline, body.fh .radio-inline { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; color: var(--fh-soft) !important; font-weight: 500; }
body.fh .custom-control-label { color: var(--fh-soft) !important; }
body.fh .bootstrap-switch { border-color: var(--fh-edge-strong) !important; background: var(--fh-raise) !important; }
body.fh .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, body.fh .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,
body.fh .bootstrap-switch .bootstrap-switch-handle-on { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; }
body.fh .bootstrap-switch .bootstrap-switch-handle-off, body.fh .bootstrap-switch .bootstrap-switch-label { background: var(--fh-input) !important; color: var(--fh-heading) !important; }
body.fh .intl-tel-input .country-list { background: var(--fh-menu-bg); border-color: var(--fh-edge-strong); color: var(--fh-soft); }
body.fh .intl-tel-input .country-list .country.highlight { background: var(--fh-elev); }
body.fh .md-editor, body.fh .md-editor > textarea { background: var(--fh-input) !important; border-color: var(--fh-input-edge) !important; color: var(--fh-heading) !important; }
body.fh .md-editor .btn-toolbar, body.fh .md-editor > .md-header { background: var(--fh-raise) !important; }
body.fh .md-editor .md-footer, body.fh .markdown-editor-status { background: var(--fh-raise) !important; color: var(--fh-soft) !important; }
body.fh .md-editor .btn { min-height: 36px; padding: 0 10px; }
body.fh .fh-captcha, body.fh .recaptcha-container { max-width: 100%; overflow: hidden; }

/* ------------------------------------------------------------------ tables (never clipped: scroll box) */
body.fh .table, body.fh table.table-list, body.fh .table-list {
    background: transparent !important; color: var(--fh-text) !important; border-collapse: collapse !important; margin-bottom: 0;
}
body.fh .table > thead > tr > th, body.fh table.table-list > thead > tr > th, body.fh .table-list thead th, body.fh table.dataTable thead th {
    background: transparent !important; color: var(--fh-muted) !important; font-size: 12px !important; font-weight: 600 !important;
    letter-spacing: .06em; text-transform: uppercase; border: 0 !important; border-bottom: 1px solid var(--fh-edge) !important;
    padding: 14px 16px !important; white-space: nowrap;
}
body.fh .table > tbody > tr > td, body.fh .table > tfoot > tr > td, body.fh .table > tbody > tr > th,
body.fh table.table-list > tbody > tr > td, body.fh table.dataTable tbody td {
    background: transparent !important; color: var(--fh-text) !important; border: 0 !important; border-top: 1px solid var(--fh-edge) !important;
    padding: 14px 16px !important; vertical-align: middle !important;
}
body.fh .table-striped > tbody > tr:nth-of-type(odd) > td { background: var(--fh-tint-1) !important; }
body.fh .table-hover > tbody > tr:hover > td, body.fh table.table-list > tbody > tr:hover > td { background: var(--fh-tint-2) !important; }
body.fh table.table-list > tbody > tr > td a, body.fh .table td a { color: var(--fh-heading); }
body.fh table.dataTable thead .sorting, body.fh table.dataTable thead .sorting_asc, body.fh table.dataTable thead .sorting_desc { background-image: none !important; }
body.fh .table-container, body.fh .table-responsive, body.fh .dataTables_wrapper {
    width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
    background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; border-top-color: var(--fh-edge-top) !important; border-radius: 16px; padding: 0;
}
body.fh .table-container .dataTables_wrapper, body.fh .table-responsive .dataTables_wrapper,
body.fh .panel .table-responsive, body.fh .panel .table-container { border: 0 !important; background: transparent !important; border-radius: 0; }
body.fh .dataTables_wrapper .listtable { min-width: 100%; }
body.fh .dataTables_info, body.fh .dataTables_length, body.fh .dataTables_length label, body.fh .dataTables_filter label { color: var(--fh-text) !important; padding: 12px 16px; font-weight: 500; }
body.fh .dataTables_wrapper .dataTables_paginate { padding: 8px 16px; }
body.fh .pagination > li > a, body.fh .pagination > li > span, body.fh .dataTables_paginate .paginate_button {
    min-width: 40px; min-height: 40px; padding: 9px 12px; line-height: 20px; text-align: center;
    background: var(--fh-raise) !important; border: 1px solid var(--fh-edge) !important; color: var(--fh-soft) !important; border-radius: 8px !important; margin: 0 2px;
}
body.fh .pagination > .active > a, body.fh .pagination > .active > span, body.fh .dataTables_paginate .paginate_button.current { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border-color: var(--fh-hi-bg) !important; }
body.fh .pagination > .disabled > a, body.fh .pagination > .disabled > span { opacity: .5; }
body.fh .dataTables_filter input { min-height: 40px; }
body.fh .listtable .dataTables_empty, body.fh td.dataTables_empty { color: var(--fh-text) !important; text-align: center; padding: 28px 16px !important; }
/* the lock / ssl icon column of services reads like an error: neutral (services list uses .fh-ssl badges instead, FH-SSL-BADGE block) */
body.fh .ssl-info img:not(.ssl-state), body.fh td .ssl-info { filter: grayscale(1) brightness(1.4); }

/* ------------------------------------------------------------------ dashboard (clientareahome.tpl) */
body.fh .fh-dash { display: flex; flex-direction: column; gap: 32px; }
body.fh .fh-dash-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
body.fh .fh-dash-head > div { display: flex; flex-direction: column; gap: 6px; }
body.fh .fh-dash-head h1 { margin: 0; font-size: 40px; font-weight: 900; letter-spacing: -.03em; line-height: 1.1; }
body.fh .fh-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
body.fh .fh-tile { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; color: var(--fh-text); text-decoration: none; }
body.fh .fh-tile:hover { border-color: var(--fh-edge-strong); color: var(--fh-text); }
body.fh .fh-tile-num { font-size: 36px; font-weight: 800; color: var(--fh-heading); letter-spacing: -.03em; line-height: 1.1; }
body.fh .fh-dash-cols { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
body.fh .fh-dash-main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
body.fh .fh-dash-side { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
body.fh .fh-panel { overflow: hidden; }
body.fh .fh-panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 18px 24px; }
body.fh .fh-panel-head h2 { margin: 0; font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
body.fh .fh-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--fh-heading); text-decoration: underline; }
body.fh .fh-panel-body { padding: 0 24px 22px; color: var(--fh-text); }
body.fh .fh-panel-body p { color: var(--fh-text); }
body.fh .fh-panel-body .input-group { display: flex; flex-wrap: wrap; gap: 10px; width: 100%; }
body.fh .fh-panel-body .input-group .form-control { flex: 1 1 220px; width: auto; border-radius: 8px !important; float: none; }
body.fh .fh-panel-body .input-group-btn { display: flex; gap: 10px; width: auto; }
body.fh .fh-panel-body .input-group-btn .btn { border-radius: 12px !important; }
body.fh .fh-panel-list { display: flex; flex-direction: column; }
body.fh .fh-panel-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; min-height: 52px; padding: 14px 24px; border-top: 1px solid var(--fh-edge); color: var(--fh-text); text-decoration: none; line-height: 1.45; }
body.fh a.fh-panel-row { color: var(--fh-heading); font-weight: 600; }
body.fh a.fh-panel-row:hover { background: var(--fh-tint-2); color: var(--fh-heading); }
body.fh .fh-panel-row .label { font-weight: 600; }
body.fh .fh-panel-row small, body.fh .fh-panel-row .text-domain { display: block; color: var(--fh-text); font-weight: 500; }
body.fh .fh-quicks { display: flex; flex-direction: column; gap: 12px; padding: 0 24px 22px; }
body.fh .fh-quick { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 16px; border-radius: 12px; border: 1px solid var(--fh-edge); background: var(--fh-surface); color: var(--fh-heading); font-weight: 600; text-decoration: none; }
body.fh .fh-quick:hover { background: var(--fh-raise); border-color: var(--fh-edge-strong); color: var(--fh-heading); }
body.fh .fh-addon { margin-top: 8px; }

/* ------------------------------------------------------------------ login (login.tpl) */
body.fh.fh-is-login .fh-page-auth { display: block; }
body.fh .fh-auth { display: flex; flex-wrap: wrap; min-height: 100vh; }
body.fh .fh-auth-brand { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 48px; padding: 56px 72px; border-right: 1px solid var(--fh-edge); background: var(--fh-bg) var(--fh-ground-auth) no-repeat; }
body.fh .fh-auth-claim { display: flex; flex-direction: column; gap: 20px; max-width: 560px; }
body.fh .fh-auth-slogan { margin: 0; font-size: 64px; line-height: 1.02; font-weight: 900; letter-spacing: -.035em; color: var(--fh-heading); }
body.fh .fh-auth-slogan span { color: var(--fh-muted); }
body.fh .fh-auth-sub { margin: 0; font-size: 18px; max-width: 440px; }
body.fh .fh-auth-legal { margin: 0; font-size: 12px; color: var(--fh-faint); }
body.fh .fh-auth-panel { flex: 1 1 440px; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 56px 48px; }
body.fh .fh-auth-card { width: 100%; max-width: 440px; padding: 36px; display: flex; flex-direction: column; gap: 24px; }
body.fh .fh-auth-head { display: flex; flex-direction: column; gap: 6px; }
body.fh .fh-auth-head h1 { margin: 0; font-size: 26px; font-weight: 800; }
body.fh .fh-auth-head p { margin: 0; }
body.fh .fh-form { display: flex; flex-direction: column; gap: 18px; }
body.fh .fh-form .form-group { margin: 0; }
body.fh .fh-label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
body.fh .fh-link-sm { font-size: 13px; font-weight: 600; color: var(--fh-heading); text-decoration: underline; display: inline-flex; align-items: center; min-height: 32px; }
body.fh .fh-check { display: inline-flex !important; align-items: center; gap: 12px; min-height: 44px; color: var(--fh-soft) !important; font-weight: 500; font-size: 14px; cursor: pointer; width: fit-content; }
body.fh .fh-check input { width: 20px; height: 20px; margin: 0; }
body.fh .fh-captcha .row { margin: 0; }
body.fh .fh-auth-alt { display: flex; flex-direction: column; gap: 12px; padding-top: 20px; border-top: 1px solid var(--fh-edge); }
body.fh .fh-auth-alt p { margin: 0; text-align: center; }
body.fh .fh-divider { display: flex; align-items: center; gap: 12px; color: var(--fh-muted); margin: 8px 0; }
body.fh .fh-divider::before, body.fh .fh-divider::after { content: ""; flex: 1; height: 1px; background: var(--fh-edge); }

/* ------------------------------------------------------------------ antler client-area leftovers */
body.fh .clientarea-new-header, body.fh .container-clientarea { background: transparent !important; }
body.fh .header-lined h1, body.fh div.header-lined h1 { color: var(--fh-heading) !important; }
body.fh .gravatar { filter: grayscale(1); }
body.fh .product-details .product-icon, body.fh .product-status { border-radius: 16px; }
body.fh .product-status-active { background: var(--fh-ok-bg) !important; color: var(--fh-ok) !important; }
body.fh .product-details .product-icon { background: var(--fh-surface) !important; color: var(--fh-heading) !important; }
body.fh .product-details .product-icon h3, body.fh .product-details .product-icon h4 { color: var(--fh-heading) !important; }
body.fh .bg-gradient, body.fh [class*="bg-grad"], body.fh .sec-grad-grey-to-grey, body.fh .bg-purple, body.fh .bg-pink { background-image: none !important; background-color: var(--fh-surface) !important; color: var(--fh-heading) !important; }
body.fh .badge.bg-purple, body.fh .badge.bg-pink { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; }
body.fh .cpanel-usage-stats .progress, body.fh .progress { background: var(--fh-elev) !important; border-radius: 999px; box-shadow: none; height: 8px; }
body.fh .progress-bar { background: var(--fh-focus) !important; box-shadow: none; }
body.fh .tiles .tile, body.fh .tile { background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; color: var(--fh-text) !important; }
body.fh .tile .stat { color: var(--fh-heading) !important; }
body.fh .ticket-reply .user, body.fh .ticket-reply .posted-by { color: var(--fh-soft) !important; }
body.fh .ticket-reply.staff { border-left: 3px solid var(--fh-heading) !important; }
body.fh .kb-category, body.fh .knowledge a.category { color: var(--fh-heading) !important; }
body.fh .announcement-single h1, body.fh .announcement-single h2 { color: var(--fh-heading) !important; }
body.fh .domain-pricing .tld-row, body.fh .domain-pricing .tld-pricing-header { background: transparent !important; border-color: var(--fh-edge) !important; color: var(--fh-text) !important; }
body.fh .domain-pricing .tld-pricing-header div, body.fh .tld-pricing-header .col-xs-2 { background: var(--fh-surface) !important; color: var(--fh-heading) !important; }
body.fh img { max-width: 100%; height: auto; }
body.fh .clearfix::after { clear: both; }


/* ------------------------------------------------------------------ antler surfaces, beating "[data-background=dark] .box-container .x !important" */
html body.fh .box-container .bg-colorstyle, html body.fh .box-container .bg-greylight, html body.fh .box-container .bg-pratalight:not(.bg-seccolorstyle) {
    background-color: var(--fh-surface) !important; background-image: none !important; color: var(--fh-text) !important; border-color: var(--fh-edge) !important;
}
html body.fh .box-container .bg-seccolorstyle, html body.fh .box-container .bg-white, html body.fh .box-container .sec-bg1,
html body.fh .box-container .service-section, html body.fh .box-container .domain-promo-box {
    background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; border-top-color: var(--fh-edge-top) !important;
    border-radius: 16px !important; box-shadow: var(--fh-card-shadow) !important; color: var(--fh-text) !important;
}
html body.fh .box-container form.bg-seccolorstyle, html body.fh .box-container div.bg-seccolorstyle.br-12, html body.fh .box-container .sec-main.sec-bg1 { padding: 24px; }
html body.fh .box-container .dropdown-menu.bg-seccolorstyle { background: var(--fh-menu-bg) !important; border-radius: 12px !important; }
html body.fh .box-container .domain-resultat-tab-box { background: var(--fh-surface) !important; border: 1px solid var(--fh-edge) !important; border-radius: 12px !important; }
html body.fh .box-container .listtable .bg-seccolorstyle, html body.fh .box-container .listtable .bg-white { padding: 0; overflow: hidden; }
html body.fh .box-container .domain-promo-box > a i { background: var(--fh-raise) !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong); }
html body.fh .box-container #order-standard_cart .domain-checker-container.overlay::before, html body.fh .box-container #order-standard_cart .domain-checker-container.overlay::after { background: none !important; opacity: 0 !important; }
html body.fh .box-container .domain-promo-box .domain-ico { background: var(--fh-surface) !important; border: 1px solid var(--fh-edge); }
html body.fh .box-container .domain-promo-box h3 { color: var(--fh-heading) !important; }
html body.fh .box-container .domain-promo-box p { color: var(--fh-text) !important; }
html body.fh .iradio_square-blue, html body.fh .icheckbox_square-blue { filter: grayscale(1) brightness(1.5); }
html body.fh .box-container .tld-pricing-header, html body.fh .box-container .domain-pricing .tld-row, html body.fh .box-container .domain-pricing .tld-row div { background: transparent !important; color: var(--fh-text) !important; border-color: var(--fh-edge) !important; }
html body.fh .box-container .domain-pricing .tld-row strong, html body.fh .box-container .domain-pricing .tld-row .col-xs-4, html body.fh .box-container .domain-pricing .tld-row .two-row-center { color: var(--fh-heading) !important; }
html body.fh .box-container .domain-pricing .tld-row:nth-child(even) { background: var(--fh-tint-1) !important; }
html body.fh .box-container #order-standard_cart a.tld-filters-button.btn { background: var(--fh-raise) !important; color: var(--fh-soft) !important; border: 1px solid var(--fh-edge-strong) !important; box-shadow: none !important; border-radius: 999px !important; min-height: 40px; padding: 9px 16px; }
html body.fh .box-container #order-standard_cart a.tld-filters-button.btn.badge-success, html body.fh .box-container #order-standard_cart a.tld-filters-button.btn.active { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border-color: var(--fh-hi-bg) !important; }
html body.fh .box-container #order-standard_cart a.tld-filters-button.btn * { color: inherit !important; }

/* tables: links readable */
html body.fh .box-container #order-standard_cart .btn-order-embeded { min-height: 40px; padding: 9px 14px; line-height: 20px; }
html body.fh .box-container table a:not(.btn), html body.fh .box-container .listtable a:not(.btn), body.fh table a:not(.btn) { color: var(--fh-heading) !important; text-decoration: underline; text-decoration-color: var(--fh-underline); }
body.fh .dataTables_info { color: var(--fh-text) !important; }
body.fh .dataTables_paginate .paginate_button:empty, body.fh .pagination > li > a:empty { border-color: transparent !important; background: transparent !important; min-width: 0; padding: 0; }

/* dashboard: WHMCS active-services panel rows */
body.fh .fh-panel-row > .div-service-item { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; width: 100%; cursor: pointer; }
body.fh .div-service-item .div-service-status { width: auto !important; flex: none; }
body.fh .div-service-item .label-placeholder { visibility: hidden; position: absolute; }
body.fh .div-service-item .div-service-name { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; }
body.fh .div-service-item .div-service-name .font-weight-bold { color: var(--fh-heading); font-weight: 600; }
body.fh .div-service-item .text-domain { font-size: 13px; color: var(--fh-text); }
body.fh .div-service-item .div-service-buttons { margin-left: auto; }
body.fh .fh-panel-body .input-group-btn .btn, body.fh .fh-panel-body .input-group-btn input.btn { position: static !important; margin: 0 !important; }
body.fh .fh-panel-body form .input-group { padding: 0 !important; margin: 0 !important; }

/* product details (clientareaproductdetails.tpl, antler) */
html body.fh .box-container .product-details { padding: 0; overflow: hidden; }
html body.fh .box-container .product-details .row { margin: 0; }
html body.fh .box-container .product-overbox, html body.fh .box-container .product-overbox.active { background: transparent !important; background-image: none !important; border: 0 !important; box-shadow: none !important; min-height: 0; padding: 32px 24px; }
html body.fh .box-container .prod-info-abso { position: static !important; transform: none !important; display: flex; flex-direction: column; align-items: center; gap: 10px; }
html body.fh .box-container .prod-info-abso i { background: var(--fh-avatar-bg) !important; border: 1px solid var(--fh-avatar-edge); color: var(--fh-heading) !important; }
html body.fh .box-container .prod-info-abso h3 { color: var(--fh-heading) !important; border-color: var(--fh-edge-strong) !important; background: transparent !important; font-size: 13px; letter-spacing: .04em; }
html body.fh .box-container .prod-info-abso h4 { color: var(--fh-heading) !important; font-size: 26px; font-weight: 800; }
html body.fh .box-container .product-status-text { position: static !important; display: inline-block; margin: 16px auto 0; padding: 4px 14px; width: auto !important; border-radius: 999px !important; text-transform: none; font-weight: 600;
    color: var(--fh-ok) !important; background: var(--fh-ok-bg) !important; border: 1px solid var(--fh-ok-edge) !important; }
html body.fh .box-container .product-overbox { text-align: center; }
html body.fh .box-container .overview-box.products-details { background: transparent !important; border: 0 !important; border-left: 1px solid var(--fh-edge) !important; border-radius: 0 !important; text-align: left; padding: 8px 24px; height: 100%; }
html body.fh .box-container .overview-box.products-details > span { display: block; padding: 12px 0; border-bottom: 1px solid var(--fh-edge); color: var(--fh-muted) !important; font-size: 13px; }
html body.fh .box-container .overview-box.products-details > span:last-child { border-bottom: 0; }
html body.fh .box-container .overview-box.products-details strong { display: block; margin-top: 2px; padding: 0 !important; background: transparent !important; color: var(--fh-heading) !important; font-size: 15px; font-weight: 600; border-radius: 0 !important; }
html body.fh .box-container .product-details-tab-container { background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; border-radius: 0 16px 16px 16px !important; color: var(--fh-text) !important; padding: 24px !important; }
html body.fh .box-container .product-details-tab-container .row { margin: 0 0 8px; }
html body.fh .box-container .product-details-tab-container strong { color: var(--fh-muted) !important; font-weight: 500; }
html body.fh .box-container .product-details-tab-container .text-left { color: var(--fh-heading) !important; overflow-wrap: anywhere; }
html body.fh .box-container .ssl-inactive, html body.fh .box-container div.ssl-inactive { background: var(--fh-bad-bg) !important; border: 1px solid var(--fh-bad-edge) !important; color: var(--fh-bad) !important; border-radius: 12px !important; padding: 10px 14px !important; display: flex; align-items: center; gap: 10px; font-size: 14px; }
html body.fh .box-container .ssl-inactive #statusDisplayLabel, html body.fh .box-container .ssl-inactive span { color: var(--fh-bad) !important; font-size: 14px !important; font-weight: 600; margin: 0 !important; }
html body.fh .box-container img.ssl-state { width: 24px !important; height: 24px !important; margin: 0 !important; background: transparent !important; }
html body.fh .box-container .ssl-active, html body.fh .box-container div.ssl-active { background: var(--fh-ok-bg) !important; border: 1px solid var(--fh-ok-edge) !important; color: var(--fh-ok) !important; border-radius: 12px !important; }
html body.fh .box-container .module-client-area { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 8px 0 0 !important; }
html body.fh .box-container .module-client-area a, html body.fh .box-container .module-client-area input[type="submit"] {
    display: inline-block; min-height: 44px; padding: 11px 22px; border-radius: 12px; font-weight: 700; line-height: 20px; text-decoration: none !important;
    color: var(--fh-primary-fg) !important; background: var(--fh-chrome) !important; border: 1px solid var(--fh-primary-edge) !important; border-top-color: var(--fh-primary-edge-top) !important;
    box-shadow: var(--fh-primary-shadow) !important;
}
html body.fh .box-container .nav-tabs-overflow { border-bottom: 0 !important; }

/* form containers from antler (account details, users, security) */
html body.fh .box-container .marketing-email-optin { border-radius: 12px !important; padding: 16px 20px; }
html body.fh .box-container .intl-tel-input .selected-dial-code, html body.fh .box-container .intl-tel-input .selected-flag { color: var(--fh-heading) !important; background: transparent !important; }

/* ------------------------------------------------------------------ order form (#order-standard_cart, antler orderform) */
body.fh #order-standard_cart { color: var(--fh-text) !important; background: transparent !important; }
body.fh #order-standard_cart .header-lined h1, body.fh #order-standard_cart h1, body.fh #order-standard_cart h2,
body.fh #order-standard_cart h3, body.fh #order-standard_cart h4 { color: var(--fh-heading) !important; }
body.fh #order-standard_cart .header-lined { border-color: var(--fh-edge) !important; }
body.fh #order-standard_cart .sub-heading { border-top: 1px solid var(--fh-edge) !important; height: auto; margin: 24px 0 16px; text-align: left; }
body.fh #order-standard_cart .sub-heading span, body.fh #order-standard_cart .sub-heading .primary-bg-color {
    background: var(--fh-bg) !important; color: var(--fh-heading) !important; padding: 0 12px 0 0 !important; font-size: 13px !important; font-weight: 800 !important;
    letter-spacing: .08em; text-transform: uppercase; position: relative; top: -10px;
}
body.fh #order-standard_cart .products .product, body.fh #order-standard_cart .product,
body.fh #order-standard_cart .panel, body.fh #order-standard_cart .view-cart-items, body.fh #order-standard_cart .order-summary,
body.fh #order-standard_cart .domain-checker-container, body.fh #order-standard_cart .addon-products .panel-addon,
body.fh #order-standard_cart .product-info, body.fh #order-standard_cart .mc-promo, body.fh #order-standard_cart .promo-banner,
body.fh #order-standard_cart .domain-selection-options .option, body.fh #order-standard_cart .field-container .well {
    background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; border-top-color: var(--fh-edge-top) !important;
    border-radius: 16px !important; color: var(--fh-text) !important; box-shadow: var(--fh-card-shadow) !important;
}
body.fh #order-standard_cart .product header, body.fh #order-standard_cart .products .product header {
    background: transparent !important; color: var(--fh-heading) !important; border: 0 !important; border-bottom: 1px solid var(--fh-edge) !important; padding: 20px 22px 14px !important;
}
body.fh #order-standard_cart .product header span, body.fh #order-standard_cart .product header h3, body.fh #order-standard_cart .product header .qty { color: var(--fh-heading) !important; font-weight: 800 !important; }
body.fh #order-standard_cart .product div.product-desc, body.fh #order-standard_cart .products .product div.product-desc {
    background: transparent !important; color: var(--fh-text) !important; padding: 16px 22px !important; line-height: 1.6 !important;
}
body.fh #order-standard_cart .product div.product-desc *, body.fh #order-standard_cart .product div.product-desc li { color: var(--fh-text) !important; line-height: 1.6 !important; position: static !important; }
body.fh #order-standard_cart .product div.product-desc .feature-value { color: var(--fh-heading) !important; font-weight: 700 !important; }
body.fh #order-standard_cart .product footer, body.fh #order-standard_cart .products .product footer {
    background: transparent !important; color: var(--fh-text) !important; border-top: 1px solid var(--fh-edge) !important; padding: 16px 22px 22px !important;
}
body.fh #order-standard_cart .product-pricing, body.fh #order-standard_cart .product-pricing span.price { color: var(--fh-heading) !important; }
body.fh #order-standard_cart .product-pricing span.price { font-size: 26px !important; font-weight: 800 !important; letter-spacing: -.02em; }
body.fh #order-standard_cart .order-summary h2, body.fh #order-standard_cart .order-summary .summary-container {
    background: transparent !important; color: var(--fh-heading) !important; border: 0 !important;
}
body.fh #order-standard_cart .order-summary h2 { border-bottom: 1px solid var(--fh-edge) !important; padding: 18px 20px !important; font-size: 18px !important; font-weight: 700 !important; margin: 0 !important; }
body.fh #order-standard_cart .order-summary .summary-container { padding: 16px 20px !important; color: var(--fh-text) !important; }
body.fh #order-standard_cart .summary-totals, body.fh #order-standard_cart .order-summary .total-due-today { border-color: var(--fh-edge) !important; color: var(--fh-heading) !important; }
body.fh #order-standard_cart .order-summary .total-due-today .amt { color: var(--fh-heading) !important; font-weight: 800; }
body.fh #order-standard_cart .view-cart-items-header { background: transparent !important; color: var(--fh-muted) !important; border-bottom: 1px solid var(--fh-edge) !important; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; }
body.fh #order-standard_cart .view-cart-items .item { background: transparent !important; border-color: var(--fh-edge) !important; color: var(--fh-text) !important; }
body.fh #order-standard_cart .view-cart-items .item .item-title, body.fh #order-standard_cart .view-cart-items .item .item-price span { color: var(--fh-heading) !important; }
body.fh #order-standard_cart .empty-cart, body.fh #order-standard_cart .view-cart-empty { background: var(--fh-surface) !important; color: var(--fh-text) !important; border: 1px dashed var(--fh-edge-strong) !important; border-radius: 16px; }
body.fh #order-standard_cart .view-cart-tabs .nav-tabs > li > a { color: var(--fh-text) !important; }
body.fh #order-standard_cart .tab-content, body.fh #order-standard_cart .view-cart-tabs .tab-content { background: transparent !important; border-color: var(--fh-edge) !important; }
body.fh #order-standard_cart .form-control, body.fh #order-standard_cart #inputPromotionCode, body.fh #order-standard_cart .field,
body.fh #order-standard_cart .prepend-icon .field {
    background-color: var(--fh-input) !important; border: 1px solid var(--fh-input-edge) !important; color: var(--fh-heading) !important; border-radius: 8px !important; min-height: 44px;
}
body.fh #order-standard_cart .prepend-icon .field-icon, body.fh #order-standard_cart .prepend-icon .field-icon i { color: var(--fh-soft) !important; }
body.fh #order-standard_cart .field-help-text, body.fh #order-standard_cart .text-muted { color: var(--fh-muted) !important; }
body.fh #order-standard_cart label, body.fh #order-standard_cart .radio-inline, body.fh #order-standard_cart .checkbox-inline { color: var(--fh-soft) !important; }
body.fh #order-standard_cart .domain-checker-container { padding: 24px !important; }
body.fh #order-standard_cart .domain-checker-bg { background: transparent !important; }
body.fh #order-standard_cart .domain-checker-available { color: var(--fh-ok) !important; }
body.fh #order-standard_cart .domain-checker-unavailable, body.fh #order-standard_cart .domain-checker-invalid { color: var(--fh-bad) !important; }
body.fh #order-standard_cart .domain-lookup-result, body.fh #order-standard_cart .domain-suggestions .list-group-item,
body.fh #order-standard_cart .spotlight-tlds .spotlight-tld, body.fh #order-standard_cart .suggested-domains {
    background: var(--fh-surface) !important; border-color: var(--fh-edge) !important; color: var(--fh-text) !important;
}
body.fh #order-standard_cart .spotlight-tlds .spotlight-tld .available, body.fh #order-standard_cart .spotlight-tld .domain-checker-available { color: var(--fh-ok) !important; }
body.fh #order-standard_cart .tld-filters a, body.fh #order-standard_cart .tld-filters .label {
    background: var(--fh-raise) !important; color: var(--fh-soft) !important; border: 1px solid var(--fh-edge) !important; border-radius: 999px; padding: 6px 12px; min-height: 36px; display: inline-flex; align-items: center;
}
body.fh #order-standard_cart .tld-filters a.label-success, body.fh #order-standard_cart .tld-filters a.active { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; }
body.fh #order-standard_cart .domain-pricing .tld-pricing-header, body.fh #order-standard_cart .tld-pricing-header div { background: var(--fh-surface) !important; color: var(--fh-heading) !important; }
body.fh #order-standard_cart .domain-pricing .tld-row { border-color: var(--fh-edge) !important; color: var(--fh-text) !important; background: transparent !important; }
body.fh #order-standard_cart .domain-pricing .tld-row.highlighted { background: var(--fh-tint-2) !important; }
body.fh #order-standard_cart .domain-pricing { max-width: 100%; overflow-x: auto; }
body.fh #order-standard_cart .panel-addon-selected, body.fh #order-standard_cart .product.selected { border-color: var(--fh-focus) !important; box-shadow: 0 0 0 1px var(--fh-focus) !important; }
body.fh #order-standard_cart .panel-addon .panel-add { background: var(--fh-raise) !important; color: var(--fh-heading) !important; }
body.fh #order-standard_cart .panel-addon-selected .panel-add { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; }
body.fh #order-standard_cart .cart-sidebar .panel, body.fh #order-standard_cart .sidebar-collapsed .panel { margin-bottom: 16px; }
body.fh #order-standard_cart .sidebar-collapsed select { width: 100%; }
body.fh #order-standard_cart #paymentGatewaysContainer .radio-inline, body.fh #order-standard_cart .payment-methods label { color: var(--fh-heading) !important; }
body.fh #order-standard_cart .already-registered, body.fh #order-standard_cart .account-select-container .account { background: var(--fh-surface) !important; border-color: var(--fh-edge) !important; color: var(--fh-text) !important; }
body.fh #order-standard_cart .secure-warning { background: transparent !important; color: var(--fh-muted) !important; }
body.fh #order-standard_cart .btn-checkout, body.fh #order-standard_cart #btnCompleteOrder { min-height: 52px; font-size: 16px; padding-top: 15px; padding-bottom: 15px; }
body.fh #order-standard_cart .loader, body.fh #order-standard_cart .loader i { color: var(--fh-heading) !important; }
body.fh #order-standard_cart .sidebar-collapsed, body.fh #order-standard_cart .cart-sidebar { color: var(--fh-text); }


/* store / product group (orderforms/antler/products.tpl) — approved "Store" mockup */
body.fh #order-standard_cart .header-lined { border: 0 !important; padding: 0; margin: 0 0 24px; position: relative; }
body.fh #order-standard_cart .header-lined .text-center { text-align: left !important; padding-right: 60px; }
body.fh #order-standard_cart .header-lined .section-heading { font-size: 40px; font-weight: 900; letter-spacing: -.03em; line-height: 1.1; margin: 0 0 8px; text-align: left; }
body.fh #order-standard_cart .header-lined .section-subheading { font-size: 16px; text-align: left; margin: 0; }
body.fh #order-standard_cart .dropnav-header-lined { position: absolute !important; right: 0; top: 0; }
body.fh #order-standard_cart .dropnav-header-lined .drop-down-btn { width: 44px; height: 44px; border-radius: 999px; background: var(--fh-raise) !important; border: 1px solid var(--fh-edge-strong) !important; color: var(--fh-heading) !important; }
body.fh #order-standard_cart #products.product, body.fh #order-standard_cart > .product.mt-80 {
    background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; margin-top: 8px !important;
}
body.fh #order-standard_cart #products .row-eq-height { display: flex; flex-wrap: wrap; row-gap: 24px; }
body.fh #order-standard_cart .plan-content { display: flex; }
body.fh #order-standard_cart .plan-content > .product { display: flex; flex-direction: column; width: 100%; overflow: hidden; margin: 0 !important; }
body.fh #order-standard_cart .plan-content.feature-plan > .product { border-color: var(--fh-focus) !important; box-shadow: 0 0 0 1px var(--fh-focus), var(--fh-drop-shadow) !important; }
body.fh #order-standard_cart .plan-content .badge.feat { position: absolute; top: 14px; right: 16px; background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; text-transform: none; font-size: 12px; padding: 4px 12px; z-index: 2; }
body.fh #order-standard_cart .header-content.top-content { background: transparent !important; border: 0 !important; padding: 28px 24px 20px !important; text-align: left !important; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
body.fh #order-standard_cart .header-content header { padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left; width: 100%; }
body.fh #order-standard_cart .header-content header .title { font-size: 20px !important; font-weight: 800 !important; color: var(--fh-heading) !important; padding: 0 !important; display: inline; }
body.fh #order-standard_cart .header-content header::after, body.fh #order-standard_cart .header-content header::before { display: none; }
body.fh #order-standard_cart .header-content .product-pricing { text-align: left; margin: 0 !important; padding: 0 !important; border: 0 !important; color: var(--fh-text) !important; }
body.fh #order-standard_cart .header-content .product-pricing .price { display: inline; font-size: 36px !important; font-weight: 800 !important; color: var(--fh-heading) !important; letter-spacing: -.03em; line-height: 1.1; }
body.fh #order-standard_cart .header-content .product-pricing .period { font-size: 14px !important; color: var(--fh-text) !important; margin-left: 4px; }
body.fh #order-standard_cart .header-content .product-pricing br { display: none; }
body.fh #order-standard_cart .header-content .btn-order-now { margin: 4px 0 0 !important; width: 100%; }
body.fh #order-standard_cart .product-desc.list-info { padding: 20px 24px 24px !important; border-top: 1px solid var(--fh-edge) !important; background: transparent !important; flex: 1 1 auto; }
body.fh #order-standard_cart .product-desc ul, body.fh #order-standard_cart .prod-desc-div ul { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 10px; }
body.fh #order-standard_cart .product-desc li, body.fh #order-standard_cart .prod-desc-div li {
    position: relative !important; display: block; margin: 0 !important; padding: 0 0 0 26px !important; min-height: 0 !important; height: auto !important;
    line-height: 1.5 !important; font-size: 14px !important; color: var(--fh-text) !important; background: none !important; border: 0 !important; white-space: normal !important;
}
body.fh #order-standard_cart .product-desc li::before, body.fh #order-standard_cart .prod-desc-div li::before {
    content: "" !important; position: absolute !important; left: 0; top: 4px; width: 16px; height: 16px; margin: 0 !important;
    background: var(--fh-check-icon) no-repeat center / 16px 16px !important;
    border: 0 !important; transform: none !important; color: transparent !important;
}
body.fh #order-standard_cart .product-desc li::after, body.fh #order-standard_cart .prod-desc-div li::after { content: none !important; }
body.fh #order-standard_cart .product-desc li .feature-value { color: var(--fh-heading) !important; font-weight: 700; }
body.fh #order-standard_cart .prod-desc-div p { margin: 0 0 8px; color: var(--fh-text) !important; }

/* ------------------------------------------------------------------ standalone documents (viewinvoice / viewquote) — screen only */
@media screen {
    body.fh.fh-doc { background: var(--fh-bg) var(--fh-ground) no-repeat !important; color: var(--fh-text); font-family: var(--fh-font); }
    body.fh-doc .fh-doc-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 32px; border-bottom: 1px solid var(--fh-edge); background: var(--fh-hdr-bg); }
    body.fh-doc .fh-doc-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; color: var(--fh-soft); text-decoration: none; }
    body.fh-doc .fh-doc-back:hover { color: var(--fh-heading); text-decoration: underline; }
    body.fh-doc .invoice-container {
        max-width: 960px; margin: 40px auto 72px; padding: 32px;
        background: var(--fh-card); border: 1px solid var(--fh-edge); border-top-color: var(--fh-edge-top); border-radius: 16px;
        box-shadow: var(--fh-card-shadow); color: var(--fh-text);
    }
    body.fh-doc .invoice-container h1, body.fh-doc .invoice-container h2, body.fh-doc .invoice-container h3, body.fh-doc .invoice-container h4,
    body.fh-doc .invoice-container strong, body.fh-doc .invoice-container b { color: var(--fh-heading); font-family: var(--fh-font); }
    body.fh-doc .invoice-container h3 { font-size: 26px; font-weight: 900; letter-spacing: -.02em; }
    body.fh-doc .invoice-container .invoice-header, body.fh-doc .invoice-container .invoice-col,
    body.fh-doc .invoice-container .small-text, body.fh-doc .invoice-container address, body.fh-doc .invoice-container p { color: var(--fh-text); font-family: var(--fh-font); }
    body.fh-doc .invoice-container .invoice-col strong { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fh-muted); }
    body.fh-doc .invoice-container hr { border-color: var(--fh-edge); }
    body.fh-doc .invoice-status span, body.fh-doc .invoice-status .paid, body.fh-doc .invoice-status .unpaid,
    body.fh-doc .invoice-status .cancelled, body.fh-doc .invoice-status .draft, body.fh-doc .invoice-status .refunded, body.fh-doc .invoice-status .collections {
        display: inline-flex; align-items: center; gap: 8px; padding: 4px 14px; border-radius: 999px; border: 1px solid; font-family: var(--fh-font) !important;
        font-size: 14px; font-weight: 700; text-transform: none; letter-spacing: 0;
    }
    body.fh-doc .invoice-status .paid { color: var(--fh-ok) !important; background: var(--fh-ok-bg); border-color: var(--fh-ok-edge); }
    body.fh-doc .invoice-status .unpaid, body.fh-doc .invoice-status .draft { color: var(--fh-warn) !important; background: var(--fh-warn-bg); border-color: var(--fh-warn-edge); }
    body.fh-doc .invoice-status .cancelled, body.fh-doc .invoice-status .refunded, body.fh-doc .invoice-status .collections { color: var(--fh-bad) !important; background: var(--fh-bad-bg); border-color: var(--fh-bad-edge); }
    body.fh-doc .invoice-container .panel { background: transparent !important; border: 1px solid var(--fh-edge) !important; border-radius: 12px !important; box-shadow: none !important; overflow: hidden; }
    body.fh-doc .invoice-container .panel-heading { background: var(--fh-tint-1) !important; color: var(--fh-heading) !important; border-bottom: 1px solid var(--fh-edge) !important; }
    body.fh-doc .invoice-container .panel-title { color: var(--fh-heading) !important; font-weight: 700; }
    body.fh-doc .invoice-container .panel-body, body.fh-doc .invoice-container .table-responsive { background: transparent !important; overflow-x: auto; }
    body.fh-doc .invoice-container .table, body.fh-doc .invoice-container .table td, body.fh-doc .invoice-container .table th { background: transparent !important; color: var(--fh-text) !important; border-color: var(--fh-edge) !important; }
    body.fh-doc .invoice-container .table thead td, body.fh-doc .invoice-container .table th { color: var(--fh-muted) !important; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; }
    body.fh-doc .invoice-container .table .total-row, body.fh-doc .invoice-container .table td strong { color: var(--fh-heading) !important; }
    body.fh-doc .invoice-container .form-control, body.fh-doc .invoice-container select {
        min-height: 44px; background-color: var(--fh-input) !important; border: 1px solid var(--fh-input-edge) !important; color: var(--fh-heading) !important; border-radius: 8px !important;
        -webkit-appearance: none; appearance: none; background-image: var(--fh-select-arrow) !important; background-repeat: no-repeat; background-position: right 12px center; padding-right: 40px;
    }
    body.fh-doc .btn { min-height: 44px; padding: 11px 18px; line-height: 20px; border-radius: 12px !important; font-weight: 700; font-family: var(--fh-font); }
    body.fh-doc .btn-default { color: var(--fh-heading) !important; background: var(--fh-input) !important; border: 1px solid var(--fh-edge-strong) !important; }
    body.fh-doc .btn-default:hover { background: var(--fh-input-hover) !important; }
    body.fh-doc .btn-primary, body.fh-doc .btn-success, body.fh-doc .payment-btn-container .btn, body.fh-doc .payment-btn-container input[type="submit"], body.fh-doc .payment-btn-container button {
        color: var(--fh-primary-fg) !important; background: var(--fh-chrome) !important; border: 1px solid var(--fh-primary-edge) !important; border-top-color: var(--fh-primary-edge-top) !important;
    }
    body.fh-doc .btn-group > .btn { margin: 0 0 8px 8px; }
    body.fh-doc .invoice-container .pull-right.btn-group { margin-top: 16px; }
    body.fh-doc .alert { border-radius: 12px; background: var(--fh-surface); color: var(--fh-soft); border: 1px solid var(--fh-edge-strong); }
    body.fh-doc a { color: var(--fh-heading); }
    body.fh-doc .modal-content { background: var(--fh-menu-bg); color: var(--fh-text); border: 1px solid var(--fh-edge-strong); border-radius: 16px; }
    body.fh-doc .modal-title, body.fh-doc .modal-content label { color: var(--fh-heading); }
    body.fh-doc img.fh-doc-logo, body.fh-doc .invoice-header img, body.fh-doc .invoice-container .row img { max-width: min(100%, 320px); height: auto; }
    body.fh-doc :focus-visible { outline: 2px solid var(--fh-focus); outline-offset: 2px; }

    /* AR proforma (viewinvoice.tpl fh-pf): the document itself stays a white "paper" sheet with its own styles */
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf { box-shadow: 0 16px 36px -18px rgba(0,0,0,.95); border-radius: 4px; }
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf { color: #000; background: #fff; }
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf * { color: inherit; font-family: "DejaVu Sans", Verdana, Arial, sans-serif; }
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf b, body.fh-doc .invoice-container.fh-has-proforma .fh-pf strong,
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf h1, body.fh-doc .invoice-container.fh-has-proforma .fh-pf h2 { color: #000; }
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf .fh-pf-invalid, body.fh-doc .invoice-container.fh-has-proforma .fh-pf .fh-pf-foot strong { color: #aa0000; }
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf .fh-pf-band { color: rgba(170,0,0,.45); }
    body.fh-doc .invoice-container.fh-has-proforma .fh-pf .fh-pf-band span { color: inherit; }
}

/* ------------------------------------------------------------------ responsive */
@media (max-width: 991px) {
    body.fh .fh-nav, body.fh .fh-acct-name { display: none; }
    body.fh .fh-burger { visibility: visible; position: relative; }
}
@media (min-width: 992px) {
    body.fh .fh-mnav.collapse.in { visibility: hidden; height: 0; overflow: hidden; border: 0; }
}
@media (max-width: 760px) {
    body.fh .fh-hdr-in { min-height: 64px; padding: 8px 16px; gap: 8px 12px; }
    body.fh .fh-hdr-cta { display: none; }
    body.fh .fh-lang, body.fh .fh-tools > .fh-dd { display: none; }
    body.fh .fh-mnav-alert { font-size: 14px !important; font-weight: 500 !important; line-height: 1.4; padding: 10px 14px !important; box-shadow: inset 3px 0 0 var(--fh-heading); }
    html body.fh .box-container .overview-box.products-details { border-left: 0 !important; border-top: 1px solid var(--fh-edge) !important; }
    html body.fh .box-container .product-details-tab-container .text-right { text-align: left !important; }
    html body.fh .box-container .product-details-tab-container .row { display: flex; flex-direction: column; }
    body.fh #main-body { padding: 24px 0 56px; }
    body.fh #main-body > .container { padding-left: 16px; padding-right: 16px; }
    body.fh .fh-pagehead h1 { font-size: 30px; }
    body.fh .fh-dash { gap: 20px; }
    body.fh .fh-dash-head h1 { font-size: 30px; }
    body.fh .fh-dash-head .fh-btn { width: 100%; }
    body.fh .fh-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    body.fh .fh-tile { padding: 16px; gap: 4px; }
    body.fh .fh-tile-num { font-size: 28px; }
    body.fh .fh-panel-head { padding: 14px 18px; }
    body.fh .fh-panel-body { padding: 0 18px 18px; }
    body.fh .fh-panel-row { padding: 14px 18px; }
    body.fh .fh-quicks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 18px 18px; }
    body.fh .fh-quick { flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; min-height: 88px; padding: 14px; }
    body.fh .fh-foot-in { flex-direction: column; padding: 20px 16px 32px; }
    body.fh .fh-auth-brand { padding: 32px 16px; gap: 28px; border-right: 0; border-bottom: 1px solid var(--fh-edge); }
    body.fh .fh-auth-slogan { font-size: 40px; }
    body.fh .fh-auth-panel { padding: 24px 16px 48px; }
    body.fh .fh-auth-card { padding: 24px 18px; }
    body.fh .fh-sidemenu { width: 100%; }
    body.fh .fh-sidemenu > .fh-btn { width: 100%; }
    body.fh .fh-sidemenu .fh-sidebar { left: 0; right: auto; width: 100%; }
    body.fh .table-container, body.fh .table-responsive, body.fh .dataTables_wrapper { border-radius: 12px; }
    body.fh .dataTables_wrapper .dataTables_filter, body.fh .dataTables_wrapper .dataTables_length { float: none; text-align: left; }
    body.fh .btn-group:not(.w-hidden):not(.hidden) { display: flex; flex-wrap: wrap; gap: 8px; }
    body.fh .btn-group > .btn { border-radius: 12px !important; flex: 1 1 auto; }
}
@media screen and (max-width: 760px) {
    body.fh-doc .fh-doc-top { padding: 12px 16px; }
    body.fh-doc .invoice-container { margin: 16px 12px 48px; padding: 20px 16px; border-radius: 14px; }
    body.fh-doc .invoice-container.fh-has-proforma { padding: 16px 12px 32px; }
    body.fh-doc .invoice-container .pull-right.btn-group { float: none !important; display: flex; flex-wrap: wrap; gap: 8px; }
    body.fh-doc .btn-group > .btn { margin: 0; flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
    body.fh *, body.fh *::before, body.fh *::after { transition: none !important; animation: none !important; }
}

/* ------------------------------------------------------------------ late overrides (beat antler dark !important rules) */
html body.fh .box-container #order-standard_cart .product-desc ul > br, html body.fh .box-container #order-standard_cart .prod-desc-div > br { display: none; }
html body.fh .box-container #order-standard_cart .product-desc li, html body.fh .box-container #order-standard_cart .prod-desc-div li {
    position: relative !important; margin: 0 !important; padding: 0 0 0 26px !important; line-height: 1.5 !important; min-height: 0 !important; height: auto !important;
}
html body.fh .box-container #order-standard_cart .product-desc li::before, html body.fh .box-container #order-standard_cart .prod-desc-div li::before { position: absolute !important; left: 0 !important; top: 4px !important; }
html body.fh .box-container .md-editor .btn, html body.fh .box-container .md-editor button { color: var(--fh-heading) !important; background: var(--fh-raise) !important; border-color: var(--fh-edge-strong) !important; }
html body.fh .box-container .md-editor .btn.active, html body.fh .box-container .md-editor button.active { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; }
@media (max-width: 760px) {
    html body.fh #main-body .text-center.row, html body.fh #main-body .row.text-center { margin-left: 0; margin-right: 0; }
}
/* register page: antler's stand-alone login frame now lives inside the console header/footer */
html body.fh .box-container .loginpage, html body.fh .box-container .loginpage.fullrock-content { min-height: 0 !important; height: auto !important; padding: 0 !important; background: transparent !important; }
html body.fh .box-container .loginpage > .container { width: 100%; padding: 0; }
html body.fh.tpl-clientregister .login-page-header { display: none; }
html body.fh .box-container .loginpage .logincontent, html body.fh .box-container .loginpage .login-wrapper { min-height: 0 !important; padding: 0 !important; margin: 0 !important; position: static !important; transform: none !important; }
html body.fh .box-container .dataTables_info, html body.fh .box-container .dataTables_wrapper .dataTables_info { color: var(--fh-soft) !important; }

/* ------------------------------------------------------------------ light/dark: toggle, logo, mode-specific bits */
.fh .fh-logo, .fh-doc .fh-logo { color: var(--fh-heading); }
.fh-theme-toggle .fh-i-moon { display: none; }
:root[data-theme="light"] .fh-theme-toggle .fh-i-sun { display: none; }
:root[data-theme="light"] .fh-theme-toggle .fh-i-moon { display: inline; }
body.fh .fh-auth-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.fh-doc .fh-doc-tools { display: flex; align-items: center; gap: 12px; }
body.fh-doc .fh-ibtn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 999px; border: 1px solid var(--fh-edge); background: var(--fh-raise); color: var(--fh-soft); cursor: pointer; }
body.fh-doc .fh-ibtn:hover { color: var(--fh-heading); background: var(--fh-elev); }
:root[data-theme="light"] body.fh .modal-backdrop.in { opacity: .45; background: #18181b; }
/* antler's light base paints some accents (cyan/blue): neutralise */
:root[data-theme="light"] body.fh .box-container .infonews, :root[data-theme="light"] body.fh .box-container [class*="bg-blue"] { background: var(--fh-surface) !important; }
:root[data-theme="light"] body.fh .iradio_square-blue, :root[data-theme="light"] body.fh .icheckbox_square-blue { filter: grayscale(1) brightness(.6); }
@media print {
    .fh-theme-toggle { display: none !important; }
}
html body.fh .box-container .btn-danger, body.fh .btn-danger { color: #fff !important; }
html body.fh .box-container .btn-default-pink-fill, html body.fh .box-container .btn-default-purple-fill, html body.fh .box-container .btn-default-pink, html body.fh .box-container .btn-default-purple {
    color: var(--fh-heading) !important; background: var(--fh-input) !important; border: 1px solid var(--fh-edge-strong) !important; box-shadow: none !important;
}
html body.fh .box-container #order-standard_cart .order-summary .total-due-today, html body.fh .box-container #order-standard_cart .order-summary .total-due-today * { color: var(--fh-heading) !important; }

/* small stock buttons (btn-sm / btn-xs / "Ver Detalles" / list actions): readable size, 44px target, token colours in both modes */
html body.fh .box-container .btn, html body.fh .box-container .btn-sm, html body.fh .box-container .btn-xs,
html body.fh .box-container .btn-group-sm > .btn, html body.fh .box-container .btn-group-xs > .btn {
    font-size: 14px !important; line-height: 20px !important; min-height: 44px; padding-top: 11px !important; padding-bottom: 11px !important;
    padding-left: 18px !important; padding-right: 18px !important; font-weight: 700 !important;
}
html body.fh .box-container .btn-view-details, html body.fh .box-container .div-service-buttons .btn,
html body.fh .box-container td .btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-default-yellow-fill) {
    color: var(--fh-heading) !important; background: var(--fh-input) !important; border: 1px solid var(--fh-edge-strong) !important; box-shadow: none !important;
}
html body.fh .box-container .btn-view-details:hover, html body.fh .box-container .div-service-buttons .btn:hover { background: var(--fh-input-hover) !important; }
html body.fh .box-container .btn-view-details i { display: none; }
html body.fh .box-container .btn-view-details span.sr-only { position: absolute !important; }
/* markdown editor toolbar is a dense icon bar: keep compact but >= 36px */
html body.fh .box-container .md-editor .btn { min-height: 36px; padding: 7px 10px !important; font-size: 14px !important; }
html body.fh .box-container #order-standard_cart .btn, html body.fh .box-container #order-standard_cart .btn-link, html body.fh .box-container #order-standard_cart .btn-default-fill { font-size: 14px !important; line-height: 20px !important; }
/* antler hides the "Ver Detalles" label on phones (icon-only); the icon is hidden above, so keep the label */
html body.fh .box-container .btn-view-details > span:not(.sr-only) { display: inline !important; visibility: visible !important; }
@media (max-width: 760px) {
    html body.fh .box-container .div-service-item .div-service-buttons { margin-left: 0; flex: 1 1 100%; }
    html body.fh .box-container .div-service-item .btn-view-details { width: 100%; }
}

/* ================================================================== uifix 2026-10-04 (owner/client feedback)
   Menus, DataTables toolbar/sort/pagination, inline page options (fh-theme.js), opt-in checkbox,
   dashboard CTAs, invoice status ribbon. Same rules as above: never sets display on JS-toggled elements. */

/* menus: antler paints every OPEN menu navy ([data-background=dark] .open>.dropdown-menu{#101920!important}) */
html body.fh .open > .dropdown-menu, html body.fh .dropdown-menu.bg-seccolorstyle {
    background: var(--fh-menu-bg) !important; color: var(--fh-text) !important; border: 1px solid var(--fh-edge-strong) !important;
}
html body.fh .dropdown-menu .dropdown-header, html body.fh .dropdown-menu .panel-title {
    padding: 10px 12px 6px; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--fh-muted) !important; line-height: 1.4;
}
html body.fh .dropdown-menu > li > a { display: flex; align-items: center; gap: 10px; min-height: 40px; font-size: 14px; font-weight: 500; white-space: normal; }
html body.fh .dropdown-menu > li > a > i, html body.fh .dropdown-menu > li > a > [class^="ico-"], html body.fh .dropdown-menu > li > a > [class*=" ico-"] {
    flex: none; width: 16px; font-size: 15px; text-align: center; color: var(--fh-muted) !important;
}
html body.fh .dropdown-menu > li > a:hover > i, html body.fh .dropdown-menu > li > a:focus > i { color: var(--fh-heading) !important; }
html body.fh .dropdown-menu input[type="radio"], html body.fh .dropdown-menu input[type="checkbox"] { accent-color: var(--fh-hi-bg); }

/* focus ring: keyboard only. Bootstrap 3 re-focuses a dropdown toggle in code, which some browsers paint as
   :focus-visible after a mouse click; fh-theme.js sets html[data-fh-input] from the last input type. */
html[data-fh-input="pointer"] body.fh .dropdown-toggle:focus-visible, html[data-fh-input="pointer"] body.fh .fh-acct:focus-visible,
html[data-fh-input="pointer"] body.fh .fh-ibtn:focus-visible, html[data-fh-input="pointer"] body.fh .btn:focus-visible { outline: none !important; }
body.fh .fh-acct:focus:not(:focus-visible), body.fh .fh-ibtn:focus:not(:focus-visible), body.fh .dropdown-toggle:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }

/* DataTables: sort indicators as crisp CSS arrows (stock = 20% Glyphicons glyph) */
html body.fh table.dataTable thead th.sorting, html body.fh table.dataTable thead th.sorting_asc, html body.fh table.dataTable thead th.sorting_desc { position: relative; padding-right: 30px !important; cursor: pointer; }
html body.fh table.dataTable thead .sorting::after, html body.fh table.dataTable thead .sorting_asc::after, html body.fh table.dataTable thead .sorting_desc::after {
    content: "" !important; font-family: inherit !important; position: absolute; top: 50%; bottom: auto !important; right: 10px; width: 10px; height: 14px; margin-top: -7px;
    opacity: 1 !important; background: var(--fh-faint);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14'%3E%3Cpath d='M5 1 9 5.5H1zM5 13 1 8.5h8z'/%3E%3C/svg%3E") center / 10px 14px no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14'%3E%3Cpath d='M5 1 9 5.5H1zM5 13 1 8.5h8z'/%3E%3C/svg%3E") center / 10px 14px no-repeat;
}
html body.fh table.dataTable thead .sorting_asc::after {
    background: var(--fh-heading);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14'%3E%3Cpath d='M5 3 9.5 9h-9z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14'%3E%3Cpath d='M5 3 9.5 9h-9z'/%3E%3C/svg%3E");
}
html body.fh table.dataTable thead .sorting_desc::after {
    background: var(--fh-heading);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14'%3E%3Cpath d='M5 11 .5 5h9z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14'%3E%3Cpath d='M5 11 .5 5h9z'/%3E%3C/svg%3E");
}
html body.fh table.dataTable thead th.sorting_asc, html body.fh table.dataTable thead th.sorting_desc { color: var(--fh-heading) !important; }
html body.fh table.dataTable thead .sorting::before, html body.fh table.dataTable thead .sorting_asc::before, html body.fh table.dataTable thead .sorting_desc::before { content: none !important; }

/* DataTables pagination: Bootstrap integration puts .paginate_button on the <li>; only the <a> is the button
   (the <li> used to render as extra empty boxes next to "Siguiente") */
html body.fh .dataTables_paginate .pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; }
html body.fh .dataTables_paginate li.paginate_button, html body.fh .dataTables_paginate .pagination > li {
    float: none; min-width: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important;
    background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
}
html body.fh .box-container .dataTables_paginate .pagination > li > a, html body.fh .box-container .dataTables_paginate .pagination > li > span {
    float: none; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0 !important; padding: 0 14px !important;
    font-size: 14px; font-weight: 600; line-height: 1; border-radius: 10px !important;
    background: var(--fh-raise) !important; border: 1px solid var(--fh-edge-strong) !important; color: var(--fh-heading) !important; opacity: 1;
}
html body.fh .box-container .dataTables_paginate .pagination > li:not(.disabled):not(.active) > a:hover,
html body.fh .box-container .dataTables_paginate .pagination > li:not(.disabled):not(.active) > a:focus { background: var(--fh-elev) !important; color: var(--fh-heading) !important; }
html body.fh .box-container .dataTables_paginate .pagination > li.active > a, html body.fh .box-container .dataTables_paginate .pagination > li.active > a:hover {
    background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border-color: var(--fh-hi-bg) !important; cursor: default;
}
html body.fh .box-container .dataTables_paginate .pagination > li.disabled > a, html body.fh .box-container .dataTables_paginate .pagination > li.disabled > a:hover {
    background: transparent !important; color: var(--fh-muted) !important; border-color: var(--fh-edge) !important; cursor: not-allowed; opacity: 1;
}
html body.fh .dataTables_wrapper .dataTables_length select { min-height: 44px; }

/* domains bulk-action gear: antler pins it at right:40px, on top of the search box */
html body.fh .box-container #tabOverview { position: relative; }
html body.fh .box-container .btn-group.btn-domain-set { right: 16px; top: 22px; margin: 0; z-index: 3; }
html body.fh .box-container .btn-group.btn-domain-set > button {
    width: 44px; height: 44px; border-radius: 12px; background: var(--fh-input) !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong) !important;
}
html body.fh .box-container .btn-group.btn-domain-set > button:hover { background: var(--fh-input-hover) !important; }
html body.fh .box-container #domainForm .dataTables_filter label { padding-right: 76px; }
html body.fh .box-container .btn-group.btn-domain-set > .dropdown-menu { left: auto; right: 0; min-width: 280px; }

/* page options rendered inline by fh-theme.js (the former "Opciones" dropdown). If the script did not run,
   the dropdown shows again after 2s instead of being lost. */
body.fh .fh-pagehead > .fh-sidemenu { animation: fh-sidemenu-fallback 0s linear 2s both; }
@keyframes fh-sidemenu-fallback { from { visibility: hidden; } to { visibility: visible; } }
body.fh .fh-pageactions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
body.fh .fh-pageactions > div { display: contents; }
html body.fh .fh-pageactions a.list-group-item, html body.fh .fh-pageactions a.list-group-item:first-child, html body.fh .fh-pageactions a.list-group-item:last-child {
    position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 0 16px !important;
    font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none !important; white-space: nowrap;
    background: var(--fh-input) !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong) !important; border-radius: 12px !important;
}
html body.fh .fh-pageactions a.list-group-item:hover { background: var(--fh-input-hover) !important; color: var(--fh-heading) !important; }
html body.fh .fh-pageactions a.list-group-item.fh-act-primary { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border-color: var(--fh-hi-bg) !important; }
html body.fh .fh-pageactions a.list-group-item.fh-act-primary:hover { background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; filter: brightness(.9); }
html body.fh .fh-pageactions a.list-group-item.active { background: var(--fh-tint-3) !important; }
html body.fh .fh-pageactions a.list-group-item i { width: 16px; text-align: center; color: inherit !important; }
html body.fh .fh-pageactions a.list-group-item.disabled { opacity: .55; pointer-events: none; }
body.fh .fh-subbar { display: flex; flex-direction: column; gap: 12px; margin: -12px 0 20px; }
body.fh .fh-filters, body.fh .fh-subnav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body.fh .fh-filters-label { margin-right: 4px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fh-muted); }
html body.fh .fh-filters a.list-group-item, html body.fh .fh-subnav a.list-group-item,
html body.fh .fh-filters a.list-group-item:first-child, html body.fh .fh-filters a.list-group-item:last-child,
html body.fh .fh-subnav a.list-group-item:first-child, html body.fh .fh-subnav a.list-group-item:last-child {
    position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin: 0; padding: 0 16px !important;
    font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none !important;
    background: transparent !important; color: var(--fh-soft) !important; border: 1px solid var(--fh-edge-strong) !important; border-radius: 999px !important;
}
html body.fh .fh-filters a.list-group-item:hover, html body.fh .fh-subnav a.list-group-item:hover { background: var(--fh-raise) !important; color: var(--fh-heading) !important; }
html body.fh .fh-filters a.list-group-item.active, html body.fh .fh-subnav a.list-group-item.active, html body.fh .fh-subnav a.list-group-item[aria-current] {
    background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border-color: var(--fh-hi-bg) !important;
}
/* antler colours the label <span> of an active list item ([data-color] .list-group-item.active span) and animates colour */
html body.fh .fh-filters a.list-group-item, html body.fh .fh-subnav a.list-group-item, html body.fh .fh-pageactions a.list-group-item { transition: background-color .15s, border-color .15s; }
html body.fh .fh-filters a.list-group-item span:not(.badge), html body.fh .fh-subnav a.list-group-item span:not(.badge), html body.fh .fh-pageactions a.list-group-item span:not(.badge) { color: inherit !important; }
html body.fh .fh-filters a.list-group-item i, html body.fh .fh-subnav a.list-group-item i { width: 0; height: 0; overflow: hidden; font-size: 0; margin: 0; }
html body.fh .fh-filters a.list-group-item .badge, html body.fh .fh-subnav a.list-group-item .badge, html body.fh .fh-sidenote .badge { background: var(--fh-tint-3); color: inherit; }
body.fh .fh-sidenote { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 12px 16px; border: 1px solid var(--fh-edge); border-radius: 12px; background: var(--fh-tint-1); color: var(--fh-text); }
body.fh .fh-sidenote > strong { color: var(--fh-heading); font-weight: 700; }
html body.fh .fh-sidenote .panel-body, html body.fh .fh-sidenote .panel-footer { padding: 0 !important; margin: 0; background: transparent !important; border: 0 !important; color: var(--fh-text) !important; }
@media (max-width: 760px) {
    body.fh .fh-pageactions { justify-content: flex-start; width: 100%; }
    body.fh .fh-subbar { margin-top: -8px; }
}

/* marketing e-mail opt-in: plain checkbox (replaces the Bootstrap Switch in clientareadetails/clientregister) */
html body.fh .box-container .fh-optin-block h2 { font-size: 20px; font-weight: 700; margin: 0 0 6px; }
html body.fh .box-container .fh-optin-block p { margin: 0 0 12px; font-size: 14px !important; color: var(--fh-text) !important; text-transform: none !important; } /* antler: .marketing-email-optin p{text-transform:lowercase} */
html body.fh .fh-optin, html body.fh .box-container label.fh-optin, html body.fh .box-container label.fh-optin span { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin: 0; padding: 4px 0; cursor: pointer; font-size: 15px !important; font-weight: 600 !important; line-height: 1.35; text-transform: none !important; color: var(--fh-heading) !important; }
html body.fh .box-container label.fh-optin span { display: inline; min-height: 0; padding: 0; }
html body.fh .fh-optin input[type="checkbox"] {
    -webkit-appearance: none; appearance: none; flex: none; width: 22px; height: 22px; margin: 0; border-radius: 6px; cursor: pointer;
    border: 2px solid var(--fh-input-edge); background: var(--fh-input) center / 16px 16px no-repeat; position: static !important; opacity: 1 !important;
}
html body.fh .fh-optin input[type="checkbox"]:hover { border-color: var(--fh-input-edge-focus); }
html body.fh .fh-optin input[type="checkbox"]:checked { background-color: var(--fh-hi-bg); border-color: var(--fh-hi-bg); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
:root[data-theme="light"] html body.fh .fh-optin input[type="checkbox"]:checked, :root[data-theme="light"] body.fh .fh-optin input[type="checkbox"]:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) body.fh .fh-optin input[type="checkbox"]:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); } }
html body.fh .fh-optin input[type="checkbox"]:focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 3px !important; }
/* the Bootstrap Switch still used by the shared order-form checkout: Console track + thumb, both labels readable */
html body.fh .bootstrap-switch { min-height: 32px; border-radius: 999px !important; border: 1px solid var(--fh-edge-strong) !important; background: var(--fh-input) !important; }
html body.fh .bootstrap-switch .bootstrap-switch-handle-on, html body.fh .bootstrap-switch .bootstrap-switch-handle-off { font-size: 13px !important; font-weight: 700; line-height: 30px !important; padding: 0 10px !important; }
html body.fh .bootstrap-switch .bootstrap-switch-label { background: var(--fh-heading) !important; border-radius: 999px; }
html body.fh .bootstrap-switch.bootstrap-switch-focused { box-shadow: 0 0 0 2px var(--fh-focus) !important; }

/* dashboard: main actions solid (white on dark / black on light); secondary stay outline */
html body.fh .fh-cta, html body.fh .fh-dash .fh-cta:hover, html body.fh .fh-dash .btn-view-details, html body.fh .box-container .fh-dash .btn-view-details,
html body.fh .box-container .fh-dash #ClientAreaHomePagePanels-Register_a_New_Domain input.btn-success {
    background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border: 1px solid var(--fh-hi-bg) !important; box-shadow: none !important; filter: none;
    font-size: 14px !important; font-weight: 600 !important;
}
html body.fh .fh-dash .fh-cta:hover, html body.fh .box-container .fh-dash .btn-view-details:hover,
html body.fh .box-container .fh-dash #ClientAreaHomePagePanels-Register_a_New_Domain input.btn-success:hover { opacity: .88; }
html body.fh .box-container .fh-dash .btn-view-details * { color: var(--fh-hi-fg) !important; }
html body.fh .fh-dash .fh-cta-sm { min-height: 44px; padding: 0 16px; border-radius: 10px; font-size: 14px; text-decoration: none !important; }
html body.fh .fh-dash .fh-panel-head .fh-btn.fh-ghost { min-height: 44px; padding: 0 16px; border-radius: 10px; font-size: 14px; font-weight: 600; }
html body.fh .box-container .fh-dash #ClientAreaHomePagePanels-Register_a_New_Domain input[name="transfer"] { background: transparent !important; border: 1px solid var(--fh-edge-strong) !important; color: var(--fh-heading) !important; font-weight: 600 !important; }
html body.fh .fh-quick { font-size: 15px; font-weight: 600; }
html body.fh .fh-quick:focus-visible, html body.fh .fh-tile:focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 2px !important; }
html body.fh .fh-quick:hover { border-color: var(--fh-heading); }

/* invoice status: diagonal corner ribbon (screen and print); proformas keep their diagonal band and status text */
body.fh-doc .invoice-container:not(.fh-has-proforma) { position: relative; overflow: hidden; }
body.fh-doc .invoice-container .invoice-header, body.fh-doc .invoice-container .invoice-header .invoice-col, body.fh-doc .invoice-container .invoice-header .invoice-status { position: static !important; }
body.fh-doc .invoice-container .invoice-header .invoice-status { margin: 0; }
body.fh-doc .invoice-container .invoice-header .invoice-status > span, body.fh-doc .invoice-container .invoice-header .invoice-status > span.paid,
body.fh-doc .invoice-container .invoice-header .invoice-status > span.unpaid, body.fh-doc .invoice-container .invoice-header .invoice-status > span.draft,
body.fh-doc .invoice-container .invoice-header .invoice-status > span.cancelled, body.fh-doc .invoice-container .invoice-header .invoice-status > span.refunded,
body.fh-doc .invoice-container .invoice-header .invoice-status > span.collections {
    position: absolute; top: 38px; right: -70px; z-index: 3; display: block; width: 260px; margin: 0; padding: 9px 0;
    transform: rotate(45deg); text-align: center; white-space: nowrap; border: 0; border-radius: 0;
    font-family: var(--fh-font); font-size: 14px; font-weight: 800; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase;
    box-shadow: 0 2px 6px rgba(0,0,0,.3); -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
body.fh-doc .invoice-container .invoice-header .invoice-status > span.paid { background: #15803d !important; color: #fff !important; }
body.fh-doc .invoice-container .invoice-header .invoice-status > span.unpaid, body.fh-doc .invoice-container .invoice-header .invoice-status > span.draft { background: #f59e0b !important; color: #1c1917 !important; }
body.fh-doc .invoice-container .invoice-header .invoice-status > span.cancelled { background: #52525b !important; color: #fff !important; }
body.fh-doc .invoice-container .invoice-header .invoice-status > span.refunded { background: #475569 !important; color: #fff !important; }
body.fh-doc .invoice-container .invoice-header .invoice-status > span.collections { background: #b91c1c !important; color: #fff !important; }
body.fh-doc .fh-inv-logo, body.fh-doc .invoice-container p.fh-inv-logo, body.fh-doc .invoice-container p.fh-inv-logo .fh-logo-svg { margin: 0 0 18px; color: var(--fh-heading) !important; line-height: 0; }
body.fh-doc .invoice-container p.fh-inv-logo .fh-logo-svg { margin: 0; }
body.fh-doc .fh-inv-logo .fh-logo-svg { max-width: 100%; height: auto; }
body.fh-doc .fh-pf-logo .fh-logo-svg { color: #000; max-width: 220px; height: auto; margin-bottom: 10px; }
@media screen and (max-width: 760px) {
    body.fh-doc .invoice-container:not(.fh-has-proforma) { padding-top: 64px; }
    body.fh-doc .invoice-container .invoice-header .invoice-status > span, body.fh-doc .invoice-container .invoice-header .invoice-status > span.paid,
    body.fh-doc .invoice-container .invoice-header .invoice-status > span.unpaid, body.fh-doc .invoice-container .invoice-header .invoice-status > span.draft,
    body.fh-doc .invoice-container .invoice-header .invoice-status > span.cancelled, body.fh-doc .invoice-container .invoice-header .invoice-status > span.refunded,
    body.fh-doc .invoice-container .invoice-header .invoice-status > span.collections { top: 26px; right: -62px; width: 210px; padding: 7px 0; font-size: 11px; letter-spacing: .12em; }
}
@media print {
    body.fh-doc .fh-inv-logo, body.fh-doc .invoice-container p.fh-inv-logo, body.fh-doc .invoice-container p.fh-inv-logo .fh-logo-svg, body.fh-doc .fh-pf-logo .fh-logo-svg { color: #000 !important; }
    body.fh-doc .invoice-container:not(.fh-has-proforma) { position: relative; overflow: hidden; }
}

/* store listing (orderforms/fullhosting_console/products.tpl): mirrors the website pricing (segmented tabs,
   monthly/annual switch, plan cards); all text and prices come from WHMCS */
html body.fh #order-standard_cart.fh-store { max-width: 1180px; margin: 0 auto; }
html body.fh .fh-store-head { text-align: center; display: grid; justify-items: center; gap: 10px; margin: 8px 0 24px; }
html body.fh .fh-store .fh-store-title { margin: 0; font-size: 44px; font-weight: 900; letter-spacing: -.03em; line-height: 1.08; text-transform: none !important; color: var(--fh-heading) !important; }
html body.fh .fh-store .fh-store-lead { margin: 0; max-width: 640px; font-size: 16px; color: var(--fh-text) !important; text-transform: none; }
html body.fh .fh-store-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 24px; margin: 0 0 36px; }
html body.fh .fh-seg { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px; padding: 4px; border: 1px solid var(--fh-edge-strong); border-radius: 14px; background: var(--fh-tint-1); max-width: 100%; }
html body.fh .fh-seg-item {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 10px;
    font-size: 15px; font-weight: 600; color: var(--fh-text) !important; text-decoration: none !important; white-space: nowrap;
}
html body.fh .fh-seg-item:hover { color: var(--fh-heading) !important; background: var(--fh-tint-2); }
html body.fh .fh-seg-item[aria-current] { background: var(--fh-hi-bg); color: var(--fh-hi-fg) !important; }
html body.fh .fh-cycle { display: inline-flex; align-items: center; gap: 12px; }
html body.fh .fh-cycle-btn { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 4px; background: none; border: 0; cursor: pointer; font-size: 15px; font-weight: 600; color: var(--fh-muted); }
html body.fh .fh-cycle-btn[aria-checked="false"] .fh-cycle-m, html body.fh .fh-cycle-btn[aria-checked="true"] .fh-cycle-a { color: var(--fh-heading); }
html body.fh .fh-switch { position: relative; width: 52px; height: 30px; border-radius: 999px; background: var(--fh-input); border: 1px solid var(--fh-edge-strong); flex: none; }
html body.fh .fh-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--fh-heading); transition: transform .15s; }
html body.fh .fh-cycle-btn[aria-checked="true"] .fh-switch { background: var(--fh-hi-bg); border-color: var(--fh-hi-bg); }
html body.fh .fh-cycle-btn[aria-checked="true"] .fh-switch::after { transform: translateX(22px); background: var(--fh-hi-fg); }
html body.fh .fh-cycle-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 700; background: var(--fh-ok-bg); color: var(--fh-ok); border: 1px solid var(--fh-ok-edge); }
html body.fh .fh-cycle-badge[hidden], html body.fh .fh-cycle-btn[hidden], html body.fh .fh-plan-more[hidden] { display: none; }
html body.fh .fh-store-extra { color: var(--fh-text); }
html body.fh .fh-store-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; align-items: stretch; }
html body.fh .fh-store-grid[data-count="1"] { max-width: 420px; margin: 0 auto; grid-template-columns: 1fr; }
html body.fh .fh-store-grid[data-count="2"] { max-width: 820px; margin: 0 auto; }
html body.fh .fh-plan {
    position: relative; display: flex; flex-direction: column; gap: 18px; min-width: 0; padding: 28px;
    background: var(--fh-card); border: 1px solid var(--fh-edge); border-top-color: var(--fh-edge-top); border-radius: 18px; box-shadow: var(--fh-card-shadow);
}
html body.fh .fh-plan.is-featured { border-color: var(--fh-heading); }
html body.fh .fh-plan-flag {
    position: absolute; top: -14px; left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px;
    border-radius: 999px; background: var(--fh-hi-bg); color: var(--fh-hi-fg); font-size: 13px; font-weight: 700; white-space: nowrap;
}
html body.fh .fh-plan-head { display: grid; gap: 4px; }
html body.fh .fh-store .fh-plan-name { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; overflow-wrap: anywhere; color: var(--fh-heading) !important; text-transform: none; }
html body.fh .fh-plan-tag, html body.fh .fh-plan-stock { margin: 0; font-size: 14px; color: var(--fh-text) !important; }
html body.fh .fh-plan-price { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; row-gap: 4px; }
html body.fh .fh-plan-amount { font-size: 40px; font-weight: 900; letter-spacing: -.04em; line-height: 1; color: var(--fh-heading); font-variant-numeric: tabular-nums; }
html body.fh .fh-plan-period { font-size: 15px; font-weight: 500; color: var(--fh-text); }
html body.fh .fh-plan-from { flex-basis: 100%; font-size: 13px; color: var(--fh-muted); }
html body.fh .fh-plan-final { flex-basis: 100%; font-size: 13px; font-weight: 700; color: var(--fh-heading); }
html body.fh .fh-plan-note { flex-basis: 100%; font-size: 13px; color: var(--fh-muted); }
html body.fh .fh-plan-feats { flex: 1 1 auto; display: grid; align-content: start; gap: 10px; padding-top: 18px; border-top: 1px solid var(--fh-edge); }
html body.fh .fh-plan-desc, html body.fh .fh-plan-desc p { color: var(--fh-text) !important; font-size: 14px; }
html body.fh .fh-plan-desc ul, html body.fh .fh-plan-kv { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
html body.fh .fh-plan-desc li, html body.fh .fh-plan-kv li {
    position: relative; padding-left: 24px; font-size: 14px; line-height: 1.45; color: var(--fh-soft) !important; overflow-wrap: anywhere;
}
html body.fh .fh-plan-desc li::before, html body.fh .fh-plan-kv li::before {
    content: ""; position: absolute; left: 2px; top: 4px; width: 14px; height: 14px; background: var(--fh-ok);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 14px no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 14px no-repeat;
}
html body.fh .fh-plan-feats.is-collapsed .fh-plan-desc li:nth-of-type(n+7), html body.fh .fh-plan-feats.is-collapsed .fh-plan-kv li:nth-of-type(n+7) { display: none; }
/* WHMCS runs nl2br on the product description: the <br> between <li> would add empty rows */
html body.fh .fh-plan-desc ul > br, html body.fh .fh-plan-desc ol > br { display: none; }
html body.fh .fh-store-extra select { min-height: 44px; }
html body.fh .fh-plan-more {
    justify-self: start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; background: none; border: 0; cursor: pointer;
    font-size: 14px; font-weight: 600; color: var(--fh-heading); text-decoration: underline; text-underline-offset: 3px;
}
html body.fh .fh-plan-feats:not(.is-collapsed) .fh-plan-more { display: none; }
html body.fh .fh-plan-cta {
    display: flex; align-items: center; justify-content: center; min-height: 48px; margin-top: auto; padding: 0 20px; border-radius: 12px;
    font-size: 15px; font-weight: 700; text-decoration: none !important;
    background: var(--fh-hi-bg); color: var(--fh-hi-fg) !important; border: 1px solid var(--fh-hi-bg);
}
html body.fh .fh-plan-cta:hover { opacity: .88; color: var(--fh-hi-fg) !important; }
html body.fh .fh-store-grid.has-featured .fh-plan:not(.is-featured) .fh-plan-cta { background: var(--fh-input); color: var(--fh-heading) !important; border-color: var(--fh-edge-strong); }
html body.fh .fh-seg-item:focus-visible, html body.fh .fh-cycle-btn:focus-visible, html body.fh .fh-plan-cta:focus-visible, html body.fh .fh-plan-more:focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 2px !important; }
@media (max-width: 760px) {
    html body.fh .fh-store .fh-store-title { font-size: 32px; }
    html body.fh .fh-seg { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; width: 100%; scrollbar-width: none; }
    html body.fh .fh-seg-item { flex: none; padding: 0 14px; font-size: 14px; }
    html body.fh .fh-plan { padding: 22px; }
    html body.fh .fh-plan-amount { font-size: 34px; }
}
/* store on phones: swipeable plan slider (scroll-snap), next card peeking; desktop/tablet keep the grid */
html body.fh .fh-slider-nav { display: none; }
@media (max-width: 640px) {
    html body.fh .fh-store-grid, html body.fh .fh-store-grid[data-count="2"] {
        display: flex; gap: 12px; max-width: none; margin: 0 -16px; padding: 18px 16px 8px; overflow-x: auto; overflow-y: hidden;
        scroll-snap-type: x mandatory; scroll-padding-inline: 16px; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    }
    html body.fh .fh-store-grid::-webkit-scrollbar { display: none; }
    html body.fh .fh-store-grid > .fh-plan { flex: 0 0 85%; scroll-snap-align: start; }
    html body.fh .fh-store-grid[data-count="1"] > .fh-plan { flex-basis: 100%; }
    html body.fh .fh-slider-nav { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 8px 0 0; }
    html body.fh .fh-slider-arrow {
        display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 50%;
        background: var(--fh-input); color: var(--fh-heading); border: 1px solid var(--fh-edge-strong); cursor: pointer;
    }
    html body.fh .fh-slider-arrow:disabled { opacity: .4; cursor: default; }
    html body.fh .fh-slider-dots { display: flex; align-items: center; }
    html body.fh .fh-slider-dot { position: relative; width: 28px; height: 44px; padding: 0; background: none; border: 0; cursor: pointer; }
    html body.fh .fh-slider-dot::after { content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 999px; background: var(--fh-edge-strong); transition: width .15s, margin .15s; }
    html body.fh .fh-slider-dot[aria-current="true"]::after { width: 20px; margin-left: -10px; background: var(--fh-heading); }
    html body.fh .fh-slider-arrow:focus-visible, html body.fh .fh-slider-dot:focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 2px !important; }
}
/* proforma payment row: status pill uses the same palette as the invoice ribbon (cancelled = neutral) */
body.fh-doc .fh-pf-pay .invoice-status .cancelled { color: var(--fh-soft) !important; background: var(--fh-tint-2) !important; border-color: var(--fh-edge-strong) !important; }
/* order-form pages: the former "⋮" menu inline (fh-theme.js inlineCartMenu) */
html body.fh .fh-cart-bar { margin: 0 0 24px; }
html body.fh .fh-cart-bar .fh-sidenote { flex-wrap: nowrap; }
html body.fh .fh-cart-bar .fh-sidenote label { margin: 0; font-weight: 700; color: var(--fh-heading) !important; }
html body.fh .fh-cart-bar .fh-sidenote form { margin: 0; }
html body.fh .fh-cart-bar .fh-sidenote select { min-height: 44px; width: auto; min-width: 110px; }
html body.fh .fh-subbar.fh-cart-bar { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
html body.fh .fh-cart-bar .fh-sidenote { align-items: center; gap: 12px; padding: 4px 4px 4px 16px; border-radius: 12px; }
html body.fh .fh-cart-bar .fh-sidenote label { padding: 0 !important; line-height: 1.2; font-size: 14px; }

/* 2026-10-05 "Contratar de nuevo" (includes/hooks/fh_reactivate.php, feature flag): Terminated/Cancelled services.
   List cell (templates/fullhosting-console/clientareaproducts.tpl) keeps the stock secondary td button;
   product details card = solid main action. Classes only exist while the hook renders them. */
html body.fh .fh-reactivate-row { margin-top: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; white-space: normal; }
html body.fh .fh-reactivate-hint { color: var(--fh-muted); font-size: 13px; line-height: 1.45; max-width: 52ch; white-space: normal; }
html body.fh table.table-list > tbody > tr > td .fh-reactivate-hint a,
html body.fh .fh-reactivate-text a { color: var(--fh-heading); text-decoration: underline; text-underline-offset: 2px; }
html body.fh .fh-reactivate-preview {
    border: 1px dashed var(--fh-edge-strong); border-radius: 999px; color: var(--fh-muted);
    font-size: 12px; font-weight: 600; line-height: 18px; padding: 1px 8px; white-space: nowrap; vertical-align: middle;
}
html body.fh .fh-reactivate-title .fh-reactivate-preview { margin-left: 8px; }
html body.fh .fh-reactivate {
    display: flex; align-items: center; justify-content: space-between; gap: 16px 24px;
    margin: 24px 0; padding: 24px; border-radius: 16px;
    background: var(--fh-card); border: 1px solid var(--fh-edge); box-shadow: var(--fh-card-shadow); color: var(--fh-text);
}
html body.fh .fh-reactivate-body { min-width: 0; }
html body.fh .fh-reactivate-title { margin: 0 0 8px; color: var(--fh-heading); font-size: 18px; font-weight: 600; line-height: 1.35; }
html body.fh .fh-reactivate-text { margin: 0; color: var(--fh-text); font-size: 15px; line-height: 1.55; max-width: 64ch; }
html body.fh .fh-reactivate-price { margin: 8px 0 0; color: var(--fh-soft); font-size: 14px; font-weight: 600; }
html body.fh .box-container .fh-reactivate .fh-reactivate-btn, html body.fh .fh-reactivate .fh-reactivate-btn {
    flex: 0 0 auto; white-space: nowrap; border-radius: 10px;
    background: var(--fh-hi-bg) !important; color: var(--fh-hi-fg) !important; border: 1px solid var(--fh-hi-bg) !important; box-shadow: none !important;
}
html body.fh .fh-reactivate .fh-reactivate-btn:hover { opacity: .88; }
html body.fh .fh-reactivate-sales { display: block; }
@media (max-width: 760px) {
    html body.fh .fh-reactivate { flex-direction: column; align-items: stretch; padding: 20px; }
    html body.fh .fh-reactivate .fh-reactivate-btn { width: 100%; white-space: normal; }
    html body.fh .fh-reactivate-row .fh-reactivate-btn { width: 100%; }
}

/* ------------------------------------------------------------------ 2026-10-05 client reports
   Native <select> popups follow the theme (light-blue system highlight was the "blue and white" box on Windows),
   cart promo code as input + "Aplicar" button, summary actions stacked, empty-cart checkout clearly unavailable,
   notes for upgrade.tpl / user-profile.tpl overrides. */
body.fh select { color-scheme: inherit; }
body.fh select option:checked, body.fh select option:hover { background: var(--fh-input-focus); color: var(--fh-heading); }
body.fh select optgroup { background: var(--fh-raise); color: var(--fh-heading); }

html body.fh #order-standard_cart .form-group:has(> #inputPromotionCode) { display: flex; gap: 8px; align-items: stretch; position: relative; }
html body.fh #order-standard_cart #inputPromotionCode { flex: 1 1 auto; min-width: 0; width: auto !important; margin: 0 !important; }
html body.fh #order-standard_cart button[name="validatepromo"] {
    position: static !important; flex: none; display: inline-flex; align-items: center; justify-content: center;
    width: auto !important; height: auto !important; min-height: 44px; min-width: 44px; margin: 0 !important; padding: 0 18px !important;
    border-radius: 8px !important; border: 1px solid var(--fh-edge-strong) !important; box-shadow: none !important; transform: none !important;
    background: var(--fh-raise) !important; color: var(--fh-heading) !important; font: 700 14px/1 var(--fh-font) !important;
}
html body.fh #order-standard_cart button[name="validatepromo"]:hover { background: var(--fh-input-hover) !important; }
html body.fh #order-standard_cart button[name="validatepromo"] i { color: var(--fh-heading) !important; background: none !important; }
html body.fh #order-standard_cart button[name="validatepromo"].fh-promo-btn i { display: none; }

html body.fh #order-standard_cart .order-summary .text-right { display: flex; flex-direction: column-reverse; align-items: stretch; gap: 10px; text-align: center; }
html body.fh #order-standard_cart .order-summary .text-right > br { display: none; }
html body.fh #order-standard_cart .order-summary .text-right > .btn { width: 100%; margin: 0 !important; float: none !important; }
html body.fh #order-standard_cart .btn-checkout.disabled, html body.fh #order-standard_cart .btn-checkout[aria-disabled="true"] {
    background: transparent !important; border: 1px dashed var(--fh-edge-strong) !important; box-shadow: none !important; filter: none !important;
    color: var(--fh-muted) !important; cursor: not-allowed; opacity: 1 !important; pointer-events: none;
}
html body.fh #order-standard_cart .btn-checkout.disabled *, html body.fh #order-standard_cart .btn-checkout[aria-disabled="true"] * { color: var(--fh-muted) !important; }

body.fh .fh-empty-note { margin-top: 24px; padding: 28px; border: 1px solid var(--fh-edge); border-radius: 12px; background: var(--fh-surface); color: var(--fh-soft); }
body.fh .fh-empty-note p { color: var(--fh-soft); font-size: 16px; }
body.fh .fh-empty-note p:last-child { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
body.fh .fh-locked-note { margin: 4px 0 0; color: var(--fh-soft); font-size: 14px; }
body.fh .fh-locked-note a { color: var(--fh-heading); text-decoration: underline; }

/* FH-CANCEL-SECONDARY: the product-details "Solicitar Cancelación" action is secondary (outline), not a solid red block. */
html body.fh a.btn.btn-danger[href*="action=cancel"]{background:transparent!important;color:var(--fh-text)!important;border:1px solid var(--fh-edge-strong)!important;box-shadow:none!important;font-weight:500}
html body.fh a.btn.btn-danger[href*="action=cancel"]:hover,html body.fh a.btn.btn-danger[href*="action=cancel"]:focus-visible{color:var(--fh-bad)!important;border-color:var(--fh-bad-edge)!important;background:var(--fh-bad-bg)!important}

/* FH-SSL-BADGE 2026-10-06: services list SSL column (clientareaproducts.tpl + fh/ssl-icons.tpl). The stock PNGs were greyed by the
   filter above into an empty white circle and squeezed to 2px wide on phones. Rollback: /root/backups/whmcs-20261006-serviceslist */
html body.fh table.table-list > tbody > tr > td.fh-ssl-cell { padding-left: 12px !important; padding-right: 12px !important; text-align: center; white-space: nowrap; }
html body.fh td.fh-ssl-cell img.ssl-state { display: none !important; }
body.fh .fh-ssl { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex: 0 0 32px; border-radius: 999px; border: 1px solid var(--fh-edge-strong); background: var(--fh-tint-1); color: var(--fh-muted); vertical-align: middle; }
body.fh .fh-ssl .fh-ssl-i { display: none; width: 18px; height: 18px; }
body.fh .fh-ssl--active .fh-ssl-i--active, body.fh .fh-ssl--expiring .fh-ssl-i--expiring, body.fh .fh-ssl--none .fh-ssl-i--none,
body.fh .fh-ssl--checking .fh-ssl-i--checking, body.fh .fh-ssl--neutral .fh-ssl-i--neutral { display: block; }
body.fh .fh-ssl--active { color: var(--fh-ok); background: var(--fh-ok-bg); border-color: var(--fh-ok-edge); }
body.fh .fh-ssl--expiring { color: var(--fh-warn); background: var(--fh-warn-bg); border-color: var(--fh-warn-edge); }
body.fh .fh-ssl--none { color: var(--fh-soft); }
body.fh .fh-ssl--checking .fh-ssl-i { animation: fh-ssl-spin 1s linear infinite; }
@keyframes fh-ssl-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { body.fh .fh-ssl--checking .fh-ssl-i { animation: none; } }
/* status filter label: sentence case, same size/line as the pills ("Estado:" instead of the stock "VER") */
body.fh .fh-filters[menuitemname="My Services Status Filter"] .fh-filters-label { font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--fh-text); margin-right: 4px; }

/* FH-DOMAINSEARCH 2026-10-06 (owner report): domain register / transfer / renew pages in the console style.
   Result banners and badges sit on neutral surfaces with heading-colour text (>= 4.5:1 in both modes); the status
   colour is only a left rule and an icon. Add-to-cart buttons are monochrome primary. Never sets `display` on
   elements the antler JS toggles with inline styles. Backup: /root/backups/whmcs-20261006-domainsearch */
html body.fh #order-standard_cart .header-lined .section-heading { text-transform: none !important; color: var(--fh-heading) !important; }
html body.fh #order-standard_cart .header-lined .section-subheading { color: var(--fh-text) !important; }
html body.fh #order-standard_cart #DomainSearchResults { margin-top: 24px; }
html body.fh #order-standard_cart #primaryLookupResult { background: transparent !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price),
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupSearching {
    position: relative; margin: 0 0 16px !important; padding: 18px 20px 18px 56px !important;
    background: var(--fh-surface) !important; background-image: none !important;
    border: 1px solid var(--fh-edge-strong) !important; border-left: 4px solid var(--fh-edge-strong) !important;
    border-radius: 12px !important; box-shadow: none !important; text-shadow: none !important;
    color: var(--fh-heading) !important; font-size: 18px !important; line-height: 1.45 !important; font-weight: 500 !important; text-align: left !important;
}
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupSearching { padding-left: 20px !important; color: var(--fh-soft) !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price) strong,
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price) * { color: var(--fh-heading) !important; font-weight: 700; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price)::before {
    content: ""; position: absolute; left: 20px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%;
    background: var(--fh-edge-strong) no-repeat center / 14px 14px;
}
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-available { border-left-color: var(--fh-ok) !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-available::before {
    background-color: var(--fh-ok);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-unavailable,
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-invalid { border-left-color: var(--fh-bad) !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-unavailable::before,
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-invalid::before {
    background-color: var(--fh-bad);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
}
/* dark mode: the bright accents need dark glyphs */
html:not([data-theme="light"]) body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-available::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
html:not([data-theme="light"]) body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-unavailable::before,
html:not([data-theme="light"]) body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price).domain-checker-invalid::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
}
html body.fh #order-standard_cart #primaryLookupResult .domain-price { margin: 0 0 8px; text-align: left; }
html body.fh #order-standard_cart #primaryLookupResult .domain-price .price { color: var(--fh-heading) !important; font-size: 20px; font-weight: 700; margin-right: 12px; }

/* spotlight TLD cards (.com / .net): neutral card, status as a small outlined badge */
html body.fh #order-standard_cart .spotlight-tlds .spotlight-tld { background: var(--fh-surface) !important; border: 1px solid var(--fh-edge) !important; color: var(--fh-heading) !important; box-shadow: none !important; }
html body.fh #order-standard_cart .spotlight-tld .btn.unavailable,
html body.fh #order-standard_cart .spotlight-tld .btn.invalid {
    background: transparent !important; background-image: none !important; color: var(--fh-soft) !important; opacity: 1 !important;
    border: 1px solid var(--fh-edge-strong) !important; border-radius: 999px !important; box-shadow: none !important;
    font-size: 13px !important; font-weight: 600 !important; padding: 6px 14px 6px 28px !important; position: relative; width: auto !important;
}
html body.fh #order-standard_cart .spotlight-tld .btn.unavailable::before,
html body.fh #order-standard_cart .spotlight-tld .btn.invalid::before {
    content: ""; position: absolute; left: 12px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--fh-bad);
}
html body.fh #order-standard_cart .spotlight-tld .available.price { color: var(--fh-heading) !important; font-weight: 700; }

/* add to cart (main result, spotlight, suggestions): monochrome primary */
html body.fh #order-standard_cart .btn-add-to-cart,
html body.fh #order-standard_cart .domain-contact-support {
    color: var(--fh-primary-fg) !important; background: var(--fh-chrome) !important;
    border: 1px solid var(--fh-primary-edge) !important; border-top-color: var(--fh-primary-edge-top) !important;
    box-shadow: var(--fh-primary-shadow) !important; text-shadow: none !important; border-radius: 10px !important; font-weight: 600 !important;
}
html body.fh #order-standard_cart .btn-add-to-cart *, html body.fh #order-standard_cart .domain-contact-support * { color: var(--fh-primary-fg) !important; }
html body.fh #order-standard_cart .btn-add-to-cart:hover { filter: brightness(.94); }
html body.fh #order-standard_cart .btn-add-to-cart.checkout { background: var(--fh-chrome) !important; }
html body.fh #order-standard_cart .btn-add-to-cart:disabled, html body.fh #order-standard_cart .btn-add-to-cart.disabled {
    background: transparent !important; color: var(--fh-soft) !important; border-color: var(--fh-edge-strong) !important; box-shadow: none !important; opacity: 1 !important;
}
html body.fh #order-standard_cart .btn-add-to-cart:disabled *, html body.fh #order-standard_cart .btn-add-to-cart.disabled * { color: var(--fh-soft) !important; }

/* suggested domains: one clean list, hairline separators */
html body.fh #order-standard_cart .suggested-domains { background: transparent !important; border: 1px solid var(--fh-edge) !important; border-radius: 12px !important; overflow: hidden; box-shadow: none !important; margin-top: 24px; }
html body.fh #order-standard_cart .suggested-domains .panel-heading { background: var(--fh-surface) !important; color: var(--fh-heading) !important; font-weight: 600; font-size: 15px; border-bottom: 1px solid var(--fh-edge) !important; text-transform: none !important; }
html body.fh #order-standard_cart #domainSuggestions { margin: 0 !important; background: transparent !important; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion {
    background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--fh-edge) !important; border-radius: 0 !important;
    box-shadow: none !important; margin: 0 !important; padding: 14px 20px !important; color: var(--fh-text) !important; font-size: 16px;
}
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion:hover { background: var(--fh-tint-2) !important; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .domain { color: var(--fh-heading) !important; font-weight: 500; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .extension { color: var(--fh-heading) !important; font-weight: 700; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .actions { display: flex; align-items: center; gap: 16px; float: right; margin-top: -6px; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .actions .price { color: var(--fh-heading) !important; font-weight: 600; font-size: 15px; margin: 0 !important; padding: 0 !important; line-height: 36px; order: 0; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .actions .btn { order: 1; margin: 0 !important; min-height: 36px; padding: 6px 14px !important; }
html body.fh #order-standard_cart #domainSuggestions .promo span { background: var(--fh-raise) !important; color: var(--fh-soft) !important; border: 1px solid var(--fh-edge-strong); border-radius: 999px; font-size: 11px; padding: 2px 8px; }
html body.fh #order-standard_cart .suggested-domains .more-suggestions { background: var(--fh-surface) !important; border-top: 0 !important; }
html body.fh #order-standard_cart .suggested-domains .more-suggestions a { color: var(--fh-heading) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
html body.fh #order-standard_cart .suggested-domains .domain-suggestions-warning { background: var(--fh-surface) !important; padding: 0 20px 14px; }
html body.fh #order-standard_cart .suggested-domains .domain-suggestions-warning p,
html body.fh #order-standard_cart .suggested-domains .no-more { color: var(--fh-muted) !important; font-size: 12.5px; }
@media (max-width: 767px) {
    html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .actions { float: none; margin-top: 10px; justify-content: space-between; }
    html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult > p:not(.domain-price) { font-size: 16px !important; }
    html body.fh #order-standard_cart #primaryLookupResult .domain-price { text-align: left; }
}

/* transfer page: neutral help badge, primary submit */
html body.fh #order-standard_cart .domain-transfer-container .badge.bg-danger { background: var(--fh-raise) !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong); }
html body.fh #order-standard_cart .domain-transfer-container .panel { background: var(--fh-surface) !important; border: 1px solid var(--fh-edge) !important; box-shadow: none !important; }
html body.fh #order-standard_cart .domain-transfer-container .panel-footer { background: transparent !important; border-top: 1px solid var(--fh-edge) !important; }
html body.fh #order-standard_cart .domain-transfer-container .renewed-point { color: var(--fh-muted) !important; }
html body.fh #order-standard_cart #transferUnavailable { background: var(--fh-surface) !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong) !important; border-left: 4px solid var(--fh-warn) !important; }

/* renewals (logged in): neutral status badges, status colour only as a left rule */
html body.fh #order-standard_cart .domain-renewal .label, html body.fh #order-standard_cart .domain-renewal .badge.feat {
    background: var(--fh-raise) !important; background-image: none !important; color: var(--fh-heading) !important; border: 1px solid var(--fh-edge-strong) !important;
}
html body.fh #order-standard_cart .domain-renewal .label *, html body.fh #order-standard_cart .domain-renewal .badge.feat * { color: var(--fh-heading) !important; }
html body.fh #order-standard_cart .domain-renewal .badge.feat.bg-danger { border-left: 4px solid var(--fh-bad) !important; }
html body.fh #order-standard_cart .domain-renewal .badge.feat.bg-success { border-left: 4px solid var(--fh-ok) !important; }
html body.fh #order-standard_cart .domain-renewal .domain-renewal-desc { color: var(--fh-text) !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult .domain-price { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 0 !important; background: transparent !important; border: 0 !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult .domain-price .btn-add-to-cart,
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult .domain-price .btn-add-to-cart *,
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult .domain-price .btn-add-to-cart i { color: var(--fh-primary-fg) !important; text-shadow: none !important; }
html body.fh #order-standard_cart #searchDomainInfo #primaryLookupResult .domain-price .btn-add-to-cart { min-height: 44px; padding: 10px 20px !important; font-size: 15px !important; }
html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .domain { overflow-wrap: anywhere; } html body.fh #order-standard_cart #domainSuggestions .domain-suggestion .extension { white-space: nowrap; }
html body.fh #order-standard_cart .domain-transfer-container { background: var(--fh-card) !important; border: 1px solid var(--fh-edge) !important; border-radius: 16px !important; box-shadow: var(--fh-card-shadow) !important; padding: 24px !important; }
html body.fh #order-standard_cart .domain-transfer-container.overlay::before, html body.fh #order-standard_cart .domain-transfer-container.overlay::after { background: none !important; opacity: 0 !important; }
html body.fh #order-standard_cart .domain-transfer-bg { background: transparent !important; }
html body.fh #order-standard_cart .domain-transfer-container .panel-footer { padding: 16px !important; }
html body.fh #order-standard_cart .domain-transfer-container .renewed-point { display: block; padding: 12px 16px 0; }

/* FH 2026-10-09 checkout errors: rejected checkout re-renders with this box above the form
   (antler checkout.tpl .checkout-error-feedback); red rail + tint, high-contrast text, focus target
   for assets/fh/fh-checkout-errors.js. Display only. */
body.fh #order-standard_cart .checkout-error-feedback {
    background: var(--fh-bad-bg) !important;
    border: 1px solid var(--fh-bad-edge) !important;
    border-left: 5px solid var(--fh-bad) !important;
    box-shadow: none !important;
    color: var(--fh-heading) !important;
    border-radius: 12px !important;
    padding: 16px 18px !important;
    margin: 0 0 24px !important;
    font-size: 15px;
    line-height: 1.55;
    text-align: left !important;
    scroll-margin-top: 96px;
}
body.fh #order-standard_cart .checkout-error-feedback > p:first-child {
    color: var(--fh-bad) !important;
    font-weight: 700;
    font-size: 16px;
    margin: 0 0 8px !important;
}
body.fh #order-standard_cart .checkout-error-feedback ul {
    margin: 0 !important;
    padding-left: 20px !important;
    list-style: disc;
}
body.fh #order-standard_cart .checkout-error-feedback li {
    color: var(--fh-heading) !important;
    margin: 4px 0;
}
body.fh #order-standard_cart .checkout-error-feedback:focus,
body.fh #order-standard_cart .checkout-error-feedback:focus-visible {
    outline: 2px solid var(--fh-bad) !important;
    outline-offset: 3px !important;
}
@media (max-width: 767px) {
    body.fh #order-standard_cart .checkout-error-feedback { padding: 14px 14px !important; font-size: 15px; scroll-margin-top: 80px; }
}

/* FH 2026-10-09 TOS checkbox: #accepttos as a native 22px checkbox (iCheck removed by assets/fh/fh-checkout-tos.js).
   The label is a block with the box in a left gutter, so the text + link wrap as one paragraph; 44px min tap height. */
html body.fh { --fh-tos-edge: #8c8c8c; --fh-tos-on: var(--fh-hi-bg); }
:root[data-theme="light"] body.fh { --fh-tos-edge: #6b6b73; }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) body.fh { --fh-tos-edge: #6b6b73; } }
html body.fh label.fh-tos, html body.fh #order-standard_cart label.fh-tos {
    display: block !important; position: relative; min-height: 44px; margin: 0; padding: 10px 0 10px 36px !important;
    font-size: 15px; font-weight: 500; line-height: 24px; cursor: pointer; text-align: left;
}
html body.fh label.fh-tos a { text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
html body.fh label.fh-tos input#accepttos {
    -webkit-appearance: none; appearance: none; position: absolute !important; left: 0; top: 11px;
    width: 22px !important; height: 22px !important; min-height: 0; margin: 0 !important; padding: 0; opacity: 1 !important;
    border: 2px solid var(--fh-tos-edge); border-radius: 6px; background: var(--fh-input, transparent) center / 16px 16px no-repeat; cursor: pointer;
}
html body.fh label.fh-tos input#accepttos:hover { border-color: var(--fh-input-edge-focus); }
html body.fh label.fh-tos input#accepttos:checked, html body.fh label.fh-tos input#accepttos:checked:focus { background-color: var(--fh-tos-on) !important; border-color: var(--fh-tos-on) !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
:root[data-theme="light"] body.fh label.fh-tos input#accepttos:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important; }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) body.fh label.fh-tos input#accepttos:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important; } }
html body.fh label.fh-tos input#accepttos:focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 3px !important; }
/* FH 2026-10-10 checkout "Ya Registrado?" toggle (#btnAlreadyRegistered): legacy antler text #212122 on the #4c555d bar = 2.1:1 in light.
   Same rendering as dark mode in both themes: white text on the bar = 7.5:1. Only this element. */
html body.fh #btnAlreadyRegistered, html body.fh #btnAlreadyRegistered:hover { color: #fff !important; }

/* 2026-10-12 store categories ("Contratar" landing, contratar.php + templates/fullhosting-console/fh-store.tpl).
   Category cards + shared-hosting tiers; plan cards reuse the store listing rules above. */
html body.fh .fh-cats { max-width: 1180px; margin: 0 auto; }
html body.fh .fh-cats-back { margin: 0 0 12px; }
html body.fh .fh-cats-back a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; font-weight: 600; color: var(--fh-text) !important; text-decoration: none !important; }
html body.fh .fh-cats-back a:hover { color: var(--fh-heading) !important; text-decoration: underline !important; text-underline-offset: 3px; }
html body.fh .fh-cat-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
html body.fh .fh-cat-grid[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html body.fh .fh-cat {
    display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 28px;
    background: var(--fh-card); border: 1px solid var(--fh-edge); border-top-color: var(--fh-edge-top); border-radius: 18px; box-shadow: var(--fh-card-shadow);
}
html body.fh .fh-cat-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--fh-tint-1); border: 1px solid var(--fh-edge-strong); color: var(--fh-heading); }
html body.fh .fh-store .fh-cat-name { margin: 6px 0 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; color: var(--fh-heading) !important; text-transform: none; }
html body.fh .fh-cat-desc { margin: 0; flex: 1 1 auto; font-size: 15px; line-height: 1.5; color: var(--fh-text) !important; }
html body.fh .fh-cat-from { margin: 0; font-size: 14px; color: var(--fh-text) !important; }
html body.fh .fh-cat-from strong { font-size: 20px; font-weight: 800; letter-spacing: -.02em; color: var(--fh-heading); font-variant-numeric: tabular-nums; }
html body.fh .fh-cat-cta {
    display: flex; align-items: center; justify-content: center; min-height: 48px; margin-top: 8px; padding: 0 20px; border-radius: 12px;
    font-size: 15px; font-weight: 700; text-decoration: none !important;
    background: var(--fh-hi-bg); color: var(--fh-hi-fg) !important; border: 1px solid var(--fh-hi-bg);
}
html body.fh .fh-cat-cta:hover { opacity: .88; color: var(--fh-hi-fg) !important; }
html body.fh .fh-cat-cta:focus-visible, html body.fh .fh-cats-back a:focus-visible { outline: 2px solid var(--fh-focus) !important; outline-offset: 2px !important; }
html body.fh .fh-cats-empty { text-align: center; color: var(--fh-text); }
html body.fh .fh-cats .fh-store-bar { margin-bottom: 28px; }
html body.fh .fh-tier { margin: 0 0 48px; scroll-margin-top: 24px; }
html body.fh .fh-tier-head { display: grid; gap: 6px; margin: 0 0 28px; padding-top: 24px; border-top: 1px solid var(--fh-edge); }
html body.fh .fh-store .fh-tier-title { margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; color: var(--fh-heading) !important; text-transform: none; }
html body.fh .fh-tier-lead { margin: 0; font-size: 15px; color: var(--fh-text) !important; }
@media (max-width: 960px) {
    html body.fh .fh-cat-grid[data-count="3"] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
@media (max-width: 760px) {
    html body.fh .fh-cat { padding: 22px; }
    html body.fh .fh-store .fh-tier-title { font-size: 24px; }
    html body.fh .fh-tier { margin-bottom: 36px; }
}

/* FH 2026-10-12 order-flow contrast (owner report: light mode "Total" on cart view and the product name in "Sumario de Pedido"
   near-invisible). antler main.css paints the summary text for its old dark panel: .product-name and .recurring-charges #fff,
   .product-group #cfe1f0. The console card is light in light mode (1.03:1), so they take the theme tokens in both modes.
   The checkout e-mail opt-in box kept the stock #f8f8f8 background (styles.css), so in dark mode its white heading was 1.06:1. */
html body.fh #order-standard_cart .order-summary .product-name { color: var(--fh-heading) !important; }
html body.fh #order-standard_cart .order-summary .product-group { color: var(--fh-muted) !important; }
html body.fh #order-standard_cart .order-summary .recurring-totals,
html body.fh #order-standard_cart .order-summary .recurring-charges,
html body.fh #order-standard_cart .order-summary .recurring-charges * { color: var(--fh-text) !important; }
html body.fh #order-standard_cart .order-summary .recurring-charges .cost { color: var(--fh-heading) !important; }
html body.fh .marketing-email-optin { background: var(--fh-surface) !important; border: 1px solid var(--fh-edge) !important; color: var(--fh-text) !important; }
html body.fh .marketing-email-optin h4 { color: var(--fh-heading) !important; }
