/* ==========================================================================
   Host Factory, child theme WHMCS 9 „hostfactory” (părinte: nexus)
   Direcția de culoare: Verde „uptime"
   GENERAT de brand-kit/_sursa/build.py. Nu edita de mână: modifică generatorul.
   ========================================================================== */

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('../fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('../fonts/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-display: swap;
    font-weight: 300 700;
    src: url('../fonts/space-grotesk-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-display: swap;
    font-weight: 300 700;
    src: url('../fonts/space-grotesk-latin-ext-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* --------------------------------------------------------------------------
   1. Variabilele Nexus, toate (fișierul înlocuiește custom.css al părintelui)
   -------------------------------------------------------------------------- */
:root {
    --white: #fff;

    --neutral-50: #F8FBF8;
    --neutral-100: #F1F4F1;
    --neutral-200: #E4E7E4;
    --neutral-300: #D1D6D1;
    --neutral-400: #9EA39F;
    --neutral-500: #696D69;
    --neutral-600: #515551;
    --neutral-700: #3D413D;
    --neutral-800: #242B25;
    --neutral-900: #151B16;
    --neutral-950: #0A100B;

    --primary-50: #EDFCEE;
    --primary-100: #DAF6DD;
    --primary-200: #B4EDBB;
    --primary-300: #84E093;
    --primary-400: #50D16D;
    --primary-500: #0DBE4E;
    --primary-600: #069A3E;
    --primary-700: #047B30;
    --primary-800: #016123;
    --primary-900: #004B19;
    --primary-950: #00300E;

    --primary: #047B30;
    --primary-lifted: #016123;
    --primary-accented: #004B19;

    --secondary: var(--neutral-600);
    --secondary-lifted: var(--neutral-700);
    --secondary-accented: var(--neutral-800);

    --success: #047B30;
    --success-lifted: #016123;
    --success-accented: #004B19;

    --info: #1d5fd6;
    --info-lifted: #174db0;
    --info-accented: #123d8c;

    --notice: #6d3fd1;
    --notice-lifted: #5a31b3;
    --notice-accented: #472690;

    --warning: #b45309;
    --warning-lifted: #92400e;
    --warning-accented: #78350f;

    --error: #c81e1e;
    --error-lifted: #a51717;
    --error-accented: #841212;

    --grayscale: var(--neutral-900);
    --grayscale-lifted: var(--neutral-800);
    --grayscale-accented: var(--neutral-700);

    --neutral: var(--neutral-500);
    --neutral-lifted: var(--neutral-600);
    --neutral-accented: var(--neutral-700);

    --text-inverted: var(--white);
    --text-muted: var(--neutral-500);
    --text-lifted: var(--neutral-600);
    --text-accented: var(--neutral-700);
    --text: var(--neutral-900);

    --border-muted: var(--neutral-200);
    --border: var(--neutral-300);
    --border-lifted: var(--neutral-400);
    --border-accented: var(--neutral-600);

    --bg: var(--white);
    --bg-muted: var(--neutral-50);
    --bg-lifted: var(--neutral-100);
    --bg-accented: var(--neutral-200);
    --bg-inverted: var(--neutral-950);

    --yellow-200: #fff085;
    --yellow-300: #ffdf20;
    --teal-300: var(--primary-300);
    --teal-400: var(--primary-400);
    --emerald-300: var(--primary-300);
    --pink-400: #fb64b6;

    --text-xs: 0.625rem;
    --text-sm: 0.75rem;
    --text-md: 0.875rem;
    --text-lg: 1rem;

    --outline-sm: 1px;
    --outline-md: 2px;
    --outline-lg: 3px;

    --rounding-sm: 0.375rem;
    --rounding-md: 0.625rem;
    --rounding-lg: 1rem;

    --letter-spacing: 0em;
    --disabled-opacity: 40%;

    /* ---- tokenuri Host Factory (nu există în Nexus) ---- */
    --hf-brand: #0DBE4E;            /* culoarea mărcii: logo, accente pe fundal închis */
    --hf-brand-bright: #50D16D;
    --hf-action: #047B30;          /* butoane și linkuri pe alb: alb pe ea = 5,41:1 */
    --hf-action-hover: #016123;
    --hf-soft: #EDFCEE;
    --hf-ink: #0A100B;             /* header, hero, footer */
    --hf-ink-2: #151B16;
    --hf-ink-line: rgba(255, 255, 255, .10);
    --hf-on-ink: #ffffff;
    --hf-on-ink-muted: #9EA39F;   /* text secundar pe fundal închis */
    --hf-link: #047B30;             /* link pe alb */
    --hf-focus: 0 0 0 3px rgba(13, 190, 78, .45);
    --hf-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --hf-font-display: 'Space Grotesk', 'Inter', system-ui, sans-serif;
    --hf-logo-dark-bg: url('../img/logo-pe-inchis.svg');
}

/* --------------------------------------------------------------------------
   2. Tipografie
   -------------------------------------------------------------------------- */
body {
    font-family: var(--hf-font);
    color: var(--text);
    background: var(--bg-lifted);
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .h1, .h2, .h3, .h4, .card-title, .pricing-card-title,
.header-lined h1, .primary-content h1, .price, .total-due-today .amt {
    font-family: var(--hf-font-display);
    letter-spacing: -0.015em;
    color: var(--neutral-950);
}
h1, .h1 { font-weight: 600; }
h2, h3, .h2, .h3 { font-weight: 600; }
a { color: var(--hf-link); }
a:hover { color: var(--hf-action-hover); }
code, pre, kbd { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
::selection { background: var(--primary-200); color: var(--neutral-950); }

/* --------------------------------------------------------------------------
   3. Header întunecat, ca pe celelalte site-uri ale familiei
   Logoul din setări (assets/img/logo.png) rămâne varianta pentru fundal alb, fiindcă
   același fișier apare pe facturile PDF. Aici îl înlocuim vizual cu varianta albă,
   fără să modificăm header.tpl. Textul alternativ al imaginii rămâne.
   -------------------------------------------------------------------------- */
header.header { background: var(--hf-ink); border-bottom: 1px solid var(--hf-ink-line); }
header.header .navbar { background: transparent; }
header.header .navbar-brand {
    background: var(--hf-logo-dark-bg) left center / contain no-repeat;
    display: inline-block;
}
header.header .navbar-brand .logo-img { visibility: hidden; max-height: 30px; width: auto; }
header.header .main-navbar-wrapper { background: var(--hf-ink); border-top: 1px solid var(--hf-ink-line); }
header.header .navbar-nav a,
header.header .navbar a { color: var(--hf-on-ink); }
header.header .navbar-nav .nav-link { color: rgba(255,255,255,.86); font-weight: 500; }
header.header .navbar-nav .nav-link:hover,
header.header .navbar-nav .active > .nav-link,
header.header .navbar-nav .show > .nav-link { color: var(--hf-brand-bright); }
header.header .dropdown-menu { border-color: var(--border-muted); box-shadow: 0 12px 32px rgba(0,0,0,.18); }
header.header .dropdown-menu a,
header.header .dropdown-menu .dropdown-item { color: var(--text); }
header.header .dropdown-item.active,
header.header .dropdown-item:active { background: var(--hf-soft); color: var(--neutral-950); }
header.header .toolbar .nav-link {
    color: var(--hf-on-ink); border-color: var(--hf-ink-line); background: rgba(255,255,255,.04);
}
header.header .toolbar .nav-link:hover { background: rgba(255,255,255,.10); color: var(--hf-on-ink); }
header.header .toolbar .nav-link .badge { background: var(--hf-brand); color: var(--hf-ink); }
header.header .search .btn,
header.header .search .form-control {
    background: rgba(255,255,255,.06); border-color: var(--hf-ink-line); color: var(--hf-on-ink);
}
header.header .search .form-control::placeholder { color: var(--hf-on-ink-muted); }
header.header .search:focus-within { box-shadow: var(--hf-focus); }
header.header .navbar-toggler, header.header .btn.nav-link { color: var(--hf-on-ink); }
header.header .topbar { background: var(--hf-ink-2); color: var(--hf-on-ink-muted); }
header.header .topbar .btn, header.header .topbar .input-group-text { color: var(--hf-on-ink); }
header.header .topbar .active-client .btn.btn-active-client span { color: var(--hf-brand-bright); }

/* Pe mobil Nexus lasă o bandă goală de ~70 px sub logo (meniul pliat are padding).
   Pe header întunecat se vede, deci padding-ul trece pe meniul deschis. */
@media (max-width: 1199.98px) {
    header.header .main-navbar-wrapper { padding: 0; border-top: 0; min-height: 0; }
    header.header .main-navbar-wrapper .navbar-collapse.show,
    header.header .main-navbar-wrapper .navbar-collapse.collapsing { padding: 12px 0 16px; border-top: 1px solid var(--hf-ink-line); }
    header.header .dropdown-menu { background: var(--hf-ink-2); border-color: var(--hf-ink-line); box-shadow: none; }
    header.header .dropdown-menu a, header.header .dropdown-menu .dropdown-item { color: rgba(255,255,255,.86); }
}
@media (max-width: 575.98px) {
    header.header .navbar-brand { max-width: calc(100% - 112px); }
    header.header .navbar-brand .logo-img { max-height: 22px; max-width: 100%; }
    .home-domain-search .input-group { padding: 4px; }
    .home-domain-search .p-5 { padding: 2.25rem 1.25rem !important; }
    #btnTransfer2 { border: 1px solid var(--hf-ink-line) !important; background: rgba(255,255,255,.06) !important; }
}

.master-breadcrumb { background: var(--bg-lifted); border-bottom: 1px solid var(--border-muted); }
.master-breadcrumb .breadcrumb { background: transparent; margin: 0; }
.master-breadcrumb .breadcrumb, .master-breadcrumb .breadcrumb a { color: var(--text-lifted); font-size: .875rem; }

/* --------------------------------------------------------------------------
   4. Butoane. Nexus le stilizează prin `body #main-body .btn-*`, de aici prefixul.
   -------------------------------------------------------------------------- */
.btn { border-radius: var(--rounding-md); font-weight: 600; }
.btn:focus, .btn.focus, .form-control:focus, .custom-select:focus { box-shadow: var(--hf-focus); }
.btn-primary, .btn-success,
body #main-body .btn-primary, body #main-body .btn-success,
body #order-standard_cart .products .product footer .btn-order-now,
body #order-standard_cart .text-right .btn-checkout,
body .primary-content .client-home-cards .card .btn-success,
body .sidebar .btn-success,
.btn-primary:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled):active {
    background: var(--hf-action); border-color: var(--hf-action); color: #fff;
}
.btn-primary:hover, .btn-primary:focus, .btn-success:hover, .btn-success:focus,
body #main-body .btn-primary:hover, body #main-body .btn-success:hover,
body #order-standard_cart .products .product footer .btn-order-now:hover,
body #order-standard_cart .text-right .btn-checkout:hover, body .sidebar .btn-success:hover {
    background: var(--hf-action-hover); border-color: var(--hf-action-hover); color: #fff;
}
.btn-outline-primary, body #main-body .btn-outline-primary {
    color: var(--hf-action); border: 1.5px solid var(--hf-action); background: transparent;
}
.btn-outline-primary:hover, body #main-body .btn-outline-primary:hover,
.btn-outline-primary:not(:disabled):not(.disabled):active {
    background: var(--hf-action); border-color: var(--hf-action); color: #fff;
}
/* „Transfer” de lângă căutarea de domenii: acțiune secundară, închisă */
#btnTransfer, #btnTransfer2, body #main-body #btnTransfer, body #main-body #btnTransfer2 {
    background: var(--neutral-900); border-color: var(--neutral-900); color: #fff;
}
#btnTransfer:hover, #btnTransfer2:hover { background: var(--neutral-950); border-color: var(--neutral-950); }
.btn-default, .btn-secondary, body #main-body .btn-default { background: #fff; border-color: var(--border); color: var(--text); }
.btn-default:hover, .btn-secondary:hover { background: var(--bg-lifted); color: var(--neutral-950); }
.btn-warning, body #main-body .btn-warning { background: var(--hf-action); border-color: var(--hf-action); color: #fff; }
.btn-link { color: var(--hf-link); }
.btn-danger, body #main-body .btn-danger { background: var(--error); border-color: var(--error); color: #fff; }
.btn-lg { font-family: var(--hf-font-display); }

/* --------------------------------------------------------------------------
   5. Căutarea de domenii de pe prima pagină devine hero-ul mărcii
   (același formular WHMCS, aceleași câmpuri, doar stil)
   -------------------------------------------------------------------------- */
.home-domain-search {
    background:
        radial-gradient(900px 380px at 85% -10%, rgba(13, 190, 78, .30), transparent 70%),
        radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.2px) 0 0 / 22px 22px,
        var(--hf-ink) !important;
    color: var(--hf-on-ink);
    border-bottom: 1px solid var(--hf-ink-line);
}
.home-domain-search h2 { color: var(--hf-on-ink); font-size: clamp(1.75rem, 3.2vw, 2.75rem); font-weight: 600; }
.home-domain-search h2::after {
    content: ''; display: block; width: 56px; height: 4px; margin: 14px auto 0;
    background: var(--hf-brand); border-radius: 2px;
}
.home-domain-search .input-group-wrapper { max-width: 760px; margin: 28px auto 0; }
.home-domain-search .input-group {
    background: #fff; border-radius: var(--rounding-lg); padding: 6px;
    box-shadow: 0 20px 50px rgba(0,0,0,.35);
}
.home-domain-search .form-control { border: 0; font-size: 1.125rem; height: 52px; box-shadow: none !important; }
.home-domain-search .input-group-append .btn { height: 52px; padding: 0 1.4rem; margin-left: 6px; border-radius: var(--rounding-md) !important; }
.home-domain-search .btn-link { color: var(--hf-on-ink-muted); }
.home-domain-search .btn-link:hover { color: var(--hf-brand-bright); }
.home-domain-search .tld-logos li { color: var(--hf-on-ink-muted); }

/* --------------------------------------------------------------------------
   6. Carduri, panouri, bara laterală
   -------------------------------------------------------------------------- */
.card, .panel, .sidebar .card { border-color: var(--border-muted); border-radius: var(--rounding-lg); }
.card { box-shadow: 0 1px 2px rgba(16,24,20,.04); }
.card-columns.home .card { border-top: 3px solid var(--hf-brand); }
.sidebar .card-header, .sidebar .card-title { font-family: var(--hf-font-display); }
.sidebar .list-group-item.active, .sidebar .list-group-item.active:hover {
    background: var(--hf-soft); color: var(--neutral-950); border-color: var(--border-muted);
    box-shadow: inset 3px 0 0 var(--hf-action);
}
.list-group-item-action:hover { background: var(--bg-muted); }
.action-icon-btns a { border-radius: var(--rounding-lg); border: 1px solid var(--border-muted); color: var(--text); }
.action-icon-btns a:hover { border-color: var(--hf-action); color: var(--neutral-950); }
.action-icon-btns a .ico-container i,
[class*="card-accent-"] .ico-container i { color: var(--hf-action) !important; }
[class*="card-accent-"] { border-top-color: var(--hf-brand) !important; }

/* Tile-urile din portal (clientareahome) folosesc aceleași clase card-accent-* */
.tiles .tile .icon, .tiles .tile i { color: var(--hf-action); }
.tiles .tile .highlight { background: var(--hf-brand) !important; }

/* --------------------------------------------------------------------------
   7. Formulare
   -------------------------------------------------------------------------- */
.form-control, .custom-select { border-color: var(--border); border-radius: var(--rounding-md); }
.form-control:focus, .custom-select:focus { border-color: var(--hf-action); }
.custom-control-input:checked ~ .custom-control-label::before { background: var(--hf-action); border-color: var(--hf-action); }
label { color: var(--neutral-800); font-weight: 500; }

/* --------------------------------------------------------------------------
   8. Stări: insigne, alerte (starea nu se transmite doar prin culoare,
   WHMCS pune deja textul stării în insignă)
   -------------------------------------------------------------------------- */
.label, .badge { border-radius: 999px; font-weight: 600; letter-spacing: .01em; }
.status-active, .label-success, .badge-success, .status-paid, .status-completed, .status-open {
    background: #EDFCEE !important; color: #004B19 !important;
}
.status-pending, .label-warning, .badge-warning, .status-unpaid, .status-answered, .status-customer-reply {
    background: #fff4e0 !important; color: #8a3b00 !important;
}
.status-suspended, .status-overdue, .label-danger, .badge-danger, .status-cancelled, .status-terminated, .status-fraud {
    background: #fde8e8 !important; color: #9b1c1c !important;
}
.status-closed, .label-default, .status-expired, .status-draft { background: var(--bg-accented) !important; color: var(--neutral-700) !important; }
.alert-success { background: #EDFCEE; border-color: #B4EDBB; color: #004B19; }
.alert-info { background: #e8f0fe; border-color: #c3d6fb; color: #123d8c; }
.alert-warning { background: #fff4e0; border-color: #fbd9a6; color: #7a3300; }
.alert-danger { background: #fde8e8; border-color: #f6c2c2; color: #841212; }

/* --------------------------------------------------------------------------
   9. Tabele și paginare
   -------------------------------------------------------------------------- */
.table thead th, .table-list thead th { font-weight: 600; color: var(--neutral-700); border-bottom-color: var(--border-muted); }
.table-list > tbody > tr:hover > td { background: var(--hf-soft); }
.page-item.active .page-link { background: var(--hf-action); border-color: var(--hf-action); }
.page-link { color: var(--hf-link); }

/* --------------------------------------------------------------------------
   10. Coșul (standard_cart_hf și Nexus Cart) — doar culori și tipografie
   -------------------------------------------------------------------------- */
#order-standard_cart .btn-checkout, #order-standard_cart .btn-primary,
#order-standard_cart #btnCompleteProductConfig, #order-standard_cart .btn-continue {
    background: var(--hf-action); border-color: var(--hf-action); color: #fff;
}
#order-standard_cart .btn-checkout:hover, #order-standard_cart #btnCompleteProductConfig:hover { background: var(--hf-action-hover); border-color: var(--hf-action-hover); }
#order-standard_cart .products .product header { background: var(--hf-soft); border-bottom: 1px solid var(--border-muted); }
#order-standard_cart .products .product header span { font-family: var(--hf-font-display); color: var(--neutral-950); }
#order-standard_cart .products .product .price { color: var(--neutral-950); }
#order-standard_cart .summary-container, #order-standard_cart .order-summary {
    border-radius: var(--rounding-lg); border-color: var(--border-muted);
}
#order-standard_cart .order-summary h2 { font-family: var(--hf-font-display); }
#order-standard_cart .total-due-today .amt, #order-standard_cart .order-summary .total-due-today .amt { color: var(--neutral-950); }
#order-standard_cart .sub-heading span, #order-standard_cart .field-container { font-family: var(--hf-font); }
#order-standard_cart .domain-checker-container {
    background: radial-gradient(700px 260px at 90% -20%, rgba(13, 190, 78, .30), transparent 70%),
                radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.2px) 0 0 / 22px 22px,
                var(--hf-ink) !important;
    border-radius: var(--rounding-lg);
}
#order-standard_cart .domain-checker-bg { background-image: none !important; }
#order-standard_cart .domain-promo-box { border-radius: var(--rounding-lg); border: 1px solid var(--border-muted); }
#order-standard_cart .domain-promo-box .text-warning, #order-standard_cart .domain-promo-box h3 small { color: var(--hf-action) !important; }
#order-standard_cart .domain-promo-box i, #order-standard_cart .domain-promo-box .fa-stack { color: var(--neutral-900); }
#order-standard_cart .products .product footer .btn-order-now { font-family: var(--hf-font-display); }
#order-standard_cart .products .product .product-pricing .price { font-family: var(--hf-font-display); font-size: 1.5rem; font-weight: 600; }
body #order-standard_cart .domain-pricing .tld-filters .badge, body #order-standard_cart .domain-pricing .tld-filters .badge.badge-success { background: var(--hf-soft); color: var(--hf-action); border: 1px solid var(--primary-200); }
body #order-standard_cart .domain-pricing .tld-filters .badge.active, body #order-standard_cart .domain-pricing .tld-filters .badge.badge-success.active { background: var(--hf-action); color: #fff; }
body #order-standard_cart .domain-pricing .tld-pricing-header div:nth-child(odd) { border-color: var(--hf-action); }

/* --------------------------------------------------------------------------
   11. Footer
   -------------------------------------------------------------------------- */
footer.footer { background: var(--hf-ink); color: var(--hf-on-ink-muted); border-top: 3px solid var(--hf-brand); }
footer.footer a, footer.footer .nav-link { color: rgba(255,255,255,.86); }
footer.footer a:hover { color: var(--hf-brand-bright); }
footer.footer .btn { border-color: var(--hf-ink-line); color: #fff; }
footer.footer .copyright { color: var(--hf-on-ink-muted); }

/* --------------------------------------------------------------------------
   12. Focus vizibil peste tot (WCAG 2.4.7)
   -------------------------------------------------------------------------- */
a:focus-visible, button:focus-visible, .btn:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid var(--hf-action); outline-offset: 2px;
}
header.header a:focus-visible, footer.footer a:focus-visible { outline-color: var(--hf-brand-bright); }
