/* Shared WHMCS presentation. Original Code Blueprint palette. */
#main-body { font-size: 16px; line-height: 1.6; }
#main-body .card { border-radius: 12px; border: 1px solid #284f7a; }
#main-body .card-header { padding: 18px 20px; border-radius: 11px 11px 0 0; }
#main-body .card-body { padding: 20px; font-size: 16px; line-height: 1.65; }
#main-body .card-body p { font-size: 16px; line-height: 1.65; margin-bottom: 0; }
#main-body .card-body p + p { margin-top: 14px; }
#main-body .card-body:last-child { border-radius: 0 0 11px 11px; }
#main-body .card-footer { padding: 14px 20px; border-radius: 0 0 11px 11px; font-size: 15px; }
#main-body .card .list-group-item { padding: 14px 20px; font-size: 16px; line-height: 1.6; }
#main-body .card .list-group { border-radius: 0; }
#main-body .card > .list-group:last-child { border-radius: 0 0 11px 11px; }
#main-body .card .list-group:not(:last-child) .list-group-item:last-child { border-radius: 0; }
#main-body .card-sidebar .card-title { font-size: 18px; font-weight: 600; line-height: 1.4; }
#main-body .card-sidebar .card-footer .btn { padding: 10px 14px; font-size: 15px; }
#main-body .btn, #main-body input, #main-body select { font-family: inherit; }
#main-body .btn { border-radius: 6px; font-size: 15px; line-height: 1.5; }
#main-body .form-control { font-size: 16px; min-height: 46px; }
/* Shared button system: original blue at rest, original green on interaction. */
body .btn:not(.btn-link):not(.btn-danger),
#header .navbar-nav .btn.nav-link {
 background: #284f7a !important;
 color: #fff !important;
 border-color: #284f7a !important;
 transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
body .btn:not(.btn-link):not(.btn-danger):not(.disabled):not(:disabled):hover,
body .btn:not(.btn-link):not(.btn-danger):not(.disabled):not(:disabled):focus-visible,
#header .navbar-nav .btn.nav-link:hover,
#header .navbar-nav .btn.nav-link:focus-visible {
 background: #28a745 !important;
 color: #000814 !important;
 border-color: #28a745 !important;
 box-shadow: inset 0 0 0 1px #28a745;
}
body .btn:not(.btn-link):not(.btn-danger):not(.disabled):not(:disabled):active,
#header .navbar-nav .btn.nav-link:active {
 background: #28a745 !important;
 color: #000814 !important;
 border-color: #28a745 !important;
 box-shadow: inset 0 2px 4px rgba(0,8,20,.3);
}
body .btn:focus-visible { outline: 2px solid #28a745; outline-offset: 3px; }
body .btn i, body .btn:hover i, body .btn:focus-visible i { color: inherit !important; }
body .btn.disabled, body .btn:disabled { opacity: .55; box-shadow: none; }
@media(prefers-reduced-motion:reduce) { body .btn { transition: none; } }

/* Shared text-button icons follow the label with consistent spacing. */
#main-body .btn:not(.w-hidden):not(.d-none):has(> i) { display: inline-flex; align-items: center; justify-content: center; column-gap: 8px; }
#main-body .btn > i { order: 1; flex-shrink: 0; margin: 0; }
#main-body .btn.btn-block:not(.w-hidden):not(.d-none):has(> i) { display: flex; width: 100%; }

/* Readable panels, forms and supporting text. */
#main-body .card-title { font-size:22px; line-height:1.4; }
#main-body .card-sidebar .card-title { font-size:18px; }
#main-body .card { margin-bottom:24px; }
#main-body .card-body { border-radius:11px; }
#main-body .card-header + .card-body { border-top-left-radius:0; border-top-right-radius:0; }
#main-body .card-body:not(:last-child) { border-bottom-left-radius:0; border-bottom-right-radius:0; }
#main-body .card-body p { padding:0; margin-bottom:14px; }
#main-body .card-body p:last-child { margin-bottom:0; }
#main-body label { font-size:16px; line-height:1.5; color:#ced6e0 !important; }
#main-body .form-group { margin-bottom:22px; }
#main-body .form-control { background:#000814 !important; color:#ececec !important; border:1px solid #284f7a !important; border-radius:6px; font-size:16px; line-height:1.5; }
#main-body .form-control:focus { background:#001d3d !important; border-color:#28a745 !important; box-shadow:0 0 0 2px rgba(40,167,69,.2) !important; }
#main-body .form-control::placeholder { color:#aab9cb; opacity:1; }
#main-body textarea.form-control { min-height:140px; }
#main-body select.form-control { height:auto; }
#main-body .help-block, #main-body .form-text, #main-body .text-muted, #main-body small { font-size:15px; color:#b8c7d8 !important; line-height:1.55; }
#main-body .btn { padding:10px 16px; font-weight:500; }
#main-body .btn.btn-sm, #main-body .btn.btn-xs { padding:8px 12px; font-size:15px; }
#main-body .input-group .form-control { min-width:0; }
#main-body .input-group-append > .btn, #main-body .input-group-btn > .btn { min-height:46px; }
#main-body .btn-danger { background:#a52b3a !important; border-color:#a52b3a !important; color:#fff !important; }
#main-body .btn-danger:hover, #main-body .btn-danger:focus-visible { background:#c63a4b !important; border-color:#c63a4b !important; color:#fff !important; }
/* Native table behavior is retained, including responsive child rows. */
#main-body .table-container { border-radius:12px; }
#main-body table.table { border:1px solid #284f7a !important; border-radius:12px; border-collapse:separate; border-spacing:0; overflow:hidden; font-size:16px; }
#main-body .table th, #main-body .table td { padding:14px 16px; vertical-align:middle; border-color:#284f7a !important; line-height:1.5; }
#main-body .table th { background:#001d3d !important; color:#ececec !important; font-weight:600; }
#main-body .table td { background:#001d3d !important; color:#ececec !important; }
#main-body .table tbody tr:hover > td { background:#06284b !important; }
#main-body .table .label, #main-body .table .badge, #main-body .label.status { font-size:13px; line-height:1.4; padding:5px 9px; border-radius:5px; white-space:nowrap; }
#main-body .status-paid, #main-body .status-active, #main-body .status-completed { background:#28a745 !important; color:#000814 !important; }
#main-body .dataTables_info, #main-body .dataTables_length, #main-body .dataTables_filter, #main-body .dataTables_length label { color:#ced6e0 !important; font-size:15px; }
#main-body .dataTables_filter input { min-height:46px; padding:10px 14px; }
#main-body .dataTables_length select { min-height:44px; min-width:70px; padding:8px; font-size:15px; }
#main-body .pagination .page-link { background:#001d3d; color:#ececec !important; border-color:#284f7a; font-size:15px; padding:10px 14px; }
#main-body .pagination .page-item.active .page-link { background:#284f7a; }
#main-body .pagination .page-item:not(.disabled) .page-link:hover { background:#28a745; color:#000814 !important; }
#main-body .pagination .page-item.disabled .page-link { color:#aab9cb !important; }
#main-body .card-sidebar .badge { background:#284f7a; color:#fff; font-size:13px; min-width:26px; padding:5px 7px; }
#main-body .card-sidebar .list-group-item { border-color:#284f7a; }
/* Alerts retain their meaning without large pale blocks on the dark theme. */
#main-body .alert { background:#001d3d !important; color:#ececec !important; border:1px solid #284f7a; border-left-width:4px; border-radius:8px; padding:16px 20px; font-size:16px; line-height:1.6; }
#main-body .alert-success { border-left-color:#28a745; }
#main-body .alert-warning { border-left-color:#ffc300; }
#main-body .alert-danger { border-left-color:#dc5364; }
#main-body .alert a { color:inherit !important; text-decoration:underline; }
#main-body .alert i { color:inherit !important; }
#main-body .nav-tabs { border-color:#284f7a; gap:4px; }
#main-body .nav-tabs .nav-link { font-size:16px; padding:12px 16px; border-radius:6px 6px 0 0; }
#main-body .nav-tabs .nav-link.active { background:#001d3d; border-color:#284f7a; color:#ececec; }
#main-body .kb-tag-cloud a { font-size:15px !important; line-height:1.8; }
/* Gold remains reserved for purchase actions. */
body #order-standard_cart .btn-checkout, body #order-standard_cart #btnCompleteOrder, body #order-standard_cart .product .btn-order-now {
 background:#ffc300 !important; border-color:#ffc300 !important; color:#000814 !important;
}
body #order-standard_cart .btn-checkout:hover, body #order-standard_cart #btnCompleteOrder:hover, body #order-standard_cart .product .btn-order-now:hover {
 background:#ffd60a !important; border-color:#ffd60a !important; color:#000814 !important;
}
@media(max-width:767px) {
 #main-body .card-header, #main-body .card-body { padding:18px; }
 #main-body .card-title { font-size:20px; }
 #main-body .table th, #main-body .table td { padding:12px 10px; font-size:15px; }
 #main-body .dataTables_filter, #main-body .dataTables_info { text-align:left; }
 #main-body .dataTables_filter input { max-width:100%; }
 #main-body .pagination .page-link { padding:10px; }
 #main-body .nav-tabs { flex-wrap:wrap; }
}

/* Ticket composition uses the same navy field and toolbar surfaces. */
#main-body .md-editor { border:1px solid #284f7a; border-radius:8px; overflow:hidden; }
#main-body .md-editor .md-header, #main-body .md-editor .md-footer { background:#001d3d; color:#ced6e0; padding:10px; }
#main-body .md-editor .md-footer small { font-size:13px; }
#main-body .md-editor .md-input { border-radius:0; border-left:0 !important; border-right:0 !important; }
#main-body .md-editor .md-preview { background:#000814; color:#ececec; padding:16px; }
#main-body .md-editor .btn { padding:8px 10px; }
#main-body .custom-file-label { background:#000814; border-color:#284f7a; height:46px; padding:10px 12px; border-radius:6px; }
#main-body .custom-file-label::after { background:#284f7a; color:#fff; height:44px; padding:10px 12px; border-left-color:#284f7a; }
#main-body .custom-file, #main-body .custom-file-input { height:46px; }
#main-body .dataTables_filter label { position:relative; }
#main-body .dataTables_filter label::before { content:"Search"; position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:14px; color:#b8c7d8; pointer-events:none; }
#main-body .dataTables_filter input { padding-left:74px; }
#order-standard_cart .domain-promo-box { border:1px solid #284f7a; border-radius:12px; padding:20px; }
#order-standard_cart .domain-pricing .tld-pricing-header { border-radius:10px 10px 0 0; }
#order-standard_cart .domain-pricing .tld-pricing-header, #order-standard_cart .domain-pricing .tld-row { padding-top:12px; padding-bottom:12px; font-size:16px; }
#order-standard_cart .domain-pricing .tld-filters a { display:inline-block; border-radius:5px; padding:6px 10px; margin:4px 2px; font-size:15px; }

#main-body .card > .card-body:only-child { border-radius:11px; }
#main-body .card-header:only-child { border-radius:11px; }
#main-body .table td .btn + .btn { margin-top:5px; }
#main-body .listtable { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:12px; }
@media(max-width:767px) {
 #main-body .listtable table.table { min-width:600px; }
 #main-body .dataTables_wrapper .dataTables_filter { margin:12px 0; }
 #main-body .dataTables_wrapper .dataTables_info { height:auto; margin:8px 0 16px; padding:0; }
}

#main-body .md-editor .md-header { background:#001d3d !important; }
@media(max-width:767px) {
 #main-body #domainForm > .btn-group { display:flex; flex-wrap:wrap; gap:8px; }
 #main-body #domainForm > .btn-group > .btn, #main-body #domainForm > .btn-group > .btn-group { flex:1 1 45%; margin:0; border-radius:6px; }
 #main-body #domainForm > .btn-group > .btn-group > .btn { width:100%; border-radius:6px; }
 #main-body .table-container:has(.listtable)::before { content:"Swipe table sideways to see all columns"; display:block; color:#b8c7d8; font-size:14px; margin:8px 0; }
}

/* Respect native hidden loading state; inline JS show/hide still takes precedence. */
#fullpage-overlay.w-hidden { display:none; }

/* Stripe hosts input text inside its own iframe. Keep its wrappers light. */
body #stripeElements #stripeCreditCard,
body #stripeElements #stripeExpiryDate,
body #stripeElements #stripeCvc {
    background: #ffffff !important;
    color: #152235 !important;
    color-scheme: light !important;
    border: 1px solid #9aadc2 !important;
    min-height: 46px;
}
body #stripeElements :is(#stripeCreditCard, #stripeExpiryDate, #stripeCvc).StripeElement--focus {
    border-color: #28a745 !important;
    box-shadow: 0 0 0 3px rgba(40,167,69,.2) !important;
}
body #stripeElements :is(#stripeCreditCard, #stripeExpiryDate, #stripeCvc).StripeElement--invalid {
    border-color: #b42318 !important;
}

/* Consistent light editable fields across the client portal and checkout. */
:is(body, #main-body, #order-standard_cart) :is(.form-control, .custom-select, textarea, select, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"]) {
    background-color: #ffffff !important;
    color: #152235 !important;
    color-scheme: light !important;
    border-color: #9aadc2 !important;
    caret-color: #152235;
}
:is(body, #main-body, #order-standard_cart) :is(.form-control, .custom-select, textarea, select, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"])::placeholder { color: #65758b !important; opacity: 1; }
:is(body, #main-body, #order-standard_cart) :is(.form-control, .custom-select, textarea, select, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"]):focus {
    background-color: #ffffff !important;
    color: #152235 !important;
    border-color: #28a745 !important;
    box-shadow: 0 0 0 3px rgba(40,167,69,.2) !important;
}
:is(body, #main-body, #order-standard_cart) :is(.form-control, .custom-select, textarea, select, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"]):is(:disabled, [readonly]) {
    background-color: #edf1f5 !important;
    color: #5c697a !important;
    opacity: 1;
}
:is(body, #main-body, #order-standard_cart) :is(.form-control, .custom-select, textarea, select, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"]):-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
    -webkit-text-fill-color: #152235 !important;
    caret-color: #152235;
}
:is(body, #main-body, #order-standard_cart) :is(.form-control, .custom-select, textarea, select, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"]).is-invalid {
    border-color: #b42318 !important;
}
:is(body, #main-body, #order-standard_cart) .has-error .form-control {
    border-color: #b42318 !important;
}
