/* =============================================================
   Galaxy Web Solutions — WHMCS Theme
   custom.css — Complete style overrides
   Template: /templates/galaxy/
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Raleway:ital,wght@0,300;0,700;0,900;1,700;1,900&display=swap');

/* -- TOKENS --------------------------------------------------- */
:root {
    --gws-content-width: 1320px;
    --galaxy-navy-deep:   #060e1f;
    --galaxy-navy:        #0b1c3d;
    --galaxy-navy-mid:    #071428;
    --galaxy-navy-light:  #0d2a5e;
    --galaxy-blue:        #2a7fd4;
    --galaxy-blue-light:  #5bb8ff;
    --galaxy-teal:        #5de0c8;
    --galaxy-purple:      #b8b4f0;
    --galaxy-purple-dark: #7f77dd;
    --galaxy-gold:        #ef9f27;
    --galaxy-border:      #1a3560;
    --galaxy-border-faint:#0e1e35;
    --primary:            #2a7fd4;
    --primary-lifted:     #2270bc;
    --font-heading:       'Raleway', sans-serif;
    --font-body:          'Inter', sans-serif;
    --rounding-sm: 0.25rem;
    --rounding-md: 0.5rem;
    --rounding-lg: 0.75rem;
}

/* -- BASE ------------------------------------------------------ */
body { background: var(--galaxy-navy-deep) !important; color: #fff !important; font-family: var(--font-body) !important; font-size: 14px !important; }
a { color: var(--galaxy-blue-light); }
a:hover { color: var(--galaxy-teal); text-decoration: none; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); color: #fff; }

/* -- FULL-WIDTH OVERRIDE --------------------------------------- */
/* Remove Bootstrap container constraints from ALL Galaxy pages.
   Uses direct child selectors — no :has() dependency.
   All Galaxy content sections control their own width via gwspage-hero,
   gwssec, gwsca-wrap etc using calc-based padding. */

/* The container WHMCS injects between main-body and page content */
#main-body > .container,
#main-body > .container-fluid {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
#main-body > .container > .row,
#main-body > .container-fluid > .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
#main-body > .container > .row > .col-12,
#main-body > .container-fluid > .row > .col-12,
#main-body > .container > .row > .primary-content,
#main-body > .container-fluid > .row > .primary-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

/* Hide Portal Home breadcrumb on homepage */
body:has(.gwshero) .master-breadcrumb { display: none !important; }

/* -- UTILITY BAR ----------------------------------------------- */
.gws-util {
    display: flex; align-items: center; justify-content: space-between;
    padding: 6px calc((100% - var(--gws-content-width)) / 2 + 24px);
    background: #040b16; border-bottom: 0.5px solid var(--galaxy-border-faint);
    font-size: 12px; color: #4e7aaa; flex-wrap: wrap; gap: 6px;
    position: sticky; top: 0; z-index: 1050; width: 100%; box-sizing: border-box;
}
.gws-util-left, .gws-util-right { display: flex; align-items: center; gap: 10px; }
.gws-util-divider { width: 1px; height: 12px; background: #142240; flex-shrink: 0; }
.gws-status { display: flex; align-items: center; gap: 5px; cursor: pointer; color: inherit; text-decoration: none; font-size: 11.5px; }
.gws-status:hover { color: #fff; text-decoration: none; }
.gws-pulse { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; display: inline-block; animation: gwsPulse 2.2s infinite; flex-shrink: 0; }
.gws-pulse.issue { background: var(--galaxy-gold); }
@keyframes gwsPulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.gws-review { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; }
.gws-review-tp { color: #00b67a; } .gws-review-g { color: #fbbc04; }
.gws-review .lbl { color: #3a5a7a; font-weight: 400; }
.gws-phone { display: flex; align-items: center; gap: 5px; color: var(--galaxy-blue-light); font-weight: 600; font-size: 12px; }
.gws-phone a { color: inherit; text-decoration: none; }
.gws-login-btn { background: var(--galaxy-blue); color: #fff !important; padding: 5px 18px; border-radius: 4px; font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: none; white-space: nowrap; }
.gws-login-btn:hover { background: var(--primary-lifted); color: #fff !important; text-decoration: none; }

/* Client Dashboard button */
.gws-client-btn {
    background: var(--galaxy-blue); color: #fff !important; padding: 5px 16px;
    border-radius: 4px; font-size: 13px; font-weight: 600; cursor: pointer;
    border: none; display: inline-flex; align-items: center; gap: 6px;
}
.gws-client-btn:hover { background: var(--primary-lifted); }

/* Client mega menu */
.gws-client-btn-wrap { position: relative; }
.gws-client-mega {
    display: none; position: absolute; top: calc(100% + 8px); right: 0;
    background: #0c1e3d; border: 0.5px solid #1e3f6e; border-radius: 10px;
    box-shadow: 0 12px 44px rgba(0,0,0,0.7); z-index: 2000; width: 660px; overflow: hidden;
}
.gws-client-btn-wrap.open .gws-client-mega { display: block; }
.gws-mega-inner { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.gws-mega-col { padding: 16px 14px; }
.gws-mega-col + .gws-mega-col { border-left: 0.5px solid var(--galaxy-border); }
.gws-mega-col-title { font-size: 9.5px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: var(--galaxy-blue); margin-bottom: 10px; padding-bottom: 6px; border-bottom: 0.5px solid var(--galaxy-border); }
.gws-mega-item { display: flex; align-items: center; gap: 9px; padding: 8px 6px; border-radius: 5px; text-decoration: none; color: #8aafd6; font-size: 12px; transition: all 0.12s; margin-bottom: 1px; }
.gws-mega-item:hover { background: rgba(42,127,212,0.12); color: #fff; text-decoration: none; }
.gws-mega-item i { width: 16px; text-align: center; color: var(--galaxy-blue-light); font-size: 13px; flex-shrink: 0; }
.gwsmi-badge { background: #ef4444; color: #fff; border-radius: 10px; padding: 1px 7px; font-size: 9.5px; font-weight: 700; margin-left: auto; }
.gws-mega-footer { background: #071428; border-top: 0.5px solid var(--galaxy-border); padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.gws-mega-footer-dash { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #fff; text-decoration: none; font-weight: 600; }
.gws-mega-footer-dash:hover { color: var(--galaxy-blue-light); text-decoration: none; }
.gws-mega-footer-dash i { color: var(--galaxy-blue-light); }
.gws-mega-alert { font-size: 11.5px; color: var(--galaxy-gold); display: flex; align-items: center; gap: 6px; }
.gws-mega-alert a { color: var(--galaxy-gold); font-weight: 600; text-decoration: underline; }
.gws-mega-logout { font-size: 11.5px; color: #ef4444 !important; display: flex; align-items: center; gap: 5px; text-decoration: none; padding: 4px 8px; border-radius: 4px; }
.gws-mega-logout:hover { background: rgba(239,68,68,0.1); color: #ff6b6b !important; text-decoration: none; }

/* -- MAIN HEADER ----------------------------------------------- */
.gws-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px calc((100% - var(--gws-content-width)) / 2 + 24px);
    background: var(--galaxy-navy); border-bottom: 1px solid var(--galaxy-border);
    position: sticky; top: 33px; z-index: 1040; width: 100%; box-sizing: border-box;
}
.gws-logo { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.gws-logo:hover { text-decoration: none; }
.gws-logo-text { font-family: var(--font-heading); font-size: 30px; font-weight: 900; font-style: italic; color: #fff; line-height: 1; letter-spacing: -0.5px; }
.gws-logo-sub { font-size: 11.5px; font-weight: 300; color: var(--galaxy-blue-light); letter-spacing: 6px; font-style: normal; display: block; margin-top: -3px; }
.gws-mobile-toggle { display: none; background: none; border: none; color: #8aafd6; font-size: 22px; cursor: pointer; padding: 4px 8px; }

/* Nav */
.gws-nav { display: flex; align-items: center; gap: 4px; }
.gws-nav-item { position: relative; }
.gws-nav-link { padding: 10px 16px; font-size: 14px; font-weight: 600; color: #8aafd6; cursor: pointer; border-radius: 5px; display: flex; align-items: center; gap: 4px; user-select: none; white-space: nowrap; text-decoration: none; transition: color .15s, background .15s; }
.gws-nav-link:hover, .gws-nav-item:hover > .gws-nav-link { color: #fff; background: rgba(255,255,255,.06); text-decoration: none; }
.gws-nav-arrow { font-size: 8px; opacity: .4; transition: transform .18s; }
.gws-nav-item:hover .gws-nav-arrow { transform: rotate(180deg); opacity: .8; }

/* Client login nav item — subtle distinction */
.gws-nav-client { color: var(--galaxy-blue-light) !important; }
.gws-nav-item:hover > .gws-nav-client { color: #fff !important; }

/* Solutions — purple pill */
.gws-nav-solutions {
    background: rgba(127,119,221,0.18); border: 0.5px solid rgba(184,180,240,0.45);
    color: var(--galaxy-purple) !important; font-weight: 700; margin-left: 8px;
}
.gws-nav-item:hover > .gws-nav-solutions { background: rgba(127,119,221,0.3) !important; color: #fff !important; }

/* -- DROPDOWNS -------------------------------------------------- */
/* Hover bridge — invisible 10px gap filler so menu doesn't disappear when
   moving mouse from nav link down to dropdown */
.gws-nav-item::after {
    content: ''; position: absolute; top: 100%; left: 0;
    width: 100%; height: 12px; z-index: 998;
}
.gws-dropdown {
    display: none; position: absolute; top: calc(100% + 12px); left: 0;
    background: #0c1e3d; border: 0.5px solid #1e3f6e; border-radius: 9px;
    box-shadow: 0 10px 36px rgba(0,0,0,.6); z-index: 1000; min-width: 280px; padding: 8px;
}
.gws-nav-item:hover .gws-dropdown { display: block; }
.gws-dropdown-support { min-width: 320px; }
.gws-dd-item { display: flex; align-items: flex-start; gap: 11px; padding: 9px 10px; border-radius: 6px; cursor: pointer; text-decoration: none; color: inherit; transition: background .12s; }
.gws-dd-item:hover { background: rgba(42,127,212,.12); text-decoration: none; }
.gws-dd-icon { width: 34px; height: 34px; background: rgba(42,127,212,.12); border-radius: 6px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gws-dd-icon i { font-size: 14px; color: var(--galaxy-blue-light); }
.gws-dd-text h4 { font-size: 13px; font-weight: 600; color: #e0eaf8; margin-bottom: 3px; font-family: var(--font-body); }
.gws-dd-text p { font-size: 11px; color: #6a8fb5; line-height: 1.4; margin: 0; }
.gws-dd-divider { height: .5px; background: var(--galaxy-border); margin: 5px 4px; }
.gws-support-hdr { padding: 11px 11px 9px; border-bottom: .5px solid var(--galaxy-border); margin-bottom: 4px; }
.gws-support-phone { font-size: 22px; font-weight: 700; color: #fff; margin-bottom: 7px; font-family: var(--font-heading); }
.gws-support-phone a { color: inherit; text-decoration: none; }
.gws-support-hours-row { display: flex; align-items: flex-start; gap: 8px; padding: 5px 0; border-bottom: .5px solid var(--galaxy-border-faint); font-size: 11px; }
.gws-support-hours-row:last-child { border-bottom: none; }
.gws-shr-label { color: var(--galaxy-blue-light); font-weight: 600; min-width: 125px; }
.gws-shr-value { color: #6a8fb5; }

/* Mega nav (Solutions) */
.gws-mega-nav {
    display: none; position: absolute; top: calc(100% + 12px); right: 0;
    background: #0c1e3d; border: 0.5px solid #1e3f6e; border-radius: 11px;
    box-shadow: 0 12px 44px rgba(0,0,0,.65); z-index: 1000; width: 680px; overflow: hidden;
}
.gws-nav-item:hover .gws-mega-nav { display: block; }
/* Solutions is first nav item - open left aligned */
.gws-nav-solutions-item:hover .gws-mega-nav { left: 0; right: auto; }
.gws-mega-nav-inner { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.gws-mega-nav-col { padding: 16px 14px; }
.gws-mega-nav-col + .gws-mega-nav-col { border-left: 0.5px solid var(--galaxy-border); }
.gws-mega-nav-title { font-size: 9.5px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: var(--galaxy-blue); margin-bottom: 10px; padding-bottom: 5px; border-bottom: .5px solid var(--galaxy-border); }
.gws-mega-nav-item { display: flex; align-items: flex-start; gap: 9px; padding: 7px 6px; border-radius: 5px; cursor: pointer; text-decoration: none; margin-bottom: 1px; transition: background .12s; }
.gws-mega-nav-item:hover { background: rgba(42,127,212,.1); text-decoration: none; }
.gws-mega-nav-item.gwsmni-teal:hover { background: rgba(93,224,200,.08); }
.gws-mega-nav-item i { font-size: 14px; color: var(--galaxy-blue-light); margin-top: 1px; flex-shrink: 0; width: 17px; text-align: center; }
.gws-mega-nav-item.gwsmni-teal i { color: var(--galaxy-teal); }
.gws-mega-nav-item h4 { font-size: 12.5px; font-weight: 600; color: #e0eaf8; margin-bottom: 2px; font-family: var(--font-body); }
.gws-mega-nav-item.gwsmni-teal h4 { color: var(--galaxy-teal); }
.gws-mega-nav-item p { font-size: 10.5px; color: #6a8fb5; line-height: 1.4; margin: 0; }
.gws-mega-nav-footer { background: #071428; border-top: .5px solid var(--galaxy-border); padding: 9px 16px; display: flex; align-items: center; justify-content: space-between; }
.gwsmf-pills { display: flex; gap: 14px; }
.gwsmf-pill { font-size: 9.5px; color: #3a5a7a; }
.gwsmf-cta { font-size: 10.5px; color: var(--galaxy-blue-light); font-weight: 600; cursor: pointer; text-decoration: none; }
.gwsmf-cta:hover { color: #fff; text-decoration: none; }

/* -- CLIENT AREA SUB-NAV -------------------------------------- */
.gws-client-subnav {
    background: #071020; border-bottom: 1px solid var(--galaxy-border);
    position: sticky; z-index: 1030; width: 100%;
}
.gws-csn-inner {
    display: flex; align-items: stretch; gap: 2px;
    max-width: var(--gws-content-width); margin: 0 auto; padding: 0 24px;
    overflow-x: visible; overflow-y: visible;
}
.gws-csn-item {
    display: flex; align-items: center; gap: 6px; padding: 10px 16px;
    font-size: 12px; font-weight: 500; color: #6a8fb5; cursor: pointer;
    border-bottom: 2px solid transparent; white-space: nowrap;
    text-decoration: none; transition: all .15s; user-select: none;
}
.gws-csn-item:hover { color: #fff; text-decoration: none; }
.gws-csn-item.active { color: var(--galaxy-blue-light); border-bottom-color: var(--galaxy-blue); }
.gws-csn-badge { background: #ef4444; color: #fff; border-radius: 10px; padding: 1px 6px; font-size: 9px; font-weight: 700; margin-left: 2px; }
.gws-csn-logout { margin-left: auto; color: #ef4444 !important; }
.gws-csn-logout:hover { color: #ff6b6b !important; }
/* Sub-nav dropdowns */
.gws-csn-wrap { position: relative; }
.gws-csn-wrap .gws-csn-item { cursor: default; }
.gws-csn-dd {
    display: none; position: absolute; top: 100%; left: 0; z-index: 500;
    background: #0c1e3d; border: .5px solid #1e3f6e; border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0,0,0,.6); min-width: 200px; padding: 6px; white-space: nowrap;
}
.gws-csn-dd-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 5px; font-size: 12px; color: #8aafd6; text-decoration: none; transition: background .12s; }
.gws-csn-dd-item:hover { background: rgba(42,127,212,.12); color: #fff; text-decoration: none; }
.gws-csn-dd-item i { width: 14px; text-align: center; color: var(--galaxy-blue-light); font-size: 12px; }

/* -- HERO ------------------------------------------------------ */
.gwshero {
    position: relative; padding: 70px 48px 60px; text-align: center;
    background: linear-gradient(160deg,#0b1c3d 0%,#0d2a5e 60%,#0f1e50 100%);
    overflow: hidden; min-height: 580px;
}
/* Canvas layers — critical z-index ordering */
canvas.gwsc-stars  { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 1; }
canvas.gwsc-rocket { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 2; }
.gwshero-content   { position: relative; z-index: 3; } /* HTML always above both canvases */

.gwshero-review-pill { display: inline-flex; align-items: center; gap: 12px; background: rgba(255,255,255,.05); border: .5px solid rgba(255,255,255,.1); border-radius: 20px; padding: 6px 16px; margin-bottom: 16px; }
.gwshero-review-src { display: flex; flex-direction: column; align-items: center; gap: 1px; }
.gwshero-review-logo { font-size: 9.5px; font-weight: 700; }
.gwshero-review-logo.tp { color: #00b67a; } .gwshero-review-logo.g { color: #8aafd6; }
.gwshero-review-stars { font-size: 11px; }
.gwshero-review-stars.tp { color: #00b67a; } .gwshero-review-stars.g { color: #fbbc04; }
.gwshero-review-score { font-size: 13px; font-weight: 700; color: #fff; }
.gwshero-review-sub { font-size: 8.5px; color: #4e7aaa; }
.gwshero-review-sep { width: .5px; height: 30px; background: rgba(255,255,255,.08); }
.gwshero-live { display: flex; align-items: center; gap: 4px; font-size: 9.5px; color: #3a8a5a; }
.gwshero h1 { font-size: 52px; font-weight: 900; color: #fff; line-height: 1.15; margin-bottom: 12px; font-family: var(--font-heading); font-style: italic; }
.gwshero h1 em { color: var(--galaxy-blue-light); font-style: normal; }
.gwshero-sub { font-size: 17px; color: #8aafd6; line-height: 1.65; margin: 0 auto 20px; max-width: 580px; }
.gwshero-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 22px; }
.gwschip { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.05); border: .5px solid rgba(91,184,255,.2); border-radius: 20px; padding: 6px 16px; font-size: 12px; color: #c8dff5; user-select: none; }
.gwschip.teal   { border-color: rgba(93,224,200,.35); color: var(--galaxy-teal); background: rgba(93,224,200,.06); }
.gwschip.purple { border-color: rgba(184,180,240,.3); color: var(--galaxy-purple); background: rgba(127,119,221,.06); }
.gwschip.gold   { border-color: rgba(239,159,39,.35); color: var(--galaxy-gold); background: rgba(239,159,39,.06); }
.gwshero-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; align-items: center; }
/* Buttons */
.gwsbtn-primary { background: #fff; color: var(--galaxy-navy) !important; padding: 13px 32px; border-radius: 6px; font-size: 15px; font-weight: 700; cursor: pointer; border: none; box-shadow: 0 2px 18px rgba(255,255,255,.14); text-decoration: none; display: inline-flex; align-items: center; gap: 7px; }
.gwsbtn-primary:hover { background: #f0f4f8; color: var(--galaxy-navy) !important; text-decoration: none; }
.gwsbtn-secondary { background: transparent; color: var(--galaxy-teal) !important; padding: 13px 24px; border-radius: 6px; font-size: 15px; font-weight: 600; border: 1px solid rgba(93,224,200,.4); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; text-decoration: none; }
.gwsbtn-secondary:hover { background: rgba(93,224,200,.08); color: var(--galaxy-teal) !important; text-decoration: none; }
.gwsbtn-purple { background: transparent; color: var(--galaxy-purple) !important; padding: 13px 24px; border-radius: 6px; font-size: 15px; font-weight: 600; border: 1px solid rgba(184,180,240,.35); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; text-decoration: none; }
.gwsbtn-purple:hover { background: rgba(127,119,221,.08); color: var(--galaxy-purple) !important; text-decoration: none; }

/* Hero offer selector */
.gwshero-selector { margin-top: 24px; padding-top: 22px; border-top: .5px solid rgba(255,255,255,.08); }
.gwshero-sel-label { font-size: 10.5px; color: var(--galaxy-blue-light); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 12px; }
.gwshero-sel-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 16px; }
.gwshero-sel-btn { background: rgba(42,127,212,.1); border: .5px solid rgba(42,127,212,.3); color: #8aafd6; padding: 8px 18px; border-radius: 6px; font-size: 12px; cursor: pointer; transition: all .15s; }
.gwshero-sel-btn:hover, .gwshero-sel-btn.active { background: rgba(42,127,212,.25); color: #fff; border-color: var(--galaxy-blue); }
/* Offer cards */
.gwshero-offer-area { display: none; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 760px; margin: 0 auto; }
.gwshero-offer-area.show { display: grid; }
.gwsoffer-card { background: rgba(255,255,255,.04); border: .5px solid rgba(91,184,255,.15); border-radius: 10px; padding: 22px; text-align: left; transition: all .25s; opacity: 0; transform: translateY(8px); }
.gwsoffer-card.visible { opacity: 1; transform: translateY(0); }
.gwsoffer-card.highlight { border-color: rgba(93,224,200,.35); background: rgba(93,224,200,.05); }
.gwsoffer-eyebrow { font-size: 9.5px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--galaxy-blue-light); margin-bottom: 8px; }
.gwsoffer-eyebrow.teal { color: var(--galaxy-teal); }
.gwsoffer-headline { font-size: 18px; font-weight: 700; color: #fff; margin-bottom: 8px; font-family: var(--font-heading); line-height: 1.3; }
.gwsoffer-body { font-size: 12px; color: #8aafd6; line-height: 1.65; margin-bottom: 16px; }
.gwsoffer-btn { padding: 10px 22px; border-radius: 5px; font-size: 13px; font-weight: 700; cursor: pointer; border: none; display: inline-flex; align-items: center; gap: 6px; text-decoration: none; transition: all .15s; }
.gwsoffer-btn.white { background: #fff; color: var(--galaxy-navy) !important; }
.gwsoffer-btn.white:hover { background: #f0f4f8; text-decoration: none; }
.gwsoffer-btn.teal { background: rgba(93,224,200,.15); color: var(--galaxy-teal) !important; border: .5px solid rgba(93,224,200,.4); }
.gwsoffer-btn.teal:hover { background: rgba(93,224,200,.25); text-decoration: none; }
.gwsoffer-btn.purple { background: rgba(127,119,221,.15); color: var(--galaxy-purple) !important; border: .5px solid rgba(184,180,240,.35); }
.gwsoffer-btn.purple:hover { background: rgba(127,119,221,.25); text-decoration: none; }

/* -- HOMEPAGE SECTIONS — content max-width, backgrounds full-width -- */
.gwssw-banner {
    background: linear-gradient(135deg,#0d2255,#1a0f40);
    border-top: .5px solid rgba(127,119,221,.3); border-bottom: .5px solid rgba(127,119,221,.3);
    padding: 18px calc((100% - var(--gws-content-width)) / 2 + 24px);
    display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.gwssw-left { display: flex; align-items: center; gap: 16px; }
.gwssw-icon { font-size: 24px; color: var(--galaxy-purple); flex-shrink: 0; }
.gwssw-text h4 { font-size: 14px; font-weight: 700; color: var(--galaxy-purple); margin-bottom: 4px; }
.gwssw-text p { font-size: 12px; color: #8aafd6; line-height: 1.55; margin: 0; }
.gwssw-cta { background: rgba(127,119,221,.2); border: .5px solid rgba(127,119,221,.5); color: var(--galaxy-purple) !important; padding: 10px 20px; border-radius: 5px; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.gwssw-cta:hover { background: rgba(127,119,221,.3); color: #fff !important; text-decoration: none; }

.gwsstrip { border-top: 2px solid var(--galaxy-blue); background: #0a1830; }
.gwsstrip-inner { display: grid; grid-template-columns: repeat(4,1fr); max-width: var(--gws-content-width); margin: 0 auto; padding: 0 24px; }
.gwsstrip-item { padding: 14px 10px; text-align: center; border-right: .5px solid #142240; }
.gwsstrip-item:last-child { border-right: none; }
.gwsstrip-item i { font-size: 20px; margin-bottom: 6px; color: var(--galaxy-blue-light); display: block; }
.gwsstrip-title { font-size: 13px; font-weight: 600; color: #fff; margin-bottom: 2px; }
.gwsstrip-sub { font-size: 11px; color: #7a9ab8; }

.gwsdomain-wrap { padding: 20px calc((100% - var(--gws-content-width)) / 2 + 24px); background: var(--galaxy-navy-light); border-bottom: 1px solid var(--galaxy-border); text-align: center; }
.gwsdomain-label { font-size: 13px; color: #8aafd6; margin-bottom: 10px; }
.gwsdomain-bar { display: flex; max-width: 520px; margin: 0 auto; border-radius: 6px; overflow: hidden; border: 1px solid var(--galaxy-blue); box-shadow: 0 0 22px rgba(42,127,212,.2); }
.gwsdomain-btn { background: var(--galaxy-blue); color: #fff; font-size: 14px; font-weight: 700; padding: 0 24px; height: 44px; display: flex; align-items: center; cursor: pointer; white-space: nowrap; border: none; }
.gwsdomain-btn:hover { background: var(--primary-lifted); color: #fff; }

.gwssec { padding: 48px calc((100% - var(--gws-content-width)) / 2 + 24px) 40px; }
/* gwspage sections — same padding system */
.gwspage-content .gwssec { padding: 40px calc((100% - var(--gws-content-width)) / 2 + 24px); }
.gwssec-tag { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--galaxy-blue-light); margin-bottom: 6px; }
.gwssec-title { font-size: 26px; font-weight: 700; line-height: 1.35; margin-bottom: 18px; font-family: var(--font-heading); color: #fff; }
.gwssec-why  { background: var(--galaxy-navy-deep); }
.gwssec-svc  { background: var(--galaxy-navy-mid); }
.gwssec-test { background: var(--galaxy-navy); }
.gwssec-about{ background: var(--galaxy-navy-mid); }

/* Why grid */
.gwswhy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gwswhy-card { background: var(--galaxy-navy); border: 1px solid rgba(91,184,255,0.15); border-radius: 10px; padding: 22px; }
.gwswhy-card i { font-size: 22px; color: var(--galaxy-blue-light); display: block; margin-bottom: 10px; }
.gwswhy-card h4 { font-size: 14px; font-weight: 700; color: var(--galaxy-blue-light); margin-bottom: 6px; }
.gwswhy-card p { font-size: 12px; color: #8aafd6; line-height: 1.7; margin: 0; }

/* Services grid */
.gwssvc-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.gwssvc-card { border-radius: 10px; background: var(--galaxy-navy); border: 1px solid var(--galaxy-border); border-radius: 10px; padding: 16px; text-decoration: none; display: block; transition: border-color .15s; }
.gwssvc-card:hover { border-color: var(--galaxy-blue); text-decoration: none; }
.gwssvc-card.featured { border-color: rgba(93,224,200,.35); background: rgba(7,30,48,.8); }
.gwssvc-card.featured:hover { border-color: var(--galaxy-teal); }
.gwssvc-ftag { font-size: 8.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--galaxy-teal); margin-bottom: 6px; }
.gwssvc-card i { font-size: 22px; color: var(--galaxy-blue-light); display: block; margin-bottom: 8px; }
.gwssvc-card.featured i { color: var(--galaxy-teal); }
.gwssvc-card h4 { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 5px; }
.gwssvc-card p { font-size: 11px; color: #8aafd6; line-height: 1.6; margin: 0 0 10px; }
.gwssvc-link { font-size: 11px; color: var(--galaxy-blue-light); }
.gwssvc-card.featured .gwssvc-link { color: var(--galaxy-teal); }

/* Trust bar */
.gwstrust-bar { background: var(--galaxy-navy-deep); padding: 0; }
.gwstrust-inner { display: grid; grid-template-columns: repeat(4,1fr); max-width: var(--gws-content-width); margin: 0 auto; padding: 24px 24px; }
.gwstrust-item { text-align: center; }
.gwstrust-num { font-size: 32px; font-weight: 700; font-family: var(--font-heading); }
.gwstrust-num.blue { color: var(--galaxy-blue-light); } .gwstrust-num.teal { color: var(--galaxy-teal); } .gwstrust-num.purple { color: var(--galaxy-purple); }
.gwstrust-label { font-size: 10px; color: #5a7a9a; margin-top: 3px; }

/* Testimonials */
.gwstest-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gwstest-card { background: var(--galaxy-navy-mid); border: 1px solid var(--galaxy-border); border-radius: 10px; padding: 16px; }
.gwstest-stars { font-size: 12px; color: #22c55e; margin-bottom: 8px; }
.gwstest-card p { font-size: 12px; color: #8aafd6; line-height: 1.7; font-style: italic; margin: 0 0 10px; }
.gwstest-name { font-size: 11px; font-weight: 700; color: var(--galaxy-blue-light); }
.gwstest-tp-link { text-align: center; margin-top: 16px; font-size: 12px; color: #00b67a; }
.gwstest-tp-link a { color: #00b67a; }

/* About */
.gwsabout-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; }
.gwsabout-text p { font-size: 13px; color: #8aafd6; line-height: 1.85; margin-bottom: 12px; }
.gwsabout-text p strong { color: #c8dff5; }
.gwsabout-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gwsabout-stat { border-radius: 10px; background: var(--galaxy-navy); border: 1px solid var(--galaxy-border); border-radius: 10px; padding: 18px; text-align: center; }
.gwsabout-stat .n { font-size: 26px; font-weight: 700; color: var(--galaxy-blue-light); font-family: var(--font-heading); }
.gwsabout-stat .l { font-size: 10.5px; color: #5a7a9a; margin-top: 3px; }

/* CTA band */
.gwscta-band { padding: 40px calc((100% - var(--gws-content-width)) / 2 + 24px); text-align: center; background: linear-gradient(135deg,#0d2a5e,#1a1040); border-top: 1px solid var(--galaxy-border); }
.gwscta-band h3 { font-size: 26px; font-weight: 700; color: #fff; margin-bottom: 8px; font-family: var(--font-heading); }
.gwscta-band p { font-size: 13px; color: #8aafd6; margin-bottom: 16px; }
.gwscta-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* -- FOOTER ---------------------------------------------------- */
.gwsfooter { background: #040b16; border-top: .5px solid var(--galaxy-border-faint); }
.gwsfooter-main { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 22px; max-width: var(--gws-content-width); margin: 0 auto; padding: 36px 24px 24px; }
.gwsfooter-brand p { font-size: 11px; color: #5a7a9a; line-height: 1.8; margin-top: 10px; max-width: 220px; }
.gwsfooter-col h5 { font-size: 10px; font-weight: 700; color: var(--galaxy-blue-light); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 11px; }
.gwsfooter-col a { display: block; font-size: 12px; color: #5a7a9a; margin-bottom: 7px; text-decoration: none; transition: color .15s; }
.gwsfooter-col a:hover { color: #8aafd6; text-decoration: none; }
.gwsfooter-bottom { padding: 12px calc((100% - var(--gws-content-width)) / 2 + 24px); display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: #3a5a7a; flex-wrap: wrap; gap: 4px; border-top: .5px solid var(--galaxy-border-faint); }
.gwsfooter-bottom a { color: #3a5a7a; text-decoration: none; }
.gwsfooter-bottom a:hover { color: #6a8fb5; }

/* -- CLIENT AREA ----------------------------------------------- */
/* Remove sidebar — full width content */
.sidebar, .sidebar-secondary { display: none !important; }
#main-body .col-lg-4, #main-body .col-xl-3 { display: none !important; }
#main-body .col-lg-8, #main-body .col-xl-9, #main-body .primary-content {
    flex: 0 0 100% !important; max-width: 100% !important;
}
/* Hide WHMCS default topbar — we use our own nav */
.topbar { display: none !important; }
/* Client area base */
.gwsca-wrap { background: var(--galaxy-navy-deep); min-height: 60vh; padding: 28px; max-width: var(--gws-content-width); margin: 0 auto; }
.gwsca-page-title { font-size: 24px; font-weight: 700; color: #fff; margin-bottom: 5px; font-family: var(--font-heading); }
.gwsca-page-sub { font-size: 12px; color: #5a7a9a; margin-bottom: 22px; }

/* WHMCS default elements — Galaxy-styled */
.card { background: var(--galaxy-navy); border: 1px solid var(--galaxy-border); border-radius: 10px; color: #fff; }
.card-header { background: var(--galaxy-navy-mid); border-bottom: .5px solid var(--galaxy-border); color: var(--galaxy-blue-light); font-weight: 600; }
.card-body { color: #8aafd6; }
.card-footer { background: var(--galaxy-navy-mid); border-top: .5px solid var(--galaxy-border); }
.table { color: #fff; background: var(--galaxy-navy); margin: 0; }
.table thead th { background: var(--galaxy-navy-mid); color: var(--galaxy-blue-light); border-bottom: .5px solid var(--galaxy-border); font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.table td, .table th { border-top: .5px solid var(--galaxy-border-faint); color: #8aafd6; vertical-align: middle; }
.table tr:hover td { background: rgba(42,127,212,.05); }
.table-responsive { border-radius: 8px; overflow: hidden; border: .5px solid var(--galaxy-border); }
.alert { border-radius: 8px; font-size: 12px; }
.alert-success { background: rgba(34,197,94,.1); border-color: rgba(34,197,94,.3); color: #22c55e; }
.alert-danger  { background: rgba(239,159,39,.1) !important; border-color: rgba(239,159,39,.35) !important; color: var(--galaxy-gold) !important; }
.alert-warning { background: rgba(239,159,39,.08); border-color: rgba(239,159,39,.3); color: var(--galaxy-gold); }
.alert-info    { background: rgba(91,184,255,.08); border-color: rgba(91,184,255,.2); color: var(--galaxy-blue-light); }
.btn-primary   { background: var(--galaxy-blue) !important; border-color: var(--galaxy-blue) !important; color: #fff !important; font-weight: 600; border-radius: var(--rounding-md); }
.btn-primary:hover { background: var(--primary-lifted) !important; border-color: var(--primary-lifted) !important; }
.btn-default   { background: rgba(42,127,212,.12) !important; border-color: var(--galaxy-border) !important; color: #8aafd6 !important; }
.btn-default:hover { background: rgba(42,127,212,.22) !important; border-color: var(--galaxy-blue) !important; color: #fff !important; }
.btn-success { background: #22c55e !important; border-color: #22c55e !important; color: #fff !important; font-weight: 600; }
.btn-danger  { background: #ef4444 !important; border-color: #ef4444 !important; color: #fff !important; font-weight: 600; }
.form-control { background: var(--galaxy-navy-mid) !important; border: 1px solid var(--galaxy-border) !important; color: #fff !important; border-radius: var(--rounding-md) !important; font-size: 13px; }
.form-control:focus { border-color: var(--galaxy-blue) !important; box-shadow: 0 0 0 2px rgba(42,127,212,.2) !important; background: var(--galaxy-navy-mid) !important; color: #fff !important; }
.form-control::placeholder { color: #3a5a7a !important; }
label { color: #8aafd6; font-size: 12px; font-weight: 500; }
.input-group-text { background: var(--galaxy-navy) !important; border-color: var(--galaxy-border) !important; color: #8aafd6 !important; }
.badge-success { background: rgba(34,197,94,.15); color: #22c55e; border: .5px solid rgba(34,197,94,.3); font-weight: 600; }
.badge-danger  { background: rgba(239,68,68,.15); color: #ef4444; border: .5px solid rgba(239,68,68,.3); font-weight: 600; }
.badge-warning { background: rgba(239,159,39,.12); color: var(--galaxy-gold); border: .5px solid rgba(239,159,39,.3); font-weight: 600; }
.badge-info    { background: rgba(91,184,255,.12); color: var(--galaxy-blue-light); border: .5px solid rgba(91,184,255,.2); font-weight: 600; }
.nav-tabs { border-bottom: 1px solid var(--galaxy-border); }
.nav-tabs .nav-link { color: #6a8fb5; border: none; border-bottom: 2px solid transparent; border-radius: 0; font-size: 12px; padding: 9px 16px; }
.nav-tabs .nav-link:hover { color: #fff; border-bottom-color: rgba(42,127,212,.3); }
.nav-tabs .nav-link.active { color: var(--galaxy-blue-light); border-bottom-color: var(--galaxy-blue); background: transparent; }
.pagination .page-link { background: var(--galaxy-navy); border-color: var(--galaxy-border); color: #8aafd6; }
.pagination .page-link:hover { background: rgba(42,127,212,.1); border-color: var(--galaxy-blue); color: #fff; }
.pagination .page-item.active .page-link { background: var(--galaxy-blue); border-color: var(--galaxy-blue); color: #fff; }
.master-breadcrumb { background: var(--galaxy-navy-mid); border-bottom: .5px solid var(--galaxy-border); padding: 6px 0; }
.breadcrumb { background: transparent; margin: 0; padding: 4px 0; font-size: 11.5px; }
.breadcrumb-item { color: #3a5a7a; }
.breadcrumb-item a { color: var(--galaxy-blue-light); }
.breadcrumb-item a:hover { color: #fff; text-decoration: none; }
.breadcrumb-item.active { color: #8aafd6; }
.breadcrumb-item + .breadcrumb-item::before { color: #1e3050; }
.modal-content { background: var(--galaxy-navy); border: .5px solid var(--galaxy-border); border-radius: 10px; }
.modal-header { border-bottom: .5px solid var(--galaxy-border); }
.modal-header .modal-title { color: #fff; }
.modal-header .close { color: #8aafd6; }
.modal-footer { border-top: .5px solid var(--galaxy-border); }

/* -- RESPONSIVE ------------------------------------------------ */
@media (max-width: 1360px) {
    .gws-util, .gws-header { padding-left: 32px !important; padding-right: 32px !important; }
    .gwssw-banner, .gwsdomain-wrap, .gwscta-band, .gwsfooter-bottom { padding-left: 32px !important; padding-right: 32px !important; }
    .gwssec { padding-left: 32px !important; padding-right: 32px !important; }
}
@media (max-width: 991px) {
    .gws-mobile-toggle { display: block; }
    .gws-nav { display: none; flex-direction: column; position: absolute; top: 100%; left: 0; right: 0; background: var(--galaxy-navy); border-bottom: 1px solid var(--galaxy-border); padding: 8px 0; z-index: 1030; }
    .gws-nav.open { display: flex; }
    .gws-nav-item { width: 100%; }
    .gws-nav-link { width: 100%; border-radius: 0; }
    .gws-dropdown, .gws-mega-nav { position: static; box-shadow: none; border: none; border-radius: 0; width: 100%; background: rgba(0,0,0,.2); }
    .gws-nav-item:hover .gws-dropdown, .gws-nav-item:hover .gws-mega-nav { display: none; }
    .gws-nav-item.open .gws-dropdown, .gws-nav-item.open .gws-mega-nav { display: block; }
    .gws-mega-nav-inner { grid-template-columns: 1fr; }
    .gws-mega-nav-col + .gws-mega-nav-col { border-left: none; border-top: .5px solid var(--galaxy-border); }
    .gws-client-mega { width: calc(100vw - 32px); right: -12px; }
    .gwshero h1 { font-size: 34px; }
    .gwshero-sub { font-size: 14px; }
    .gwshero { padding: 48px 24px 36px; }
    .gwswhy-grid { grid-template-columns: 1fr; }
    .gwssvc-grid { grid-template-columns: 1fr 1fr; }
    .gwstest-grid { grid-template-columns: 1fr; }
    .gwsabout-grid { grid-template-columns: 1fr; }
    .gwsfooter-main { grid-template-columns: 1fr 1fr; gap: 16px; }
    .gwstrust-inner { grid-template-columns: repeat(2,1fr); }
    .gwsstrip-inner { grid-template-columns: repeat(2,1fr); }
    .gwshero-offer-area { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .gws-util { padding-left: 16px !important; padding-right: 16px !important; }
    .gws-header { padding-left: 16px !important; padding-right: 16px !important; }
    .gwssvc-grid { grid-template-columns: 1fr; }
    .gwsfooter-main { grid-template-columns: 1fr; }
    .gwshero { padding: 36px 16px 28px; }
    .gwssec { padding-left: 16px !important; padding-right: 16px !important; }
}

/* -- CLIENT AREA COMPONENTS ----------------------------------- */
.gwsca-wrap { background: var(--galaxy-navy-deep); min-height: 60vh; padding: 28px; max-width: var(--gws-content-width); margin: 0 auto; }
.gwsca-breadcrumb { font-size: 11.5px; color: #3a5a7a; margin-bottom: 20px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.gwsca-breadcrumb a { color: var(--galaxy-blue-light); text-decoration: none; }
.gwsca-breadcrumb a:hover { color: #fff; }
.gwsca-breadcrumb .active { color: #8aafd6; }
.gwsca-welcome { background: linear-gradient(135deg,#0d2255,#0b1c3d); border: 1px solid var(--galaxy-border); border-radius: 10px; padding: 18px 20px; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.gwsca-credit { text-align: right; }
.gwsca-alert-bar { background: rgba(239,159,39,.08); border: .5px solid rgba(239,159,39,.3); border-radius: 8px; padding: 12px 18px; margin-bottom: 14px; display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--galaxy-gold); }
.gwsca-alert-bar strong { margin: 0 4px; }
.gwsca-alert-bar a { color: var(--galaxy-gold); font-weight: 600; margin-left: 8px; text-decoration: underline; }
.gwsca-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 20px; }
.gwsca-stat { background: var(--galaxy-navy); border: 1px solid var(--galaxy-border); border-radius: 10px; padding: 16px 18px; display: flex; align-items: center; gap: 14px; transition: border-color .15s; }
.gwsca-stat:hover { border-color: var(--galaxy-blue); }
.gwsca-stat.alert { border-color: rgba(239,68,68,.3); }
.gwsca-stat.alert .gwsca-stat-num { color: #ef4444; }
.gwsca-stat.info { border-color: rgba(91,184,255,.2); }
.gwsca-stat.info .gwsca-stat-num { color: var(--galaxy-blue-light); }
.gwsca-stat-icon { font-size: 22px; width: 44px; height: 44px; background: var(--galaxy-navy-mid); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--galaxy-blue-light); }
.gwsca-stat.alert .gwsca-stat-icon { color: #ef4444; background: rgba(239,68,68,.1); }
.gwsca-stat.info .gwsca-stat-icon { color: var(--galaxy-blue-light); background: rgba(91,184,255,.08); }
.gwsca-stat-num { font-size: 26px; font-weight: 700; color: #fff; font-family: var(--font-heading); }
.gwsca-stat-lbl { font-size: 11px; color: #5a7a9a; margin-top: 2px; }
.gwsca-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gwsca-panel { background: var(--galaxy-navy); border: 1px solid var(--galaxy-border); border-radius: 10px; overflow: hidden; }
.gwsca-panel-hdr { display: flex; align-items: center; justify-content: space-between; padding: 13px 18px; border-bottom: .5px solid var(--galaxy-border); background: var(--galaxy-navy-mid); }
.gwsca-panel-hdr h4 { font-size: 13px; font-weight: 700; color: var(--galaxy-blue-light); display: flex; align-items: center; gap: 7px; margin: 0; font-family: var(--font-body); }
.gwsca-panel-hdr a { font-size: 11px; color: var(--galaxy-blue-light); text-decoration: none; }
.gwsca-panel-hdr a:hover { color: #fff; }
.gwsca-panel-body { padding: 0; }
.gwsca-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 18px; border-bottom: .5px solid var(--galaxy-border-faint); font-size: 12px; transition: background .12s; }
.gwsca-row:last-child { border-bottom: none; }
.gwsca-row:hover { background: rgba(42,127,212,.05); }
.gwsca-row-title { color: #c8dff5; font-weight: 500; margin-bottom: 2px; }
.gwsca-row-sub { font-size: 10.5px; color: #3a5a7a; }
.gwsca-row-right { text-align: right; flex-shrink: 0; }
.gwsca-row-amount { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 4px; }
.gwsca-badge { padding: 3px 10px; border-radius: 10px; font-size: 10px; font-weight: 600; }
.gwsca-badge.active  { background: rgba(34,197,94,.1); color: #22c55e; border: .5px solid rgba(34,197,94,.2); }
.gwsca-badge.warning { background: rgba(239,159,39,.1); color: var(--galaxy-gold); border: .5px solid rgba(239,159,39,.2); }
.gwsca-badge.info    { background: rgba(91,184,255,.1); color: var(--galaxy-blue-light); border: .5px solid rgba(91,184,255,.2); }
.gwsca-badge.muted   { background: rgba(100,100,120,.1); color: #6a7a9a; border: .5px solid rgba(100,100,120,.2); }
.gwsca-pay-btn { background: var(--galaxy-blue); color: #fff !important; padding: 4px 14px; border-radius: 4px; font-size: 11px; font-weight: 600; cursor: pointer; text-decoration: none; white-space: nowrap; display: inline-block; }
.gwsca-pay-btn:hover { background: var(--primary-lifted); text-decoration: none; color: #fff !important; }
.gwsca-empty { text-align: center; padding: 28px 16px; color: #3a5a7a; }
.gwsca-empty i { font-size: 28px; display: block; margin-bottom: 10px; }
.gwsca-empty p { font-size: 12px; margin-bottom: 10px; }
.gwsca-empty-link { font-size: 11.5px; color: var(--galaxy-blue-light); text-decoration: none; }
.gwsca-quick-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 16px 18px; }
.gwsca-qa-btn { background: var(--galaxy-navy-mid); border: .5px solid var(--galaxy-border); color: #8aafd6 !important; padding: 9px 16px; border-radius: 6px; font-size: 12px; cursor: pointer; display: flex; align-items: center; gap: 7px; transition: all .15s; text-decoration: none; }
.gwsca-qa-btn:hover { border-color: var(--galaxy-blue); color: #fff !important; text-decoration: none; }
.gwsca-qa-btn.gwsca-qa-urgent { background: rgba(239,159,39,.08); border-color: rgba(239,159,39,.3); color: var(--galaxy-gold) !important; }
.gwsca-qa-btn.gwsca-qa-urgent:hover { background: rgba(239,159,39,.15); color: #fff !important; }
@media (max-width: 991px) {
    .gwsca-stats { grid-template-columns: repeat(2,1fr); }
    .gwsca-panels { grid-template-columns: 1fr; }
    .gwsca-wrap { padding: 16px; }
}

/* -- PUBLIC WEBSITE PAGES ------------------------------------- */
.gwspage-wrap { background: var(--galaxy-navy-deep); }
.gwspage-hero { padding: 64px calc((100% - var(--gws-content-width)) / 2 + 24px) 54px; }
/* gwspage-content has NO padding — sections inside control their own *}
.gwspage-content { padding: 0; }
.gwspage-hero-inner { max-width: 700px; }
.gwspage-tag { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--galaxy-blue-light); margin-bottom: 10px; }
.gwspage-title { font-size: 44px; font-weight: 900; color: #fff; line-height: 1.2; margin-bottom: 14px; font-family: var(--font-heading); font-style: italic; }
.gwspage-title em { color: var(--galaxy-blue-light); font-style: normal; }
.gwspage-sub { font-size: 16px; color: #8aafd6; line-height: 1.7; max-width: 560px; margin-bottom: 20px; }
.gwspage-hero-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gwspage-content {}

/* Pricing plans */
.gwsplans-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.gwsplan-card { background: var(--galaxy-navy); border: .5px solid var(--galaxy-border); border-radius: 10px; padding: 24px; position: relative; transition: border-color .15s; }
.gwsplan-card:hover { border-color: var(--galaxy-blue); }
.gwsplan-card.featured { border-color: rgba(42,127,212,.5); background: rgba(13,42,94,.8); }
.gwsplan-badge { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); background: var(--galaxy-blue); color: #fff; font-size: 10px; font-weight: 700; padding: 3px 14px; border-radius: 10px; white-space: nowrap; }
.gwsplan-name { font-size: 16px; font-weight: 700; color: #fff; margin-bottom: 10px; font-family: var(--font-heading); }
.gwsplan-price { display: flex; align-items: baseline; gap: 3px; margin-bottom: 16px; }
.gwsplan-amount { font-size: 32px; font-weight: 900; color: #fff; font-family: var(--font-heading); }
.gwsplan-card.featured .gwsplan-amount { color: var(--galaxy-blue-light); }
.gwsplan-per { font-size: 14px; color: #5a7a9a; }
.gwsplan-desc { font-size: 12px; color: #8aafd6; margin-bottom: 16px; line-height: 1.6; }
.gwsplan-features { margin-bottom: 20px; }
.gwsplan-feat { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #8aafd6; padding: 5px 0; border-bottom: .5px solid var(--galaxy-border-faint); }
.gwsplan-feat:last-child { border-bottom: none; }
.gwsplan-feat i { color: var(--galaxy-blue-light); width: 14px; text-align: center; flex-shrink: 0; }
.gwsplan-btn { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 11px 20px; border-radius: 6px; font-size: 13px; font-weight: 700; cursor: pointer; border: .5px solid rgba(42,127,212,.4); color: var(--galaxy-blue-light) !important; text-decoration: none; background: transparent; transition: all .15s; }
.gwsplan-btn:hover { background: rgba(42,127,212,.12); color: #fff !important; text-decoration: none; }
.gwsplan-btn.featured { background: var(--galaxy-blue); color: #fff !important; border-color: var(--galaxy-blue); }
.gwsplan-btn.featured:hover { background: var(--primary-lifted); }

/* Policy pages */
.gwspolicy-body { font-size: 13px; color: #8aafd6; line-height: 1.85; }
.gwspolicy-body h2 { font-size: 16px; font-weight: 700; color: var(--galaxy-blue-light); margin: 24px 0 8px; font-family: var(--font-heading); font-style: normal; }
.gwspolicy-body p { margin-bottom: 12px; }

/* Auth pages */
.gwsauth-wrap { display: flex; align-items: flex-start; justify-content: center; padding: 40px 24px 60px; min-height: 60vh; background: var(--galaxy-navy-deep); }
.gwsauth-box { background: var(--galaxy-navy); border: .5px solid var(--galaxy-border); border-radius: 12px; padding: 32px; width: 100%; max-width: 440px; }
.gwsauth-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.gwsauth-title { font-size: 22px; font-weight: 700; color: #fff; margin-bottom: 6px; font-family: var(--font-heading); }
.gwsauth-sub { font-size: 12.5px; color: #5a7a9a; margin-bottom: 22px; }
.gwsauth-sub a { color: var(--galaxy-blue-light); }
.gwsauth-field { margin-bottom: 14px; }
.gwsauth-field label { display: block; font-size: 12px; font-weight: 500; color: #8aafd6; margin-bottom: 5px; }
.gwsauth-btn { width: 100%; background: var(--galaxy-blue); color: #fff !important; padding: 12px 20px; border-radius: 6px; font-size: 14px; font-weight: 700; cursor: pointer; border: none; display: flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; transition: background .15s; }
.gwsauth-btn:hover { background: var(--primary-lifted); text-decoration: none; color: #fff !important; }
.gwsauth-links { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: 12px; color: #5a7a9a; justify-content: center; flex-wrap: wrap; }
.gwsauth-links a { color: var(--galaxy-blue-light); text-decoration: none; }
.gwsauth-links a:hover { color: #fff; }

@media (max-width: 1360px) {
    .gwspage-hero { padding-left: 32px !important; padding-right: 32px !important; }
}
@media (max-width: 991px) {
    .gwspage-title { font-size: 30px; }
    .gwspage-sub { font-size: 14px; }
    .gwsplans-grid { grid-template-columns: 1fr; }
}

/* -- BREADCRUMB — client area only, hidden on public pages --- */
/* Hide breadcrumb on all non-client-area pages to remove the gap */
.master-breadcrumb {
    display: none;
}
/* Only show on actual client area pages */
.gwsca-breadcrumb-visible .master-breadcrumb {
    display: block;
}

/* Remove any top gap on public inner page heroes */
.gwspage-wrap {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.gwspage-hero {
    margin-top: 0 !important;
}

/* Ensure no gap between sticky header and page content */
#main-body {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* -- GAP FIX — space between sticky header and page content --- */
/* The sticky util bar + main header together are ~33px + ~74px = ~107px
   Page content needs to start immediately below, no extra gap */
#main-body {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
/* Remove any top margin WHMCS theme.min.css adds to the body content area */
.primary-content > .gwspage-wrap:first-child,
.primary-content > .gwsca-wrap:first-child,
.primary-content > .gwsauth-wrap:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
/* The script tag injected by header.tpl before page content adds a tiny gap */
.primary-content > script:first-child + .gwspage-wrap,
.primary-content > script:first-child + .gwsca-wrap {
    margin-top: 0 !important;
}

/* -- NAV SEPARATOR — divides prospective/existing client sections -- */
/* Adds a subtle vertical line before Support to signal the split */
.gws-nav-client-separator {
    width: 1px;
    height: 20px;
    background: rgba(255,255,255,0.1);
    margin: 0 6px;
    align-self: center;
    flex-shrink: 0;
}
/* Always hidden in mobile nav (open or closed) */
.gws-nav.open .gws-nav-desktop-only,
.gws-nav-desktop-only { display: none; }
@media (min-width: 992px) {
    .gws-nav-desktop-only { display: flex; }
}

/* -- DROPDOWN SIZE BOOST --------------------------------------- */
.gws-dd-text h4 { font-size: 14px !important; }
.gws-dd-text p  { font-size: 12px !important; color: #7a9ab8 !important; }
.gws-dd-icon    { width: 36px !important; height: 36px !important; }
.gws-dd-icon i  { font-size: 15px !important; }
.gws-dd-item    { padding: 10px 11px !important; gap: 12px !important; }
.gws-mega-nav-item h4 { font-size: 13px !important; }
.gws-mega-nav-item p  { font-size: 11.5px !important; color: #7a9ab8 !important; }
.gws-mega-nav-item    { padding: 8px 7px !important; gap: 10px !important; }
.gws-mega-nav-item i  { font-size: 15px !important; }
.gws-support-hdr      { padding: 12px 12px 10px !important; }

/* Support dropdown — phone moved to bottom, smaller */
.gws-support-phone-small {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    font-size: 11px;
    color: #5a7a9a;
}
.gws-support-phone-small i { color: #5bb8ff; font-size: 11px; }
.gws-support-phone-small a {
    color: #8aafd6;
    text-decoration: none;
    font-weight: 600;
}
.gws-support-phone-small a:hover { color: #fff; }
.gws-support-phone-small span { color: #3a5a7a; }

/* -- RETURN TO ADMIN TAB --------------------------------------- */
/* Styled as a tab on the right edge, slides out on hover */
/* Handled via inline style on the element — no extra CSS needed */
/* Hide old WHMCS btn-return-to-admin if it appears anywhere */
.btn-return-to-admin { display: none !important; }

/* -- RETURN TO ADMIN — more visible --------------------------- */
/* Larger tab, easier to grab */

/* -- SOLUTIONS MEGA NAV — left aligned since Solutions is first item -- */
.gws-nav-solutions-item .gws-mega-nav {
    left: 0 !important;
    right: auto !important;
}

/* -- NAV BOTTOM GAP FIX ---------------------------------------- */
/* Remove any bottom border/padding gap on the header */
#header {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
.header {
    margin-bottom: 0 !important;
}
/* Ensure page content sits flush below sticky header */
section#main-body {
    margin-top: 0 !important;
}

/* -- CLIENT LOGIN — styled as a button in the nav ------------- */
.gws-nav-client-btn {
    background: var(--galaxy-blue) !important;
    color: #fff !important;
    border-radius: 5px !important;
    padding: 8px 18px !important;
    font-weight: 600 !important;
    border: 1.5px solid var(--galaxy-blue) !important;
    margin-left: 4px !important;
}
.gws-nav-client-btn:hover {
    background: var(--primary-lifted) !important;
    color: #fff !important;
    border-color: var(--primary-lifted) !important;
}

/* -- POLICY PAGES — ensure content has proper left padding ---- */
.gwspage-content {
    padding: 32px calc((100% - var(--gws-content-width)) / 2 + 24px) 48px;
}
/* Policy body text */
.gwspolicy-body {
    padding-top: 8px;
}

/* Switch banner is now direct child of gwspage-wrap, full width naturally */

/* -- CLIENT DASHBOARD BUTTON — nav ---------------------------- */
.gws-nav-client-btn {
    background: var(--galaxy-blue) !important;
    color: #fff !important;
    border-radius: 5px !important;
    padding: 8px 18px !important;
    font-weight: 600 !important;
    margin-left: 4px !important;
    letter-spacing: 0.1px !important;
}
.gws-nav-client-btn:hover {
    background: var(--primary-lifted) !important;
    color: #fff !important;
}

/* 4-column plan grid on wide screens */
@media (max-width: 1200px) {
    .gwsplans-grid[style*="repeat(4"] {
        grid-template-columns: repeat(2,1fr) !important;
    }
}
@media (max-width: 700px) {
    .gwsplans-grid[style*="repeat(4"] {
        grid-template-columns: 1fr !important;
    }
}

/* -- GWSPAGE CONTENT RESUME (after full-width banner) --------- */
/* Section that resumes after a full-width element like switch banner */
.gwspage-content-resume {
    background: var(--galaxy-navy-deep);
}
.gwspage-content-resume .gwssec {
    padding: 40px calc((100% - var(--gws-content-width)) / 2 + 24px);
}
@media (max-width: 1360px) {
    .gwspage-content-resume .gwssec { padding-left: 32px !important; padding-right: 32px !important; }
}

/* -- NETWORK ISSUE ALERT BANNER ------------------------------- */
.gws-network-alert {
    width: 100%;
    padding: 10px calc((100% - var(--gws-content-width)) / 2 + 24px);
    display: flex;
    align-items: center;
}
.gws-network-alert-issue {
    background: rgba(239,159,39,.12);
    border-bottom: 1px solid rgba(239,159,39,.3);
}
.gws-network-alert-scheduled {
    background: rgba(91,184,255,.08);
    border-bottom: 1px solid rgba(91,184,255,.2);
}
.gws-network-alert-inner {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    flex-wrap: wrap;
}
.gws-network-alert-issue .gws-network-alert-inner { color: var(--galaxy-gold); }
.gws-network-alert-scheduled .gws-network-alert-inner { color: var(--galaxy-blue-light); }
.gws-network-alert-inner i { font-size: 14px; flex-shrink: 0; }
.gws-network-alert-link {
    font-weight: 600;
    text-decoration: none;
    margin-left: 8px;
    white-space: nowrap;
    padding: 3px 12px;
    border-radius: 4px;
    border: 1px solid currentColor;
    font-size: 12px;
}
.gws-network-alert-issue .gws-network-alert-link { color: var(--galaxy-gold) !important; }
.gws-network-alert-scheduled .gws-network-alert-link { color: var(--galaxy-blue-light) !important; }
.gws-network-alert-link:hover { opacity: 0.8; text-decoration: none; }

/* -- UTILITY BAR — middle invoice alert ----------------------- */
.gws-util {
    justify-content: space-between;
}
.gws-util-alert {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--galaxy-gold) !important;
    text-decoration: none !important;
    background: rgba(239,159,39,.08);
    border: .5px solid rgba(239,159,39,.25);
    border-radius: 4px;
    padding: 3px 12px;
    white-space: nowrap;
}
.gws-util-alert:hover {
    background: rgba(239,159,39,.15);
    text-decoration: none !important;
}
.gws-util-alert i { font-size: 11px; }
.gws-util-alert-cta {
    font-size: 10.5px;
    opacity: 0.8;
    margin-left: 2px;
}

/* -- SUPPORT DROPDOWN — incident header ----------------------- */
.gws-support-incident-hdr {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 12px;
    background: rgba(239,159,39,.08);
    border-bottom: .5px solid rgba(239,159,39,.25);
    color: var(--galaxy-gold);
    font-size: 12px;
}
.gws-support-incident-hdr i {
    font-size: 14px;
    flex-shrink: 0;
    margin-top: 1px;
}
.gws-support-incident-hdr a { color: var(--galaxy-gold) !important; }

/* -- STATUS INCIDENT BUTTON — utility bar --------------------- */
.gws-status-incident-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(239,159,39,.12);
    border: 1px solid rgba(239,159,39,.35);
    color: var(--galaxy-gold) !important;
    font-size: 10.5px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 3px;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background .15s;
    line-height: 1.4;
}
.gws-status-incident-btn:hover {
    background: rgba(239,159,39,.22);
    text-decoration: none !important;
}
.gws-status-incident-btn i {
    font-size: 10px;
}

/* --------------------------------------------------------------
   CONTACT PAGE LAYOUT
-------------------------------------------------------------- */
.gws-contact-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 40px;
    align-items: start;
}
.gws-contact-name-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

/* --------------------------------------------------------------
   MOBILE — max-width: 768px
-------------------------------------------------------------- */
@media (max-width: 768px) {

    /* -- Utility bar — compact on mobile -- */
    .gws-util {
        padding: 4px 12px !important;
        gap: 6px !important;
        flex-wrap: nowrap !important;
    }
    /* Hide "Rated excellent" italic text and the divider after it */
    .gws-util-left > span:first-child { display: none !important; }
    .gws-util-left > .gws-util-divider:first-of-type { display: none !important; }
    /* Shrink review badges but keep score + label text */
    .gws-review { font-size: 9.5px !important; gap: 2px !important; }
    /* Keep status text visible */
    #gws-status-text { font-size: 10px !important; }
    .gws-status-incident-btn { font-size: 9px !important; padding: 2px 6px !important; }
    /* Show phone/contact but smaller, hide "Open now" suffix */
    .gws-phone { font-size: 10px !important; }
    .gws-phone > span { display: none !important; }
    /* Invoice alert — hide on mobile */
    .gws-util-alert { display: none !important; }
    /* Welcome + logout on mobile */
    .gws-util-left strong { font-size: 10px !important; }
    .gws-util-logout-btn { font-size: 9.5px !important; padding: 2px 7px !important; }

    /* -- Contact page -- */
    .gws-contact-layout {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
    .gws-contact-name-row {
        grid-template-columns: 1fr !important;
    }
    .gws-contact-info-col {
        margin-top: 32px;
    }

    /* -- gwssec grids on mobile -- */
    .gwssec section > div,
    .gwspage-content .gwsca-panel { overflow-x: hidden; }

    /* -- Client sub-nav -- */
    .gws-csn-inner {
        overflow-x: auto !important;
        scrollbar-width: none !important;
    }
    .gws-csn-inner::-webkit-scrollbar { display: none !important; }
    .gws-csn-item { font-size: 11px !important; padding: 8px 10px !important; white-space: nowrap; }

    /* -- Hero -- */
    .gwshero { padding: 36px 16px 28px !important; }
    .gwshero h1 { font-size: 28px !important; }
    .gwshero-sub { font-size: 13px !important; }

    /* -- Sections -- */
    .gwssec { padding-left: 16px !important; padding-right: 16px !important; }
    .gwspage-hero { padding-left: 16px !important; padding-right: 16px !important; }
}

/* --------------------------------------------------------------
   TABLET — max-width: 991px
-------------------------------------------------------------- */
@media (max-width: 991px) {
    /* Nav separator — hide in mobile burger menu */
    .gws-nav-desktop-only { display: none !important; }

    /* Contact layout stacks at tablet too */
    .gws-contact-layout { grid-template-columns: 1fr !important; }
}

/* -- Rocket canvas — no layout shifts -- */
canvas.gwsc-stars, canvas.gwsc-rocket { will-change: contents; }

/* -- UTIL LOGOUT BUTTON ---------------------------------------- */
.gws-util-logout-btn {
    font-size: 11px;
    color: #c8dff5 !important;
    text-decoration: none !important;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border: 1px solid rgba(200,223,245,0.25);
    border-radius: 4px;
    transition: all .15s;
    white-space: nowrap;
}
.gws-util-logout-btn:hover {
    color: #fff !important;
    border-color: rgba(200,223,245,0.5);
    background: rgba(200,223,245,0.08);
    text-decoration: none !important;
}

/* --------------------------------------------------------------
   NEXUS-BASE CLIENT AREA PAGES — ensure dark theme throughout
   These rules target Bootstrap/nexus elements that appear in
   wrapped nexus pages (details, contacts, security, quotes etc)
-------------------------------------------------------------- */

/* Cards — nexus uses .card extensively */
.gwsca-wrap .card {
    background: var(--galaxy-navy) !important;
    border: .5px solid var(--galaxy-border) !important;
    border-radius: 9px !important;
    color: #8aafd6 !important;
    margin-bottom: 16px;
}
.gwsca-wrap .card-body { 
    background: var(--galaxy-navy) !important; 
    color: #8aafd6 !important;
    padding: 20px 22px !important;
}
.gwsca-wrap .card-header,
.gwsca-wrap .card-title {
    background: var(--galaxy-navy-mid) !important;
    color: var(--galaxy-blue-light) !important;
    border-bottom: .5px solid var(--galaxy-border) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    padding: 13px 18px !important;
    margin-bottom: 16px !important;
}
.gwsca-wrap h3.card-title {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
}
.gwsca-wrap .card-footer {
    background: var(--galaxy-navy-mid) !important;
    border-top: .5px solid var(--galaxy-border) !important;
    color: #6a8fb5 !important;
}

/* Form elements in nexus pages */
.gwsca-wrap .col-form-label,
.gwsca-wrap label { 
    color: #8aafd6 !important; 
    font-size: 12px !important;
    font-weight: 500 !important;
}
.gwsca-wrap p { color: #8aafd6 !important; }
.gwsca-wrap small { color: #6a8fb5 !important; }
.gwsca-wrap a { color: var(--galaxy-blue-light) !important; }
.gwsca-wrap a:hover { color: #fff !important; }

/* Select dropdowns — dark */
.gwsca-wrap select.form-control option {
    background: var(--galaxy-navy-mid) !important;
    color: #fff !important;
}
.gwsca-wrap .custom-select {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #fff !important;
}

/* Checkboxes and radio labels */
.gwsca-wrap .form-check,
.gwsca-wrap .form-check label,
.gwsca-wrap .controls label {
    color: #8aafd6 !important;
    font-size: 12px !important;
}
.gwsca-wrap .toggle-switch-success { accent-color: var(--galaxy-blue); }

/* Alert blocks in nexus pages */
.gwsca-wrap .alert { 
    border-radius: 8px !important; 
    font-size: 12px !important;
}
.gwsca-wrap .alert-info {
    background: rgba(91,184,255,.08) !important;
    border-color: rgba(91,184,255,.2) !important;
    color: var(--galaxy-blue-light) !important;
}
.gwsca-wrap .alert-success {
    background: rgba(34,197,94,.08) !important;
    border-color: rgba(34,197,94,.3) !important;
    color: #22c55e !important;
}
.gwsca-wrap .alert-warning {
    background: rgba(239,159,39,.08) !important;
    border-color: rgba(239,159,39,.3) !important;
    color: var(--galaxy-gold) !important;
}
.gwsca-wrap .alert-danger {
    background: rgba(239,159,39,.1) !important;
    border-color: rgba(239,159,39,.35) !important;
    color: var(--galaxy-gold) !important;
}

/* Input group text (icons in input prepend) */
.gwsca-wrap .input-group-text {
    background: var(--galaxy-navy) !important;
    border-color: var(--galaxy-border) !important;
    color: #5bb8ff !important;
}

/* Buttons in nexus pages */
.gwsca-wrap .btn-primary {
    background: var(--galaxy-blue) !important;
    border-color: var(--galaxy-blue) !important;
    color: #fff !important;
    font-weight: 600 !important;
}
.gwsca-wrap .btn-default {
    background: rgba(42,127,212,.1) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .btn-default:hover {
    background: rgba(42,127,212,.2) !important;
    color: #fff !important;
}
.gwsca-wrap .btn-danger {
    background: rgba(239,68,68,.15) !important;
    border-color: rgba(239,68,68,.4) !important;
    color: #ef4444 !important;
}
.gwsca-wrap .btn-success {
    background: rgba(34,197,94,.15) !important;
    border-color: rgba(34,197,94,.4) !important;
    color: #22c55e !important;
}

/* Text colours */
.gwsca-wrap .text-muted { color: #5a7a9a !important; }
.gwsca-wrap h1,.gwsca-wrap h2,.gwsca-wrap h3,
.gwsca-wrap h4,.gwsca-wrap h5,.gwsca-wrap h6 {
    color: #fff !important;
}

/* Data tables in nexus pages */
.gwsca-wrap .table-hover tbody tr:hover {
    background: rgba(42,127,212,.05) !important;
}
.gwsca-wrap .table th { 
    background: var(--galaxy-navy-mid) !important;
    color: var(--galaxy-blue-light) !important;
}
.gwsca-wrap .table td { color: #8aafd6 !important; }

/* Quotes page — white box fix */
.gwsca-wrap .quote-items,
.gwsca-wrap .quote-total {
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
}

/* Contact selector dropdown — white box fix */
.gwsca-wrap .alert-block,
.gwsca-wrap .alert-info.d-flex {
    background: rgba(91,184,255,.06) !important;
    border-color: rgba(91,184,255,.2) !important;
    color: #8aafd6 !important;
}

/* Marketing opt-in / mailing list toggle */
.gwsca-wrap .toggle-switch-success + label,
.gwsca-wrap [data-on-text] + label,
.gwsca-wrap .no-icheck + label {
    color: #8aafd6 !important;
}
/* The on/off text for toggle switches */
.gwsca-wrap .bootstrap-switch .bootstrap-switch-off .bootstrap-switch-label {
    background: var(--galaxy-navy-mid) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .bootstrap-switch-container { 
    background: var(--galaxy-navy-mid) !important; 
}

/* CSN inner — more spacing */
.gws-csn-inner { gap: 0 !important; }
.gws-csn-item { padding: 10px 18px !important; }
.gws-csn-wrap .gws-csn-item { padding: 10px 18px !important; }

/* Responsive contact info col gap */
.gws-contact-info-col { margin-top: 0; }
@media (max-width: 991px) {
    .gws-contact-info-col { margin-top: 28px; }
}

/* --------------------------------------------------------------
   DATATABLES — dark theme for nexus list pages
   (quotes, invoices, domains, services etc)
-------------------------------------------------------------- */
.gwsca-wrap .dataTables_wrapper,
.gwsca-wrap .dataTables_wrapper * { color: #8aafd6 !important; }
.gwsca-wrap table.dataTable { background: var(--galaxy-navy) !important; }
.gwsca-wrap table.dataTable td,
.gwsca-wrap table.dataTable th { 
    background: var(--galaxy-navy) !important; 
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap table.dataTable thead th {
    background: var(--galaxy-navy-mid) !important;
    color: var(--galaxy-blue-light) !important;
}
.gwsca-wrap table.dataTable tbody tr:hover td {
    background: rgba(42,127,212,.05) !important;
}
/* No records found row */
.gwsca-wrap table.dataTable tbody tr td.dataTables_empty {
    background: var(--galaxy-navy) !important;
    color: #5a7a9a !important;
    text-align: center;
    padding: 24px !important;
}
/* Pagination buttons */
/* Length select + search input */
.gwsca-wrap .dataTables_length select,
.gwsca-wrap .dataTables_filter input {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #fff !important;
    border-radius: 4px !important;
    padding: 4px 8px !important;
}
.gwsca-wrap .dataTables_info { color: #5a7a9a !important; font-size: 12px !important; }

/* Table-container white background fix */
.gwsca-wrap .table-container { background: transparent !important; }
.gwsca-wrap .table-container table { background: var(--galaxy-navy) !important; }

/* Status labels in tables */
.gwsca-wrap .label { border-radius: 4px; padding: 2px 8px; font-size: 11px; font-weight: 600; }
.gwsca-wrap .status-active   { background: rgba(34,197,94,.15); color: #22c55e !important; }
.gwsca-wrap .status-pending  { background: rgba(239,159,39,.12); color: var(--galaxy-gold) !important; }
.gwsca-wrap .status-cancelled,
.gwsca-wrap .status-terminated { background: rgba(239,68,68,.12); color: #ef4444 !important; }
.gwsca-wrap .status-delivered { background: rgba(91,184,255,.12); color: var(--galaxy-blue-light) !important; }

/* Prev/next link buttons */
.gwsca-wrap .pager a,
.gwsca-wrap .pagination-next a,
.gwsca-wrap .pagination-prev a {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}

/* -- DataTables prev/next and pagination — exhaustive fix -- */

/* -- BOOTSTRAP TOGGLE SWITCH — dark theme --------------------- */
.bootstrap-switch {
    border-color: var(--galaxy-border) !important;
    border-radius: 6px !important;
    background: var(--galaxy-navy-mid) !important;
}
.bootstrap-switch .bootstrap-switch-container { background: transparent !important; }
.bootstrap-switch .bootstrap-switch-handle-on,
.bootstrap-switch .bootstrap-switch-handle-off {
    padding: 3px 10px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success {
    background: var(--galaxy-blue) !important;
    color: #fff !important;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
}
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,
.bootstrap-switch .bootstrap-switch-handle-off {
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
}
.bootstrap-switch .bootstrap-switch-label {
    background: var(--galaxy-navy-mid) !important;
    color: #8aafd6 !important;
    border-left: 1px solid var(--galaxy-border) !important;
    border-right: 1px solid var(--galaxy-border) !important;
}
/* Simple checkbox toggles (non-bootstrap-switch) */
.gwsca-wrap input[type="checkbox"].toggle-switch-success {
    accent-color: var(--galaxy-blue);
    width: 16px;
    height: 16px;
}

/* -- ALERT COLOURS — standardise to amber for warnings/errors -- */
/* Override red alerts to amber throughout client area */
.gwsca-wrap .alert-danger,
.gwsauth-wrap .alert-danger,
.alert-danger {
    background: rgba(239,159,39,.1) !important;
    border-color: rgba(239,159,39,.35) !important;
    color: var(--galaxy-gold) !important;
}
.gwsca-wrap .alert-danger a,
.gwsauth-wrap .alert-danger a {
    color: var(--galaxy-gold) !important;
    text-decoration: underline;
}
/* Keep success green */
.gwsca-wrap .alert-success,
.gwsauth-wrap .alert-success {
    background: rgba(34,197,94,.08) !important;
    border-color: rgba(34,197,94,.3) !important;
    color: #22c55e !important;
}
/* Info stays blue */
.gwsca-wrap .alert-info,
.gwsauth-wrap .alert-info {
    background: rgba(91,184,255,.08) !important;
    border-color: rgba(91,184,255,.2) !important;
    color: var(--galaxy-blue-light) !important;
}
/* Warning amber */
.gwsca-wrap .alert-warning,
.gwsauth-wrap .alert-warning {
    background: rgba(239,159,39,.08) !important;
    border-color: rgba(239,159,39,.3) !important;
    color: var(--galaxy-gold) !important;
}

/* -- MEGA MENU LOGOUT — match utility bar style --------------- */
.gws-mega-footer .gws-util-logout-btn {
    font-size: 12px !important;
    padding: 4px 12px !important;
}

/* -- FILE INPUT — style Choose File button --------------------- */
.gwsca-wrap input[type="file"] {
    color: #8aafd6 !important;
    font-size: 13px;
}
.gwsca-wrap input[type="file"]::file-selector-button {
    background: var(--galaxy-navy-mid) !important;
    border: 1px solid var(--galaxy-border) !important;
    color: #8aafd6 !important;
    border-radius: 4px !important;
    padding: 4px 12px !important;
    font-size: 12px !important;
    cursor: pointer !important;
    margin-right: 10px !important;
    transition: all .15s !important;
}
.gwsca-wrap input[type="file"]::file-selector-button:hover {
    background: rgba(42,127,212,.2) !important;
    color: #fff !important;
    border-color: var(--galaxy-blue) !important;
}
/* Ticket form card styling */
.gwsca-wrap .extra-padding { padding: 28px !important; }

/* -- TICKET SUBMIT FORM — editor + attachment styling ---------- */
/* EasyMDE / markdown editor — dark theme */
.gwsca-wrap .EasyMDEContainer .CodeMirror {
    background: var(--galaxy-navy-mid) !important;
    color: #c8dff5 !important;
    border: 1px solid var(--galaxy-border) !important;
    border-top: none !important;
}
.gwsca-wrap .EasyMDEContainer .CodeMirror-scroll {
    background: var(--galaxy-navy-mid) !important;
}
.gwsca-wrap .EasyMDEContainer .CodeMirror-cursor {
    border-left-color: #fff !important;
}
.gwsca-wrap .EasyMDEContainer .CodeMirror-selected {
    background: rgba(42,127,212,.3) !important;
}
.gwsca-wrap .editor-toolbar {
    background: var(--galaxy-navy) !important;
    border: 1px solid var(--galaxy-border) !important;
    border-bottom: none !important;
}
.gwsca-wrap .editor-toolbar button {
    color: #8aafd6 !important;
}
.gwsca-wrap .editor-toolbar button:hover,
.gwsca-wrap .editor-toolbar button.active {
    background: rgba(42,127,212,.2) !important;
    border-color: var(--galaxy-border) !important;
    color: #fff !important;
}
.gwsca-wrap .editor-toolbar i.separator {
    border-color: var(--galaxy-border) !important;
}
.gwsca-wrap .editor-statusbar {
    background: var(--galaxy-navy) !important;
    border: 1px solid var(--galaxy-border) !important;
    border-top: none !important;
    color: #5a7a9a !important;
    padding: 4px 10px !important;
}
/* Preview mode */
.gwsca-wrap .EasyMDEContainer .editor-preview {
    background: var(--galaxy-navy-mid) !important;
    color: #8aafd6 !important;
}
/* Attachment row */
.gwsca-wrap .attachment-row,
.gwsca-wrap .fileupload-row {
    background: transparent !important;
    color: #8aafd6 !important;
}
/* Additional information section */
.gwsca-wrap #customfields,
.gwsca-wrap #custom-fields-container,
.gwsca-wrap .custom-fields-section {
    background: transparent !important;
    color: #8aafd6 !important;
}
/* The "Additional Information" heading area */
.gwsca-wrap .ticket-custom-fields {
    background: transparent !important;
}

/* -- EASYMDE TICKET EDITOR — dark theme ----------------------- */
/* EasyMDE replaces textarea with CodeMirror — target that */
.CodeMirror {
    background: var(--galaxy-navy-mid) !important;
    color: #c8dff5 !important;
    border: 1px solid var(--galaxy-border) !important;
    height: auto !important;
    min-height: 200px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
}
.CodeMirror-scroll { background: var(--galaxy-navy-mid) !important; }
.CodeMirror-cursor { border-left: 1px solid #fff !important; }
.CodeMirror-selected,
.CodeMirror-focused .CodeMirror-selected { background: rgba(42,127,212,.3) !important; }
.CodeMirror-line { color: #c8dff5 !important; }
/* Toolbar */
.editor-toolbar {
    background: var(--galaxy-navy) !important;
    border: 1px solid var(--galaxy-border) !important;
    border-bottom-color: var(--galaxy-border) !important;
    opacity: 1 !important;
}
.editor-toolbar button {
    color: #8aafd6 !important;
}
.editor-toolbar button:hover,
.editor-toolbar button.active {
    background: rgba(42,127,212,.25) !important;
    border-color: var(--galaxy-blue) !important;
    color: #fff !important;
}
.editor-toolbar i.separator {
    border-right-color: var(--galaxy-border) !important;
    border-left-color: var(--galaxy-border) !important;
}
/* Status bar */
.editor-statusbar {
    background: var(--galaxy-navy) !important;
    border: 1px solid var(--galaxy-border) !important;
    border-top: none !important;
    color: #5a7a9a !important;
    padding: 4px 10px !important;
    font-size: 11px !important;
}
/* Preview */
.editor-preview, .editor-preview-side {
    background: var(--galaxy-navy-mid) !important;
    color: #8aafd6 !important;
    border-color: var(--galaxy-border) !important;
}
/* EasyMDE container border */
.EasyMDEContainer {
    border: none !important;
}
.EasyMDEContainer .CodeMirror {
    border-top: none !important;
}

/* -- ATTACHMENT INPUT — dark theme ----------------------------- */
/* The attachment row uses a custom styled input */
.gwsca-wrap .input-group > .form-control[readonly],
.gwsca-wrap input[readonly] {
    background: var(--galaxy-navy-mid) !important;
    color: #8aafd6 !important;
    border-color: var(--galaxy-border) !important;
}
.gwsca-wrap .input-group-append .btn,
.gwsca-wrap .btn-file {
    background: var(--galaxy-navy) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .input-group-append .btn:hover {
    background: rgba(42,127,212,.2) !important;
    color: #fff !important;
}
.gwsca-wrap .btn-add-attachment {
    background: rgba(42,127,212,.1) !important;
    border-color: rgba(42,127,212,.3) !important;
    color: var(--galaxy-blue-light) !important;
}
.gwsca-wrap .btn-add-attachment:hover {
    background: rgba(42,127,212,.2) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   CART / ORDERFORM — gwscart-wrap
   Base dark theme for the order process pages
-------------------------------------------------------------- */
.gwscart-wrap {
    max-width: var(--gws-content-width);
    margin: 0 auto;
    padding: 32px 24px 48px;
    color: #8aafd6;
}
.gwscart-title {
    font-family: var(--font-heading);
    font-size: 26px;
    font-weight: 900;
    font-style: italic;
    color: #fff;
    margin-bottom: 24px;
}
/* Cards in cart */
.gwscart-wrap .card {
    background: var(--galaxy-navy) !important;
    border: .5px solid var(--galaxy-border) !important;
    border-radius: 9px !important;
    margin-bottom: 16px;
}
.gwscart-wrap .card-header,
.gwscart-wrap .card-title {
    background: var(--galaxy-navy-mid) !important;
    color: var(--galaxy-blue-light) !important;
    border-bottom: .5px solid var(--galaxy-border) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    padding: 12px 18px !important;
}
.gwscart-wrap .card-body {
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
    padding: 20px !important;
}
/* Form elements */
.gwscart-wrap label { color: #8aafd6 !important; font-size: 12px !important; }
.gwscart-wrap p { color: #8aafd6 !important; }
.gwscart-wrap small, .gwscart-wrap .text-muted { color: #5a7a9a !important; }
.gwscart-wrap h1,.gwscart-wrap h2,.gwscart-wrap h3,
.gwscart-wrap h4,.gwscart-wrap h5 { color: #fff !important; }
.gwscart-wrap a { color: var(--galaxy-blue-light) !important; }
.gwscart-wrap a:hover { color: #fff !important; }
/* Buttons */
.gwscart-wrap .btn-primary {
    background: var(--galaxy-blue) !important;
    border-color: var(--galaxy-blue) !important;
    color: #fff !important;
    font-weight: 600 !important;
}
.gwscart-wrap .btn-primary:hover {
    background: var(--primary-lifted) !important;
    border-color: var(--primary-lifted) !important;
}
.gwscart-wrap .btn-default {
    background: rgba(42,127,212,.1) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
/* Alerts */
.gwscart-wrap .alert-danger {
    background: rgba(239,159,39,.1) !important;
    border-color: rgba(239,159,39,.35) !important;
    color: var(--galaxy-gold) !important;
}
.gwscart-wrap .alert-success {
    background: rgba(34,197,94,.08) !important;
    border-color: rgba(34,197,94,.3) !important;
    color: #22c55e !important;
}
.gwscart-wrap .alert-info {
    background: rgba(91,184,255,.08) !important;
    border-color: rgba(91,184,255,.2) !important;
    color: var(--galaxy-blue-light) !important;
}
/* Tables */
.gwscart-wrap table { color: #8aafd6 !important; }
.gwscart-wrap table th {
    background: var(--galaxy-navy-mid) !important;
    color: var(--galaxy-blue-light) !important;
    border-color: var(--galaxy-border) !important;
}
.gwscart-wrap table td { border-color: var(--galaxy-border) !important; }
.gwscart-wrap table tr:hover td {
    background: rgba(42,127,212,.04) !important;
}
/* Order summary totals */
.gwscart-wrap .order-summary-total,
.gwscart-wrap tfoot td {
    color: #fff !important;
    font-weight: 700 !important;
}
/* Domain search input */
.gwscart-wrap .input-group .form-control {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #fff !important;
}
.gwscart-wrap .input-group .btn {
    border-color: var(--galaxy-border) !important;
}

/* --------------------------------------------------------------
   SUPPORT TICKET PAGES — styling fixes
-------------------------------------------------------------- */

/* -- View ticket — Reply/Close buttons -- */
.gwsca-wrap .ticket-actions .btn-default {
    background: rgba(42,127,212,.12) !important;
    border: 1px solid rgba(42,127,212,.3) !important;
    color: var(--galaxy-blue-light) !important;
    border-radius: 5px !important;
    padding: 6px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}
.gwsca-wrap .ticket-actions .btn-default:hover {
    background: rgba(42,127,212,.25) !important;
    color: #fff !important;
}
.gwsca-wrap .ticket-actions .btn-danger {
    background: rgba(239,68,68,.1) !important;
    border: 1px solid rgba(239,68,68,.3) !important;
    color: #ef4444 !important;
    border-radius: 5px !important;
    padding: 6px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}
.gwsca-wrap .ticket-actions .btn-danger:hover {
    background: rgba(239,68,68,.2) !important;
}
.gwsca-wrap .ticket-actions .btn-success {
    background: rgba(34,197,94,.1) !important;
    border: 1px solid rgba(34,197,94,.3) !important;
    color: #22c55e !important;
    border-radius: 5px !important;
    padding: 6px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

/* -- Ticket message headers (Posted by...) -- */
.gwsca-wrap .ticket-message-header,
.gwsca-wrap .panel-heading {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
    border-radius: 6px 6px 0 0 !important;
    padding: 8px 14px !important;
    font-size: 12px !important;
}
.gwsca-wrap .ticket-message-header strong,
.gwsca-wrap .panel-heading strong { color: #c8dff5 !important; }

/* -- Ticket message body -- */
.gwsca-wrap .panel,
.gwsca-wrap .ticket-message {
    border-color: var(--galaxy-border) !important;
    border-radius: 6px !important;
    margin-bottom: 12px !important;
    background: var(--galaxy-navy) !important;
}
.gwsca-wrap .panel-body,
.gwsca-wrap .ticket-message-body {
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
    padding: 14px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
}

/* -- Ticket info bar (dept/opened/priority) -- */
.gwsca-wrap .view-ticket .card-title { font-size: 15px !important; }
.gwsca-wrap .ticket-info,
.gwsca-wrap .ticket-meta {
    font-size: 12px !important;
    color: #5a7a9a !important;
    padding: 8px 0 12px !important;
    border-bottom: .5px solid var(--galaxy-border) !important;
    margin-bottom: 16px !important;
}
.gwsca-wrap .ticket-info span,
.gwsca-wrap .ticket-meta span { margin-right: 16px !important; }
.gwsca-wrap .ticket-info strong,
.gwsca-wrap .ticket-meta strong { color: #8aafd6 !important; }

/* -- Owner/staff badge -- */
.gwsca-wrap .badge-owner,
.gwsca-wrap .label-success { 
    background: rgba(34,197,94,.15) !important; 
    color: #22c55e !important;
    border-radius: 4px !important;
    padding: 2px 8px !important;
    font-size: 10px !important;
}
.gwsca-wrap .badge-staff,
.gwsca-wrap .label-info {
    background: rgba(91,184,255,.12) !important;
    color: var(--galaxy-blue-light) !important;
    border-radius: 4px !important;
    padding: 2px 8px !important;
    font-size: 10px !important;
}

/* -- Reply section -- */
.gwsca-wrap #ticketReplyContainer .card-header,
.gwsca-wrap .ticket-reply-header {
    background: var(--galaxy-navy-mid) !important;
    color: var(--galaxy-blue-light) !important;
    border-color: var(--galaxy-border) !important;
}

/* -- Ticket list — "Open New Ticket" button -- */
.gwsca-wrap .btn-open-ticket,
.gwsca-wrap a[href*="submitticket"] {
    background: var(--galaxy-blue) !important;
    color: #fff !important;
    border-radius: 5px !important;
    padding: 7px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-bottom: 16px !important;
}
.gwsca-wrap a[href*="submitticket"]:hover {
    background: var(--primary-lifted) !important;
    color: #fff !important;
}

/* -- Ticket status badges -- */
.gwsca-wrap .label-warning,
.gwsca-wrap .badge-warning {
    background: rgba(239,159,39,.15) !important;
    color: var(--galaxy-gold) !important;
    border-radius: 4px !important;
    padding: 2px 8px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}
.gwsca-wrap .label-danger,
.gwsca-wrap .badge-danger {
    background: rgba(239,68,68,.12) !important;
    color: #ef4444 !important;
    border-radius: 4px !important;
    padding: 2px 8px !important;
}

/* -- DataTables pagination alignment fix -- */
.gwsca-wrap .posted-by-name { color: #c8dff5 !important; font-weight: 600 !important; }
.gwsca-wrap .posted-on { color: #6a8fb5 !important; }
.gwsca-wrap .requestor-badge {
    float: right !important;
    font-size: 10px !important;
    padding: 2px 8px !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
}
.gwsca-wrap .requestor-type-owner {
    background: rgba(34,197,94,.15) !important;
    color: #22c55e !important;
}
.gwsca-wrap .requestor-type-staff {
    background: rgba(91,184,255,.12) !important;
    color: var(--galaxy-blue-light) !important;
}

/* -- Ticket reply body -- */
.gwsca-wrap .ticket-reply {
    background: var(--galaxy-navy) !important;
    border: .5px solid var(--galaxy-border) !important;
    border-radius: 6px !important;
    margin-bottom: 12px !important;
    overflow: hidden !important;
}
.gwsca-wrap .ticket-reply .markdown-content,
.gwsca-wrap .ticket-reply .card-body {
    padding: 14px !important;
    color: #8aafd6 !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
    background: var(--galaxy-navy) !important;
}
.gwsca-wrap .ticket-reply.staff {
    border-color: rgba(91,184,255,.2) !important;
}
.gwsca-wrap .ticket-reply.staff .posted-by {
    background: rgba(42,127,212,.08) !important;
}

/* -- Reply card body wrapper -- */
.gwsca-wrap .view-ticket .card-body {
    background: var(--galaxy-navy) !important;
    padding: 0 !important;
}

/* -- Attachments in ticket -- */
.gwsca-wrap .attachments {
    background: var(--galaxy-navy-mid) !important;
    border-top: .5px solid var(--galaxy-border) !important;
    padding: 10px 14px !important;
    font-size: 12px !important;
}
.gwsca-wrap .attachment-list li { color: #8aafd6 !important; }
.gwsca-wrap .attachment-list a { color: var(--galaxy-blue-light) !important; }

/* -- Custom file input (attachment upload) -- */
.gwsca-wrap .custom-file,
.gwsca-wrap .custom-file-input,
.gwsca-wrap .custom-file-label {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .custom-file-label::after {
    background: var(--galaxy-navy) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .attachment-group { margin-bottom: 6px !important; }
.gwsca-wrap .btn-add-more-files,
.gwsca-wrap .file-upload .btn {
    background: rgba(42,127,212,.1) !important;
    border-color: rgba(42,127,212,.3) !important;
    color: var(--galaxy-blue-light) !important;
    font-size: 12px !important;
}

/* -- Reply/Close buttons — inline in card title -- */
.gwsca-wrap .view-ticket .card-title { 
    padding: 14px 18px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 0 !important;
}
.gwsca-wrap .ticket-actions {
    margin-left: auto !important;
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}
.gwsca-wrap .ticket-actions .btn {
    font-size: 12px !important;
    padding: 5px 14px !important;
    border-radius: 5px !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}
.gwsca-wrap .ticket-actions .btn-default {
    background: rgba(42,127,212,.12) !important;
    border-color: rgba(42,127,212,.3) !important;
    color: var(--galaxy-blue-light) !important;
}
.gwsca-wrap .ticket-actions .btn-danger {
    background: rgba(239,68,68,.1) !important;
    border-color: rgba(239,68,68,.3) !important;
    color: #ef4444 !important;
}
.gwsca-wrap .ticket-actions .btn-success {
    background: rgba(34,197,94,.1) !important;
    border-color: rgba(34,197,94,.3) !important;
    color: #22c55e !important;
}

/* -- Reply section card -- */
.gwsca-wrap #ticketReplyContainer {
    margin-top: 16px !important;
}
.gwsca-wrap #ticketReplyContainer .card-header {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: var(--galaxy-blue-light) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
}

/* -- Ticket meta bar (dept/status/priority/date) -- */
.gws-ticket-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 12px;
    color: #6a8fb5;
    padding: 8px 18px 14px;
    border-top: .5px solid var(--galaxy-border);
    margin-top: 8px;
}
.gws-ticket-meta span { display: flex; align-items: center; }
.gws-ticket-meta i { color: #5bb8ff; }

/* --------------------------------------------------------------
   BOOTSTRAP FORM-CONTROL OVERRIDE — dark theme
   theme.min.css sets white backgrounds; override with !important
   Custom.css loads after theme.min.css so this wins
-------------------------------------------------------------- */
.gwsca-wrap .form-control,
.gwsca-wrap textarea.form-control,
.gwsca-wrap input.form-control,
.gwsca-wrap select.form-control {
    background-color: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #fff !important;
}
.gwsca-wrap .form-control:focus,
.gwsca-wrap textarea.form-control:focus,
.gwsca-wrap input.form-control:focus {
    background-color: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-blue) !important;
    color: #fff !important;
    box-shadow: 0 0 0 2px rgba(42,127,212,.2) !important;
}
.gwsca-wrap .form-control::placeholder { color: #4a6a8a !important; }
.gwsca-wrap .form-control:disabled,
.gwsca-wrap .form-control[disabled],
.gwsca-wrap .form-control.disabled {
    background-color: var(--galaxy-navy) !important;
    color: #5a7a9a !important;
    opacity: 1 !important;
}

/* Custom file input */
.gwsca-wrap .custom-file-label,
.gwsca-wrap .custom-file-label::after {
    background-color: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .custom-file-label::after {
    content: "Browse" !important;
    background-color: var(--galaxy-navy) !important;
    border-left-color: var(--galaxy-border) !important;
}

/* Input groups */
.gwsca-wrap .input-group-append .btn,
.gwsca-wrap .input-group-prepend .btn,
.gwsca-wrap .input-group-text {
    background-color: var(--galaxy-navy) !important;
    border-color: var(--galaxy-border) !important;
    color: #8aafd6 !important;
}
.gwsca-wrap .input-group-append .btn:hover {
    background-color: rgba(42,127,212,.2) !important;
    color: #fff !important;
}

/* Select arrow colour */
.gwsca-wrap select.form-control {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%235bb8ff' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    padding-right: 28px !important;
}

/* --------------------------------------------------------------
   VIEW TICKET — targeted fixes from page source analysis
   Exact selectors matching rendered HTML structure
-------------------------------------------------------------- */

/* Main card and all card-body variants */
.gwsca-wrap .card { 
    background: var(--galaxy-navy) !important; 
    border-color: var(--galaxy-border) !important;
}
.gwsca-wrap .card-body,
.gwsca-wrap .card-body.p-3,
.gwsca-wrap div.card-body { 
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
}

/* Posted-by header within each message */
.gwsca-wrap .ticket-reply .posted-by {
    background: var(--galaxy-navy-mid) !important;
    padding: 8px 14px !important;
    font-size: 12px !important;
    color: #8aafd6 !important;
    border-bottom: .5px solid var(--galaxy-border) !important;
}
.gwsca-wrap .posted-by-name { 
    color: #c8dff5 !important; 
    font-weight: 600 !important; 
}
.gwsca-wrap .posted-on { color: #6a8fb5 !important; }

/* Message body */
.gwsca-wrap .ticket-reply .message,
.gwsca-wrap .ticket-reply .message.p-3 {
    background: var(--galaxy-navy) !important;
    color: #8aafd6 !important;
    padding: 14px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
}
.gwsca-wrap .ticket-reply .message p { color: #8aafd6 !important; }
.gwsca-wrap .ticket-reply .message hr { border-color: var(--galaxy-border) !important; }

/* ticket-reply container */
.gwsca-wrap .ticket-reply {
    background: var(--galaxy-navy) !important;
    border: .5px solid var(--galaxy-border) !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    margin-bottom: 2px !important;
}

/* Reply/Close buttons — float-sm-right causes awkward placement
   Override to inline flex */
.gwsca-wrap .card-title {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    background: var(--galaxy-navy-mid) !important;
    padding: 12px 16px !important;
    margin: 0 !important;
    font-size: 14px !important;
    color: #fff !important;
    border-bottom: .5px solid var(--galaxy-border) !important;
}
.gwsca-wrap .ticket-actions,
.gwsca-wrap .ticket-actions.float-sm-right {
    float: none !important;
    margin-left: auto !important;
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}
.gwsca-wrap .ticket-actions .btn.btn-sm {
    font-size: 12px !important;
    padding: 5px 14px !important;
    border-radius: 5px !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    margin-top: 0 !important;
}
.gwsca-wrap .ticket-actions .btn-default.btn-sm {
    background: rgba(42,127,212,.12) !important;
    border: 1px solid rgba(42,127,212,.35) !important;
    color: var(--galaxy-blue-light) !important;
}
.gwsca-wrap .ticket-actions .btn-danger.btn-sm {
    background: rgba(239,68,68,.1) !important;
    border: 1px solid rgba(239,68,68,.3) !important;
    color: #ef4444 !important;
}
/* Remove Bootstrap margin-top on mobile that misaligns buttons */
.gwsca-wrap .mt-3 { margin-top: 0 !important; }
.gwsca-wrap .mt-sm-0 { margin-top: 0 !important; }

/* Reply section card */
.gwsca-wrap #ticketReplyContainer.card {
    margin-top: 16px !important;
    border-color: var(--galaxy-border) !important;
}
.gwsca-wrap #ticketReplyContainer .card-title {
    color: var(--galaxy-blue-light) !important;
    font-size: 14px !important;
}

/* -- Attachment row — Add More gap and height -- */
.gwsca-wrap #btnTicketAttachmentsAdd {
    background: var(--galaxy-navy-mid) !important;
    border: 1px solid var(--galaxy-border) !important;
    color: #8aafd6 !important;
    font-size: 13px !important;
    height: 38px !important;
    padding: 0 14px !important;
    margin-left: 8px !important;
    border-radius: 4px !important;
    white-space: nowrap !important;
}
.gwsca-wrap #btnTicketAttachmentsAdd:hover {
    background: rgba(42,127,212,.2) !important;
    color: #fff !important;
    border-color: var(--galaxy-blue) !important;
}
/* Remove the Bootstrap input-group joining that removes border-radius */
.gwsca-wrap .attachment-group .input-group-append {
    margin-left: 8px !important;
}
.gwsca-wrap .attachment-group {
    flex-wrap: nowrap !important;
    align-items: center !important;
}

/* -- DataTables pagination buttons -- */
.gwsca-wrap .table td,
.gwsca-wrap .table th,
.gwsca-wrap table.dataTable td,
.gwsca-wrap table.dataTable th {
    border-color: var(--galaxy-border) !important;
}

/* -- DataTables pagination — remove white borders, consistent style -- */

/* -- DataTables pagination -- */
.dataTables_paginate { display: flex; align-items: center; gap: 3px; float: right; }
.dataTables_paginate .paginate_button,
.dataTables_paginate .paginate_button.btn,
.dataTables_paginate .paginate_button.btn-default {
    background: var(--galaxy-navy-mid) !important;
    border: 1px solid var(--galaxy-border) !important;
    color: #8aafd6 !important;
    border-radius: 4px !important;
    padding: 4px 12px !important;
    margin: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer !important;
    font-size: 12px !important;
}
.dataTables_paginate .paginate_button:hover,
.dataTables_paginate .paginate_button.btn:hover {
    background: rgba(42,127,212,.25) !important;
    border-color: var(--galaxy-blue) !important;
    color: #fff !important;
    box-shadow: none !important;
}
.dataTables_paginate .paginate_button.current,
.dataTables_paginate .paginate_button.current:hover {
    background: var(--galaxy-navy-mid) !important;
    border-color: var(--galaxy-border) !important;
    color: #fff !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}
.dataTables_paginate .paginate_button.disabled,
.dataTables_paginate .paginate_button.disabled:hover {
    background: var(--galaxy-navy) !important;
    border-color: var(--galaxy-border) !important;
    color: #3a5a7a !important;
    cursor: default !important;
    box-shadow: none !important;
}

/* -- Table borders — restore dark -- */
.gwsca-wrap .table,
.gwsca-wrap table.dataTable {
    border-color: var(--galaxy-border) !important;
}
.gwsca-wrap .table td,
.gwsca-wrap .table th,
.gwsca-wrap table.dataTable td,
.gwsca-wrap table.dataTable th {
    border-color: var(--galaxy-border) !important;
}
.gwsca-wrap table.dataTable thead th {
    border-bottom-color: var(--galaxy-border) !important;
}

/* -- DataTables Bootstrap buttons — override every Bootstrap .btn-default property -- */
.dataTables_paginate > .btn,
.dataTables_paginate > .btn-default,
.dataTables_paginate > .btn.btn-default,
.dataTables_paginate .btn,
.dataTables_paginate .btn-default,
.dataTables_paginate .btn.btn-default,
.dataTables_paginate .paginate_button,
.dataTables_paginate .paginate_button.btn,
.dataTables_paginate .paginate_button.btn-default {
    background-color: #0f2347 !important;
    background-image: none !important;
    border-color: #1a3560 !important;
    color: #8aafd6 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border-radius: 4px !important;
    padding: 4px 12px !important;
    font-size: 12px !important;
    outline: none !important;
}
.dataTables_paginate .btn:hover,
.dataTables_paginate .btn-default:hover,
.dataTables_paginate .paginate_button:hover,
.dataTables_paginate .paginate_button.btn:hover {
    background-color: rgba(42,127,212,.25) !important;
    background-image: none !important;
    border-color: #2a7fd4 !important;
    color: #fff !important;
    box-shadow: none !important;
}
.dataTables_paginate .paginate_button.current,
.dataTables_paginate .paginate_button.btn.current,
.dataTables_paginate .paginate_button.current:hover {
    background-color: #0f2347 !important;
    background-image: none !important;
    border-color: #1a3560 !important;
    color: #fff !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}
.dataTables_paginate .paginate_button.disabled,
.dataTables_paginate .paginate_button.btn.disabled,
.dataTables_paginate .paginate_button.disabled:hover {
    background-color: #060e1f !important;
    background-image: none !important;
    border-color: #1a3560 !important;
    color: #3a5a7a !important;
    box-shadow: none !important;
    cursor: default !important;
}

/* -- DataTables — target the inner <a class="page-link"> -- */
.dataTables_paginate .paginate_button.page-item .page-link,
.dataTables_paginate .page-item .page-link {
    background-color: transparent !important;
    border-color: transparent !important;
    color: #8aafd6 !important;
    box-shadow: none !important;
}
.dataTables_paginate .page-item:hover .page-link {
    background-color: transparent !important;
    color: #fff !important;
}
.dataTables_paginate .page-item.disabled .page-link {
    background-color: transparent !important;
    color: #3a5a7a !important;
}
.dataTables_paginate .page-item.current .page-link,
.dataTables_paginate .paginate_button.current .page-link {
    background-color: transparent !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* -- DataTables pagination spacing -- */
.dataTables_paginate { gap: 4px !important; }
.dataTables_paginate .page-item { margin: 0 2px !important; }

/* -- Pagination text brightness fix -- */
.dataTables_paginate .page-item .page-link { color: #c8dff5 !important; }
.dataTables_paginate .page-item.disabled .page-link { color: #3a5a7a !important; }
.dataTables_paginate .page-item.current .page-link { color: #fff !important; }


/* -- Bootstrap Markdown — colour fixes only, no structural changes -- */
.md-editor { border: 1px solid #1a3560 !important; border-radius: 6px !important; }
.md-editor .md-header.btn-toolbar,
.md-editor > .btn-toolbar {
    background: #071428 !important;
    border-bottom: 1px solid #1a3560 !important;
    border-radius: 6px 6px 0 0 !important;
}
.md-editor .btn-group .btn { color: #c8dff5 !important; }
.md-editor .btn-group .btn:hover { background: rgba(42,127,212,.2) !important; color: #fff !important; }
.md-editor .md-footer { background: #071428 !important; border-top: 1px solid #1a3560 !important; color: #5a7a9a !important; }
.md-editor .md-preview, .md-editor .well { background: var(--galaxy-navy-mid) !important; color: #c8dff5 !important; }
.md-editor .md-fullscreen-controls,
.md-editor .md-controls,
.md-editor .md-control-fullscreen,
.md-editor a.md-control,
div.md-editor div.md-controls,
div.md-editor a.md-control-fullscreen {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* -- Markdown editor — consistent borders on focus -- */
.md-editor .md-input:focus,
.md-editor textarea:focus {
    outline: none !important;
    border-color: #1a3560 !important;
    box-shadow: none !important;
}
.md-editor.active,
.md-editor:focus-within {
    border-color: #1a3560 !important;
    box-shadow: none !important;
}

/* -- View ticket — subject line padding -- */
.gwsca-wrap .view-ticket > .card-body > p {
    padding: 8px 16px !important;
    margin: 0 !important;
}

/* -- DataTables pagination — compact sizing -- */
.dataTables_paginate .paginate_button,
.dataTables_paginate .page-item {
    padding: 0 !important;
    margin: 0 3px !important;
}
.dataTables_paginate .paginate_button .page-link,
.dataTables_paginate .page-link {
    padding: 3px 10px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

/* -- DataTables — hide white column separator -- */
.gwsca-wrap table.dataTable thead th::after,
.gwsca-wrap table.dataTable thead th::before,
.gwsca-wrap table.dataTable thead td::after,
.gwsca-wrap table.dataTable thead td::before {
    color: var(--galaxy-border) !important;
    opacity: 0.4 !important;
}
.gwsca-wrap table.dataTable thead .sorting::after,
.gwsca-wrap table.dataTable thead .sorting_asc::after,
.gwsca-wrap table.dataTable thead .sorting_desc::after {
    color: #5bb8ff !important;
    opacity: 1 !important;
}

/* -- Ticket list — border-left separator colour -- */
.gwsca-wrap .border-left {
    border-left-color: var(--galaxy-border) !important;
}
