/* ============================================================
   Nova Hosting GmbH
   ============================================================ */

/* btn-primary (theme.css: background: var(--bg-inverted) = Türkis) */
.btn-primary,
.btn-primary:visited {
    background-color: #ff5a00 !important;
    border-color: #d94d00 !important;
    color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    background-color: #d94d00 !important;
    border-color: #b84300 !important;
    color: #fff !important;
}

/* btn-success (theme.css: background: var(--bg-inverted) = Türkis) */
.btn-success,
.btn-success:visited {
    background-color: #ff5a00 !important;
    border-color: #d94d00 !important;
    color: #fff !important;
}
.btn-success:hover,
.btn-success:focus,
.btn-success:active {
    background-color: #d94d00 !important;
    border-color: #b84300 !important;
    color: #fff !important;
}

/* btn-default (theme.css: background: #fff, hover: var(--grayscale-lifted) = Türkis) */
.btn-default:hover,
.btn-default:focus,
.btn-default:active {
    background-color: #d94d00 !important;
    border-color: #d94d00 !important;
    color: #fff !important;
}

/* btn-outline-primary */
body #main-body .btn-outline-primary {
    color: #ff5a00 !important;
    border-color: #ff5a00 !important;
    background-color: transparent !important;
}
body #main-body .btn-outline-primary:hover {
    background-color: #ff5a00 !important;
    color: #fff !important;
}

/* btn-link hover */
.btn-link:hover {
    color: #ff5a00 !important;
}

/* Checkout-Button */
body #order-standard_cart .text-right .btn-checkout {
    background-color: #ff5a00 !important;
    border-color: #d94d00 !important;
    color: #fff !important;
}
body #order-standard_cart .text-right .btn-checkout:hover {
    background-color: #d94d00 !important;
}

/* ============================================================
   LINKS
   ============================================================ */
a {
    color: #026758 !important;
}
a:hover,
a:focus {
    color: #ff5a00 !important;
    text-decoration: none;
}

/* Navbar-Links wieder dunkel (nicht grün) */
header.header .navbar a,
header.header .navbar-nav .nav-link {
    color: #333 !important;
}
header.header .navbar a:hover,
header.header .navbar-nav .nav-link:hover {
    color: #ff5a00 !important;
}

/* Topbar-Links weiss lassen */
header.header .topbar a,
header.header .topbar .btn {
    color: rgba(255,255,255,0.75) !important;
}
header.header .topbar a:hover {
    color: #fff !important;
}

/* Footer-Links weiss */
footer.footer a,
footer.footer .nav-link {
    color: rgba(255,255,255,0.8) !important;
}
footer.footer a:hover,
footer.footer .nav-link:hover {
    color: #ff5a00 !important;
}

/* ============================================================
   HEADER – Weiss mit Orange-Unterlinie
   ============================================================ */
header.header {
    background-color: #fff !important;
    border-bottom: 3px solid #ff5a00 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}

/* Topbar bleibt dunkel Türkis */
header.header .topbar {
    background-color: #d94d00e3 !important;
}

/* ============================================================
   FOOTER – Dunkel Türkis mit Orange-Linie oben
   ============================================================ */
footer.footer {
    background-color: #01303a !important;
    border-top: 3px solid #ff5a00 !important;
    color: #fff !important;
}

/* ============================================================
   FORMULARE – Focus in Orange
   ============================================================ */
.form-control:focus {
    border-color: #ff5a00 !important;
    box-shadow: 0 0 0 0.2rem rgba(255,90,0,0.2) !important;
}

/* ============================================================
   PAGINATION – Aktiv in Türkis
   ============================================================ */
.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > .active > a:focus,
.page-item.active .page-link {
    background-color: #01303a !important;
    border-color: #01303a !important;
    color: #fff !important;
}
.pagination > li > a {
    color: #026758 !important;
}
.pagination > li > a:hover {
    color: #ff5a00 !important;
}

/* ============================================================
   SIDEBAR – Aktive Items
   ============================================================ */
.sidebar .list-group-item.active,
.sidebar .list-group-item.active:hover {
    background-color: #01303a !important;
    color: #fff !important;
}
/* ============================================================
   STICKY FOOTER – verhindert weissen Leerraum auf kurzen Seiten
   ============================================================ */
html {
    min-height: 100vh !important;
    height: auto !important;
}

body {
    min-height: 100vh !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
}

#main-body {
    flex: 1 0 auto !important;
}

#footer {
    flex-shrink: 0 !important;
    margin-top: auto !important;
}
.btn.btn-custom-action[data-identifier="plesk"] {
    background-color: var(--info) !important;
    border-color: var(--info) !important;
    color: #fff !important;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.btn.btn-custom-action[data-identifier="plesk"]:hover,
.btn.btn-custom-action[data-identifier="plesk"]:focus {
    background-color: #01303a !important;
    border-color: #01303a !important;
    color: #fff !important;
}
/* ============================================================
   NOVA HOSTING CLIENT PORTAL – MODERNE RECHNUNGSANSICHT
   WHMCS 9.x / viewinvoice.tpl
   ============================================================ */
:root {
    --novahosting-teal: #006b67;
    --novahosting-teal-dark: #013b43;
    --novahosting-orange: #e95b0c;
    --novahosting-bg: #f7f9fa;
    --novahosting-border: #dfe5e8;
    --novahosting-text: #20272f;
    --novahosting-muted: #68737d;
}

.novahosting-invoice-page {
    max-width: 1440px;
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.novahosting-invoice-layout { margin-left: -12px; margin-right: -12px; }
.novahosting-invoice-layout > [class*="col-"] { padding-left: 12px; padding-right: 12px; }

.novahosting-invoice-card,
.novahosting-payment-card {
    background: #fff;
    border: 1px solid var(--novahosting-border);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(1, 48, 58, .045);
    overflow: hidden;
    margin-bottom: 24px;
}

.novahosting-invoice-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 26px 28px;
    border-bottom: 1px solid var(--novahosting-border);
}

.novahosting-invoice-title {
    margin: 0 16px 0 0;
    font-size: 1.8rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--novahosting-text);
}

.novahosting-invoice-due { margin-top: 7px; color: var(--novahosting-muted); }

.novahosting-invoice-status {
    display: inline-flex;
    align-items: center;
    padding: 7px 13px;
    border-radius: 5px;
    font-size: .78rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
}
.novahosting-invoice-status--unpaid { background: #dc1010; color: #fff; }
.novahosting-invoice-status--paid { background: #daf5e8; color: #087442; }
.novahosting-invoice-status--payment-pending,
.novahosting-invoice-status--draft { background: #fff1d5; color: #8a5b00; }
.novahosting-invoice-status--refunded { background: #e7efff; color: #315fa8; }
.novahosting-invoice-status--cancelled,
.novahosting-invoice-status--collections { background: #eceff1; color: #59636c; }

.novahosting-invoice-actions { display: flex; gap: 10px; flex-shrink: 0; }
.novahosting-invoice-actions .btn {
    border: 1px solid #d8dfe3;
    border-radius: 6px;
    padding: 9px 16px;
    color: #39434c !important;
    background: #fff;
}

.novahosting-invoice-meta-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    padding: 18px 12px;
    border-bottom: 1px solid var(--novahosting-border);
}

.novahosting-invoice-meta-card { padding: 10px 22px; border-right: 1px solid var(--novahosting-border); }
.novahosting-invoice-meta-card:last-child { border-right: 0; }
.novahosting-invoice-meta-card h2 {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 12px;
    font-size: .95rem;
    font-weight: 700;
    color: var(--novahosting-text);
}
.novahosting-invoice-meta-card h2 i { width: 18px; color: var(--novahosting-teal-dark); }
.novahosting-invoice-meta-card address,
.novahosting-invoice-meta-card dl { margin: 0; color: #46515a; line-height: 1.55; font-size: .9rem; }
.novahosting-invoice-meta-card dl div { display: flex; gap: 6px; }
.novahosting-invoice-meta-card dt { font-weight: 500; color: var(--novahosting-muted); }
.novahosting-invoice-meta-card dt:after { content: ':'; }
.novahosting-invoice-meta-card dd { margin: 0; }

.novahosting-invoice-items thead th,
.novahosting-ledger-card thead th {
    background: #fbfcfc;
    border-top: 0;
    border-bottom: 1px solid var(--novahosting-border);
    padding: 14px 28px;
    font-size: .83rem;
    color: #303941;
}
.novahosting-invoice-items td,
.novahosting-ledger-card td { padding: 13px 28px; border-color: #e8edef; }
.novahosting-invoice-summary-row td { background: #fbfcfc; }
.novahosting-invoice-total-row td { background: #f8fafb; font-size: 1.05rem; }
.novahosting-invoice-total-row td:last-child { color: var(--novahosting-teal); font-size: 1.15rem; }
.novahosting-tax-note { padding: 14px 28px 18px; margin: 0; color: var(--novahosting-muted); font-size: .82rem; }

.novahosting-ledger-card > header { padding: 18px 24px 10px; }
.novahosting-ledger-card > header h2 { margin: 0; font-size: 1.05rem; font-weight: 700; }
.novahosting-invoice-balance-row td { background: #fafbfc; }

.novahosting-invoice-credit,
.novahosting-invoice-notes { margin: 18px 24px; padding: 16px; background: #f7faf9; border: 1px solid #dceae7; border-radius: 7px; }
.novahosting-invoice-credit form { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.novahosting-invoice-credit p { margin: 3px 0 0; color: var(--novahosting-muted); }
.novahosting-invoice-credit .input-group { max-width: 360px; }

.novahosting-payment-card { position: sticky; top: 20px; padding: 24px; }
.novahosting-payment-card > header h2 { margin: 0 0 4px; font-size: 1.35rem; font-weight: 700; color: var(--novahosting-text); }
.novahosting-payment-card > header p { margin: 0 0 20px; color: var(--novahosting-muted); }
.novahosting-payment-method-form { margin: 0 0 10px; }
.novahosting-payment-method {
    width: 100%;
    min-height: 78px;
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
    padding: 13px 15px;
    border: 1px solid var(--novahosting-border);
    border-radius: 8px;
    background: #fff;
    color: var(--novahosting-text);
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.novahosting-payment-method:hover,
.novahosting-payment-method:focus,
.novahosting-payment-method.is-selected {
    border-color: #159992;
    box-shadow: 0 5px 16px rgba(0, 107, 103, .09);
    outline: none;
}
.novahosting-payment-method:hover { transform: translateY(-1px); }
.novahosting-payment-method.is-loading { opacity: .65; cursor: wait; }
.novahosting-payment-method__icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #f3f6f7;
    color: var(--novahosting-teal-dark);
    font-size: 1.35rem;
}
.novahosting-payment-method__copy { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.novahosting-payment-method__copy strong { font-size: 1rem; }
.novahosting-payment-method__copy small { margin-top: 3px; color: var(--novahosting-muted); font-size: .82rem; }
.novahosting-payment-method__arrow { color: var(--novahosting-teal); }
.novahosting-payment-method__selected {
    width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    background: var(--novahosting-teal); color: #fff; font-size: .72rem;
}
.novahosting-payment-method--static { cursor: default; margin-bottom: 15px; }

.novahosting-payment-action { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--novahosting-border); }
.novahosting-payment-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 13px; color: var(--novahosting-muted); }
.novahosting-payment-total strong { color: var(--novahosting-teal); font-size: 1.35rem; }
.novahosting-payment-button > form,
.novahosting-payment-button .payment-form { width: 100%; }
.novahosting-payment-button .btn,
.novahosting-payment-button input[type="submit"],
.novahosting-payment-button button {
    width: 100% !important;
    min-height: 48px;
    border-radius: 7px !important;
    font-weight: 700;
}
.novahosting-payment-security { display: flex; gap: 9px; align-items: center; margin-top: 18px; color: var(--novahosting-muted); font-size: .79rem; }
.novahosting-payment-security i { color: var(--novahosting-teal-dark); }

.novahosting-invoice-back { margin: 4px 0 0; }
.novahosting-invoice-qr { padding: 24px; }

@media (max-width: 1199.98px) {
    .novahosting-payment-card { position: static; }
}
@media (max-width: 767.98px) {
    .novahosting-invoice-page { padding-top: 1rem; }
    .novahosting-invoice-card__header { align-items: flex-start; flex-direction: column; padding: 20px; }
    .novahosting-invoice-title { font-size: 1.45rem; }
    .novahosting-invoice-actions { width: 100%; }
    .novahosting-invoice-actions .btn { flex: 1; }
    .novahosting-invoice-meta-grid { grid-template-columns: 1fr; padding: 8px 16px; }
    .novahosting-invoice-meta-card { border-right: 0; border-bottom: 1px solid var(--novahosting-border); padding: 18px 4px; }
    .novahosting-invoice-meta-card:last-child { border-bottom: 0; }
    .novahosting-invoice-items th,
    .novahosting-invoice-items td,
    .novahosting-ledger-card th,
    .novahosting-ledger-card td { padding: 11px 14px; }
    .novahosting-invoice-credit form { flex-direction: column; align-items: stretch; }
    .novahosting-invoice-credit .input-group { max-width: none; }
    .novahosting-payment-card { padding: 19px; }
}

@media print {
    header.header,
    footer.footer,
    .master-breadcrumb,
    .novahosting-payment-card,
    .novahosting-invoice-back,
    .novahosting-invoice-actions { display: none !important; }
    body, #main-body { background: #fff !important; }
    .novahosting-invoice-page { max-width: none; padding: 0; }
    .novahosting-invoice-card { box-shadow: none; border-color: #bbb; }
    .novahosting-invoice-layout main { flex: 0 0 100%; max-width: 100%; }
}
