/*
 * Red Vision Host client portal foundation.
 * Layered after Blesta's generated theme CSS and before administrator custom CSS.
 * Preserve Bootstrap/Blesta selectors and behavior; this file changes presentation only.
 */

@font-face {
    font-family: "Red Vision Inter";
    src: url("../webfonts/Inter-VariableFont.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --rv-ink: #18191b;
    --rv-ink-soft: #4f5358;
    --rv-canvas: #fbfbfa;
    --rv-surface: #f4f4f2;
    --rv-surface-red: #fff3f1;
    --rv-brand: #df3626;
    --rv-brand-dark: #b8271b;
    --rv-border: #dededb;
    --rv-border-strong: #b9b9b6;
    --rv-footer: #202124;
    --rv-footer-muted: #c9c9c5;
    --rv-focus: #8c241b;
    --rv-white: #fff;
    --rv-success: #2c6b43;
    --rv-success-surface: #edf8f0;
    --rv-warning: #8a5b00;
    --rv-warning-surface: #fff7e1;
    --rv-danger: #6c1e16;
    --rv-danger-surface: #fff3f1;
    --rv-info: #265f83;
    --rv-info-surface: #eef7fc;
    --rv-font-body: "Red Vision Inter", Inter, Aptos, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --rv-content-width: 74rem;
    --rv-radius-sm: .375rem;
    --rv-radius-md: .75rem;
    --rv-radius-lg: 1.25rem;
    --rv-space-xs: .5rem;
    --rv-space-sm: 1rem;
    --rv-space-md: 1.5rem;
    --rv-space-lg: 2.5rem;
    --rv-space-xl: 4.5rem;
}

html { background: var(--rv-canvas); }

body {
    min-height: 100vh;
    color: var(--rv-ink);
    background: var(--rv-canvas);
    font-family: var(--rv-font-body);
    font-size: 1rem;
    font-weight: 450;
    line-height: 1.6;
}

button,
input,
optgroup,
select,
textarea { font-family: inherit; }

a { color: var(--rv-brand-dark); text-underline-offset: .18em; }
a:hover { color: var(--rv-ink); }

:focus-visible {
    outline: .2rem solid var(--rv-focus) !important;
    outline-offset: .22rem;
}

.btn:focus,
.btn.focus,
.form-control:focus,
.custom-select:focus,
.custom-control-input:focus ~ .custom-control-label::before,
.page-link:focus {
    box-shadow: 0 0 0 .2rem rgb(140 36 27 / .25);
}

h1, h2, h3, h4, h5, h6,
.title h3,
.card-body h4,
.panel .panel-body h4 {
    color: var(--rv-ink);
    font-family: var(--rv-font-body);
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: -.022em;
}

h1, h2 { letter-spacing: -.035em; }

.container-md {
    width: min(calc(100% - 2.5rem), var(--rv-content-width));
    max-width: var(--rv-content-width);
    padding-inline: 0;
}

/* Global shell follows the public site's quiet canvas, red accent, and compact navigation. */
.rv-skip-link {
    position: fixed;
    z-index: 1040;
    inset-block-start: .75rem;
    inset-inline-start: .75rem;
    padding: .7rem 1rem;
    color: var(--rv-white);
    background: var(--rv-ink);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-160%);
}
.rv-skip-link:focus { color: var(--rv-white); opacity: 1; pointer-events: auto; transform: translateY(0); }

.rv-site-header {
    position: sticky;
    z-index: 1020;
    inset-block-start: 0;
    padding-bottom: 0;
    border-bottom: 1px solid var(--rv-border);
    background: rgb(251 251 250 / .96);
    backdrop-filter: blur(12px);
    box-shadow: 0 .3rem 1rem rgb(24 25 27 / .04);
}
.rv-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 5.25rem;
    gap: var(--rv-space-sm);
}
.header .logo,
.rv-site-brand { display: inline-flex; flex: 0 0 auto; align-items: center; }
.header .logo { margin: 0; }
.rv-site-brand img { display: block; width: min(13.25rem, 56vw); height: auto; }
.rv-header-utility { margin-inline-start: auto; }
.header .top-nav a { color: var(--rv-ink-soft); font-weight: 700; }

.nav-content {
    border-top: 1px solid var(--rv-border);
    background: var(--rv-canvas);
}
.nav-content nav.navbar { background: var(--rv-canvas); }
.nav-content .container-md { padding-inline: 0; }
.navbar { padding-block: .25rem; }
/* Generated theme.css marks navigation text important; keep the light portal nav readable. */
.nav-content nav.navbar .navbar-nav > li > a.nav-link {
    color: var(--rv-ink-soft) !important;
    font-weight: 700;
}
.nav-content nav.navbar .navbar-nav > li > a.nav-link:hover,
.nav-content nav.navbar .navbar-nav > li > a.nav-link:focus,
.nav-content nav.navbar .navbar-nav > .active > a.nav-link,
.nav-content nav.navbar .navbar-nav > .show > a.nav-link,
.nav-content nav.navbar .navbar-nav > .open > a.nav-link { color: var(--rv-brand-dark) !important; }
.navbar-toggler {
    border-color: var(--rv-border-strong);
    border-radius: var(--rv-radius-sm);
}
.rv-nav-toggle { display: none; }
.rv-nav-toggle .navbar-toggler-icon,
.rv-nav-toggle .navbar-toggler-icon::before,
.rv-nav-toggle .navbar-toggler-icon::after {
    display: block;
    width: 1.25rem;
    height: 2px;
    margin: auto;
    background: currentColor;
    content: "";
}
.rv-nav-toggle .navbar-toggler-icon { position: relative; background-image: none; }
.rv-nav-toggle .navbar-toggler-icon::before,
.rv-nav-toggle .navbar-toggler-icon::after { position: absolute; inset-inline-start: 0; }
.rv-nav-toggle .navbar-toggler-icon::before { inset-block-start: -.42rem; }
.rv-nav-toggle .navbar-toggler-icon::after { inset-block-start: .42rem; }

.title {
    height: auto;
    min-height: 3.25rem;
    margin-bottom: var(--rv-space-sm);
    padding-block: .8rem;
    border-bottom: 1px solid var(--rv-border);
    background: var(--rv-canvas);
}
.title h3 { display: block; margin: 0; font-size: clamp(1.35rem, 2.5vw, 1.75rem); line-height: 1.15; }

.rv-main { min-height: 1px; }
.rv-auth-header {
    padding-block: var(--rv-space-sm);
    border-bottom: 1px solid var(--rv-border);
    background: var(--rv-canvas);
}
.row.login {
    min-height: clamp(30rem, calc(100vh - 14rem), 44rem);
    padding-block: clamp(2.5rem, 7vw, 5rem);
    justify-content: center;
    align-items: center;
    row-gap: var(--rv-space-lg);
}
.rv-auth-intro { max-width: 32rem; }
.rv-auth-eyebrow {
    margin-bottom: .8rem;
    color: var(--rv-brand-dark);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.rv-auth-intro h1 { margin-bottom: var(--rv-space-sm); font-size: clamp(2rem, 4vw, 3rem); }
.rv-auth-intro > p:last-child { margin-bottom: 0; color: var(--rv-ink-soft); }
.rv-auth-form { max-width: 32rem; }
.rv-auth-form .panel { margin-bottom: 0; }

/* Buttons and controls */
.btn {
    min-height: 2.65rem;
    padding: .62rem 1rem;
    border-radius: var(--rv-radius-sm);
    font-family: var(--rv-font-body);
    font-weight: 750;
    line-height: 1.35;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.btn-sm,
.btn-xs { min-height: 2.15rem; padding: .35rem .65rem; font-size: .875rem; }

.btn-primary {
    color: var(--rv-white);
    border-color: var(--rv-brand);
    background-color: var(--rv-brand);
}

/* Scoped overrides intentionally beat Blesta-generated theme.css !important button colors. */
.btn.btn-success.btn-success {
    color: var(--rv-white) !important;
    border-color: var(--rv-brand) !important;
    background-color: var(--rv-brand) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active {
    color: var(--rv-white);
    border-color: var(--rv-brand-dark);
    background-color: var(--rv-brand-dark);
}

/* Module-rendered service password generators bind this class through app.js. */
.rv-main #client_services_manage .generate-password {
    color: var(--rv-ink) !important;
    border-color: var(--rv-border-strong) !important;
    background-color: var(--rv-white) !important;
}
.rv-main #client_services_manage .generate-password:hover,
.rv-main #client_services_manage .generate-password:focus,
.rv-main #client_services_manage .generate-password.focus,
.rv-main #client_services_manage .generate-password:not(:disabled):not(.disabled):active,
.rv-main #client_services_manage .generate-password:not(:disabled):not(.disabled).active {
    color: var(--rv-brand-dark) !important;
    border-color: var(--rv-brand) !important;
    background-color: var(--rv-surface-red) !important;
}

/* Password generation is a secondary utility even though Blesta marks it primary. */
.modal .btn.btn-primary.generate {
    color: var(--rv-ink) !important;
    border-color: var(--rv-border-strong) !important;
    background-color: var(--rv-white) !important;
}
.modal .btn.btn-primary.generate:hover,
.modal .btn.btn-primary.generate:focus,
.modal .btn.btn-primary.generate.focus,
.modal .btn.btn-primary.generate:not(:disabled):not(.disabled):active,
.modal .btn.btn-primary.generate:not(:disabled):not(.disabled).active {
    color: var(--rv-brand-dark) !important;
    border-color: var(--rv-brand) !important;
    background-color: var(--rv-surface-red) !important;
}

.btn.btn-success.btn-success:hover,
.btn.btn-success.btn-success:focus,
.btn.btn-success.btn-success.focus,
.btn.btn-success.btn-success:not(:disabled):not(.disabled):active,
.btn.btn-success.btn-success:not(:disabled):not(.disabled).active,
.nav-tabs li.active a.btn.btn-success.btn-success:not(:disabled):not(.disabled),
.show > .btn.btn-success.btn-success.dropdown-toggle {
    color: var(--rv-white) !important;
    border-color: var(--rv-brand-dark) !important;
    background-color: var(--rv-brand-dark) !important;
}

.btn.btn-success.btn-success:focus,
.btn.btn-success.btn-success.focus,
.btn.btn-success.btn-success:not(:disabled):not(.disabled):active:focus,
.btn.btn-success.btn-success:not(:disabled):not(.disabled).active:focus,
.nav-tabs li.active a.btn.btn-success.btn-success:not(:disabled):not(.disabled):focus,
.show > .btn.btn-success.btn-success.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem rgb(140 36 27 / .25);
}

.btn.btn-success.btn-success.disabled,
.btn.btn-success.btn-success:disabled {
    color: var(--rv-white) !important;
    border-color: var(--rv-brand) !important;
    background-color: var(--rv-brand) !important;
}

.btn-light,
.btn-default,
.btn-secondary {
    color: var(--rv-ink);
    border-color: var(--rv-ink);
    background-color: transparent;
}

.btn-light:hover,
.btn-light:focus,
.btn-light:not(:disabled):not(.disabled):active,
.btn-default:hover,
.btn-default:focus,
.btn-default:not(:disabled):not(.disabled):active,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:not(:disabled):not(.disabled):active {
    color: var(--rv-white);
    border-color: var(--rv-ink);
    background-color: var(--rv-ink);
}

.btn-danger {
    color: var(--rv-white);
    border-color: var(--rv-danger);
    background-color: var(--rv-danger);
}
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:not(:disabled):not(.disabled):active { border-color: #4e160f; background-color: #4e160f; }

.btn-warning {
    color: var(--rv-ink);
    border-color: #e7b84a;
    background-color: #f5cf71;
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:not(:disabled):not(.disabled):active { color: var(--rv-ink); border-color: #d29a1d; background-color: #e7b84a; }

.btn.disabled,
.btn:disabled { opacity: .58; cursor: not-allowed; }

.dropdown-menu {
    padding: .4rem;
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-md);
    color: var(--rv-ink);
    background: var(--rv-canvas);
    box-shadow: 0 .8rem 1.75rem rgb(24 25 27 / .12);
}

.dropdown-item {
    border-radius: calc(var(--rv-radius-sm) - .1rem);
    color: var(--rv-ink-soft);
    font-weight: 650;
}
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-item:active { color: var(--rv-ink); background: var(--rv-surface-red); }
.dropdown-divider { border-top-color: var(--rv-border); }

/* Widgets, cards, panels, and secondary navigation. */
.content_section,
.panel,
.card,
.card-blesta,
.panel-blesta {
    border-color: var(--rv-border);
    border-radius: var(--rv-radius-md);
}

.content_section,
.panel,
.card-blesta,
.panel-blesta {
    background: var(--rv-white);
    box-shadow: 0 .45rem 1.35rem rgb(24 25 27 / .045);
}

.panel-heading,
.card-header,
.card-blesta > .card-header,
.panel .panel-heading {
    padding: 1rem 1.25rem;
    border-color: var(--rv-border);
    color: var(--rv-ink);
    background: var(--rv-surface);
    font-weight: 750;
}

.panel-body,
.card-body { padding: clamp(1.1rem, 2.5vw, 1.5rem); }
.panel-footer,
.card-footer { border-color: var(--rv-border); background: var(--rv-surface); }

.card {
    color: var(--rv-ink);
    background-color: var(--rv-white);
    font-family: var(--rv-font-body);
}

.cards > [class*="col-"] { margin-bottom: var(--rv-space-sm); }
.cards a { color: inherit; }
.cards .card {
    position: relative;
    min-height: 6.5rem;
    overflow: hidden;
    border: 1px solid var(--rv-border);
    border-top: .28rem solid var(--rv-brand);
    border-radius: var(--rv-radius-md) !important;
    color: var(--rv-ink) !important;
    background: var(--rv-white) !important;
    background-image: none !important;
    box-shadow: 0 .45rem 1.35rem rgb(24 25 27 / .045);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.cards .card::before {
    position: absolute;
    inset-block-start: 1rem;
    inset-inline-start: 1.15rem;
    width: 1.75rem;
    height: .18rem;
    background: var(--rv-ink);
    content: "";
}
.cards .card-content { padding: 1.6rem 1.15rem 1.05rem; }
.cards a:hover .card,
.cards a:focus .card { border-color: var(--rv-border-strong); box-shadow: 0 .7rem 1.5rem rgb(24 25 27 / .1); transform: translateY(-.12rem); }
.cards .card-value { color: var(--rv-ink); font-size: clamp(1.8rem, 3vw, 2.35rem); font-weight: 800; letter-spacing: -.035em; }
.cards .card-label { color: var(--rv-ink-soft); font-weight: 700; }

/* Order plugin: AJAX/Wizard domain lookup and boxes-style package selection. */
.rv-main .section-title.row + .whois { margin-top: .5rem; }

.rv-main .package-boxes {
    display: flex;
    flex: 1 1 18rem;
    width: auto;
    max-width: none;
}
.rv-main .package-boxes .package {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    margin: .5rem 0 1rem;
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-md);
    box-shadow: 0 .35rem 1rem rgb(24 25 27 / .06);
    opacity: 1;
    overflow: hidden;
}
.rv-main .package-boxes .package .package-name {
    border-bottom: 1px solid var(--rv-border);
    background: var(--rv-surface);
}
.rv-main .package-boxes .package .price-box { background: var(--rv-white); }
.rv-main .package-boxes .package .order { margin-top: auto; border-top: 1px solid var(--rv-border); background: var(--rv-surface); }
.rv-main .package-boxes .package.selected {
    border-color: var(--rv-brand);
    box-shadow: 0 .55rem 1.35rem rgb(184 39 27 / .16);
}
.rv-main .package-boxes .package.selected .package-name { border-bottom-color: var(--rv-brand); background: var(--rv-surface-red); }
.rv-main .package-boxes .package.selected .package-name h4 { color: var(--rv-brand-dark); }
.rv-main .package-boxes .package:not([data-group-id]) { opacity: .68; }

/* Package-selection presentation stays scoped to Order plugin boxes markup. */
.rv-main.rv-package-selection .section-title {
    max-width: 44rem;
    margin-bottom: var(--rv-space-lg);
}
.rv-main.rv-package-selection .section-title.rv-package-selection__intro h3[hidden] { display: none; }
.rv-main.rv-package-selection .package-boxes {
    flex: 1 1 22rem;
    max-width: 32rem;
}
.rv-main.rv-package-selection .package-boxes .package {
    margin: 0 0 var(--rv-space-md);
    border-color: var(--rv-border);
    text-align: start;
    box-shadow: 0 .45rem 1.35rem rgb(24 25 27 / .06);
}
.rv-main.rv-package-selection .package-boxes .package .package-name {
    padding: var(--rv-space-md);
    background: var(--rv-white);
}
.rv-main.rv-package-selection .package-boxes .package .package-name h4 {
    font-size: 1.35rem;
    font-weight: 800;
}
.rv-main.rv-package-selection .package-boxes .package .price-box {
    padding: 0 var(--rv-space-md) var(--rv-space-md);
    background: var(--rv-white);
}
.rv-main.rv-package-selection .package-boxes .package .price-box p {
    margin: 0 0 .3rem;
    padding: 0;
    border: 0;
    color: var(--rv-ink-soft);
    font-size: .78rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.rv-main.rv-package-selection .package-boxes .package .price-box h4 {
    color: var(--rv-ink);
    font-size: clamp(1.8rem, 3vw, 2.3rem);
    letter-spacing: -.04em;
}
.rv-main.rv-package-selection .package-boxes .package > p,
.rv-main.rv-package-selection .package-boxes .package > ul {
    padding-inline: var(--rv-space-md);
    color: var(--rv-ink-soft);
    text-align: start;
}
.rv-main.rv-package-selection .package-boxes .package > p {
    padding-block: 0 var(--rv-space-md);
    border-bottom: 0;
}
.rv-main.rv-package-selection .package-boxes .package > ul { margin-bottom: var(--rv-space-md); }
.rv-main.rv-package-selection .package-boxes .package .order {
    padding: var(--rv-space-md);
    background: var(--rv-surface);
}
.rv-main.rv-package-selection .package-boxes .package .unselected-btn .btn-light {
    border-color: var(--rv-brand);
    color: var(--rv-brand-dark);
    background: var(--rv-white);
}
.rv-main.rv-package-selection .package-boxes .package .unselected-btn .btn-light:hover,
.rv-main.rv-package-selection .package-boxes .package .unselected-btn .btn-light:focus {
    color: var(--rv-white);
    background: var(--rv-brand-dark);
}
.rv-main.rv-package-selection .package-boxes .package.selected {
    border: .15rem solid var(--rv-brand);
    box-shadow: 0 .65rem 1.5rem rgb(184 39 27 / .16);
}
.rv-main.rv-package-selection .package-boxes .package.selected .package-name {
    border-bottom-color: var(--rv-brand);
    background: var(--rv-surface-red);
}
.rv-main.rv-package-selection .rv-order-cart-actions { margin-top: var(--rv-space-lg); margin-bottom: var(--rv-space-sm); }
.rv-main.rv-package-selection #package-config,
.rv-main.rv-package-selection #order-summary { margin-top: var(--rv-space-lg); }
.rv-main.rv-package-selection #continue_config,
.rv-main.rv-package-selection #submit_config,
.rv-main.rv-package-selection #queue_continue_btns .btn { min-width: 10rem; }

@media (max-width: 767.98px) {
    .rv-main .package-boxes { flex: 0 0 100%; width: 100%; max-width: 100%; }
    .rv-main.rv-package-selection .package-boxes { flex: 0 0 100%; width: 100%; max-width: 100%; }
}

.list-group { gap: .35rem; }
.list-group-item {
    margin-bottom: 0;
    border: 1px solid var(--rv-border) !important;
    border-radius: var(--rv-radius-sm) !important;
    color: var(--rv-ink-soft);
    background: var(--rv-white);
    font-weight: 700;
}
.list-group-item:hover,
.list-group-item:focus { z-index: auto; color: var(--rv-ink); background: var(--rv-surface-red); }
/* Secondary navigation retains Blesta's active state while using a readable pale-red treatment. */
.rv-main .col-md-3 > .list-group > a.list-group-item.active {
    z-index: auto;
    border-color: var(--rv-brand) !important;
    color: var(--rv-brand-dark) !important;
    background: var(--rv-surface-red) !important;
}
.rv-main .col-md-3 > .list-group > a.list-group-item.active > i { color: var(--rv-brand-dark) !important; }
.rv-main .col-md-3 > .list-group > a.list-group-item.active:hover,
.rv-main .col-md-3 > .list-group > a.list-group-item.active:focus {
    color: var(--rv-brand-dark) !important;
    background: #fee5e1 !important;
}
.rv-main .col-md-3 > .list-group > a.list-group-item.active:hover > i,
.rv-main .col-md-3 > .list-group > a.list-group-item.active:focus > i { color: var(--rv-brand-dark) !important; }

/* Forms retain helper-generated markup, names, IDs, and validation behavior. */
.form-group { margin-bottom: var(--rv-space-md); }
.form-group label,
label { color: var(--rv-ink); font-weight: 700; }
.form-control,
.custom-select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="search"],
select,
textarea {
    min-height: 2.8rem;
    border: 1px solid var(--rv-border-strong);
    border-radius: var(--rv-radius-sm);
    color: var(--rv-ink);
    background: var(--rv-white);
    line-height: 1.45;
}

textarea { min-height: 8rem; resize: vertical; }
.form-control:focus,
.custom-select:focus,
input:focus,
select:focus,
textarea:focus { border-color: var(--rv-focus); background: var(--rv-white); }
.form-control[readonly],
.form-control:disabled,
.custom-select:disabled { background: var(--rv-surface); opacity: .8; }
.input-group-text { border-color: var(--rv-border-strong); color: var(--rv-ink-soft); background: var(--rv-surface); }
.help-block,
.form-text { color: var(--rv-ink-soft); font-size: .9rem; }
.text-danger,
.invalid-feedback { color: var(--rv-danger) !important; }
.form-control.is-invalid,
.was-validated .form-control:invalid { border-color: var(--rv-danger); }
.form-control.is-valid,
.was-validated .form-control:valid { border-color: var(--rv-success); }
.custom-control-input:checked ~ .custom-control-label::before { border-color: var(--rv-brand); background-color: var(--rv-brand); }

/* Alerts/messages and semantic statuses. */
.alert {
    margin-bottom: var(--rv-space-md);
    border: 1px solid transparent;
    border-inline-start-width: .3rem;
    border-radius: var(--rv-radius-sm);
    color: var(--rv-ink);
    background: var(--rv-surface);
}
.alert-success { border-color: var(--rv-success); color: #184b2b; background: var(--rv-success-surface); }
.alert-danger,
.alert-error { border-color: var(--rv-brand-dark); color: var(--rv-danger); background: var(--rv-danger-surface); }
.alert-warning { border-color: var(--rv-warning); color: #694600; background: var(--rv-warning-surface); }
.alert-info { border-color: var(--rv-border-strong); border-inline-start-color: var(--rv-brand); color: var(--rv-ink); background: var(--rv-surface); }
.alert-primary { border-color: var(--rv-info); color: #17445f; background: var(--rv-info-surface); }
.alert-light,
.alert-secondary { border-color: var(--rv-border-strong); color: var(--rv-ink-soft); background: var(--rv-surface); }
.alert .close { color: currentColor; text-shadow: none; opacity: .75; }

.badge {
    padding: .38em .62em;
    border-radius: 999px;
    font-family: var(--rv-font-body);
    font-size: .75em;
    font-weight: 750;
    letter-spacing: .02em;
}
.badge-primary { color: var(--rv-white); background-color: var(--rv-brand); }
.badge-success { color: var(--rv-white); background-color: var(--rv-success); }
.badge-danger { color: var(--rv-white); background-color: var(--rv-danger); }
.badge-warning { color: var(--rv-ink); background-color: #f5cf71; }
.badge-info { color: var(--rv-white); background-color: var(--rv-info); }
.badge-light,
.badge-secondary { color: var(--rv-ink); background-color: #e7e7e4; }

/* This staff-only badge follows the generic info palette, so it wins over all info badge colors. */
.header .rv-staff-return.badge.badge-info {
    padding: .45rem .7rem;
    border: 1px solid var(--rv-border-strong) !important;
    color: var(--rv-ink) !important;
    background-color: var(--rv-white) !important;
    box-shadow: none;
}
.header .rv-staff-return.badge.badge-info a,
.header .rv-staff-return.badge.badge-info a [class*="fa-"] {
    color: var(--rv-ink) !important;
    text-decoration: none;
}
.header .rv-staff-return.badge.badge-info:hover,
.header .rv-staff-return.badge.badge-info:focus-within {
    border-color: var(--rv-brand) !important;
    color: var(--rv-brand-dark) !important;
    background-color: var(--rv-surface-red) !important;
}
.header .rv-staff-return.badge.badge-info:hover a,
.header .rv-staff-return.badge.badge-info:focus-within a,
.header .rv-staff-return.badge.badge-info:hover a [class*="fa-"],
.header .rv-staff-return.badge.badge-info:focus-within a [class*="fa-"] { color: var(--rv-brand-dark) !important; }

/* Tables and Blesta expandable rows. */
.table-responsive {
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-md);
    background: var(--rv-white);
}
.table,
.table-curved { margin-bottom: 0; color: var(--rv-ink); }
.table thead th,
.table-curved thead th {
    border-top: 0;
    border-bottom: 1px solid var(--rv-border-strong);
    color: var(--rv-ink);
    background: var(--rv-surface);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.table th,
.table td { border-top-color: var(--rv-border); vertical-align: middle; }
.table-striped tbody tr:nth-of-type(odd),
.table-striped-alt tbody tr:nth-of-type(odd) { background-color: rgb(244 244 242 / .72); }
.table-hover tbody tr:hover { color: var(--rv-ink); background-color: var(--rv-surface-red); }
tr.expand { cursor: pointer; }
tr.expand.expanded { background-color: var(--rv-surface-red); }
tr.expand_details > td,
.subtable > td { background: var(--rv-surface); }

/* Tabs, pagination, and modal surfaces. */
.nav-tabs { border-bottom-color: var(--rv-border); gap: .25rem; }
.nav-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: var(--rv-radius-sm) var(--rv-radius-sm) 0 0;
    color: var(--rv-ink-soft);
    font-weight: 700;
}
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus { border-color: var(--rv-border) var(--rv-border) transparent; color: var(--rv-ink); background: var(--rv-surface); }
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link { border-color: var(--rv-border) var(--rv-border) var(--rv-white); color: var(--rv-brand-dark); background: var(--rv-white); }
.tab-content { padding-top: var(--rv-space-sm); }

.pagination { gap: .25rem; }
.page-link {
    margin-left: 0;
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-sm) !important;
    color: var(--rv-brand-dark);
    background: var(--rv-white);
    font-weight: 700;
}
.page-link:hover { border-color: var(--rv-brand); color: var(--rv-brand-dark); background: var(--rv-surface-red); }
.page-item.active .page-link,
div.pagination ul.pagination li.active .page-link,
div.pagination ul.pagination li.active a { border-color: var(--rv-brand); color: var(--rv-white); background: var(--rv-brand); }
.page-item.disabled .page-link { border-color: var(--rv-border); color: #8a8c90; background: var(--rv-surface); }

.modal-content {
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-md);
    color: var(--rv-ink);
    background: var(--rv-white);
    box-shadow: 0 1.25rem 3rem rgb(24 25 27 / .2);
}
.modal-header,
.modal-footer { border-color: var(--rv-border); background: var(--rv-surface); }
.modal-title,
.global_modal_title { font-weight: 750; }
.close { color: var(--rv-ink); opacity: .75; }
.close:hover { color: var(--rv-brand-dark); opacity: 1; }

.rv-site-footer {
    margin-top: var(--rv-space-xl);
    padding-top: var(--rv-space-xl);
    color: var(--rv-footer-muted);
    background: var(--rv-footer);
}
.rv-footer-grid {
    display: grid;
    gap: var(--rv-space-lg);
    padding-bottom: var(--rv-space-lg);
}
.rv-site-footer .rv-site-brand {
    width: min(10rem, 100%);
    padding: .35rem .5rem;
    border-radius: var(--rv-radius-sm);
    background: var(--rv-white);
}
.rv-site-footer .rv-site-brand img { width: 100%; }
.rv-footer-brand p { margin: var(--rv-space-sm) 0 0; color: var(--rv-footer-muted); }
.rv-footer-attribution {
    align-self: end;
    margin: 0;
    padding-top: 1.15rem;
    border-top: 1px solid rgb(255 255 255 / .18);
    font-size: .9rem;
}
.rv-site-footer a { color: var(--rv-footer-muted); }
.rv-site-footer a:hover { color: var(--rv-white); }

.loading_dialog .progress { border-radius: 999px; }
.progress-bar { background-color: var(--rv-brand); }

@media (min-width: 44rem) {
    .container-md { width: min(calc(100% - 4rem), var(--rv-content-width)); }
    .panel-body,
    .card-body { padding: clamp(1.25rem, 2.5vw, 2rem); }
    .rv-footer-grid { grid-template-columns: 1fr auto; align-items: end; }
}

@media (min-width: 768px) {
    .navbar-nav + .navbar-nav { margin-inline-start: auto; }
}

/* Match the public site's compact desktop navigation rhythm without altering Blesta's generated navigation. */
@media (min-width: 64rem) {
    .nav-content {
        border-top: 0;
        background: transparent;
    }
    .nav-content nav.navbar {
        min-height: 3rem;
        padding-block: 0;
        background: transparent;
    }
    .nav-content .navbar-collapse > .container-md {
        display: flex;
        justify-content: flex-end;
        padding-inline-end: 3.75rem;
    }
    .nav-content nav.navbar .navbar-nav { gap: 1.25rem; }
    .nav-content nav.navbar .navbar-nav > li > a.nav-link {
        padding-inline: 0;
        line-height: 1.6;
    }
    .navbar-nav + .navbar-nav { margin-inline-start: 1.25rem; }
}

@media (max-width: 767.98px) {
    .rv-site-header { background: var(--rv-white); }
    .rv-header-inner { flex-wrap: wrap; min-height: 4.5rem; }
    .rv-site-brand { order: 1; }
    .rv-nav-toggle { display: grid; width: 2.8rem; height: 2.8rem; padding: 0; place-items: center; color: var(--rv-ink); background: transparent; }
    .rv-nav-toggle { order: 2; }
    .rv-staff-return.float-right {
        order: 3;
        flex-basis: 100%;
        margin-top: calc(var(--rv-space-xs) * -1);
        margin-bottom: var(--rv-space-xs);
        float: none !important;
    }
    .navbar .container-md { width: 100%; }
    .navbar-nav { padding-block: .35rem; }
    .navbar-dark .navbar-nav .nav-link { padding-inline: .75rem; }
    .title { min-height: 3.25rem; }
    .row.login { min-height: auto; }
    .nav-content .navbar.navbar-dark .navbar-nav .dropdown-menu a.dropdown-item,
    .nav-content .navbar.navbar-dark .navbar-nav ul.dropdown-menu li a {
        color: var(--rv-ink-soft) !important;
        background: transparent;
    }
    .nav-content .navbar.navbar-dark .navbar-nav .dropdown-menu a.dropdown-item:hover,
    .nav-content .navbar.navbar-dark .navbar-nav .dropdown-menu a.dropdown-item:focus,
    .nav-content .navbar.navbar-dark .navbar-nav ul.dropdown-menu li a:hover,
    .nav-content .navbar.navbar-dark .navbar-nav ul.dropdown-menu li a:focus {
        color: var(--rv-brand-dark) !important;
        background: var(--rv-surface-red);
    }
    .table-responsive {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        box-sizing: border-box;
        overscroll-behavior-inline: contain;
        border-radius: var(--rv-radius-sm);
    }
    .table-responsive > .table { min-width: 100%; width: max-content; }
    .table th,
    .table td { white-space: nowrap; }
    .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
    .nav-tabs .nav-link { white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
