@charset "UTF-8";
/*!
 * Nobregas — Twenty-Seven theme, brand override stylesheet.
 * ---------------------------------------------------------------------------
 * This file is loaded LAST (see includes/head.tpl → {assetExists file="custom.css"}),
 * after all.min.css and theme.min.css. It never edits the compiled Bootstrap
 * files directly — it only overrides the specific properties needed to match
 * the look of nobregas.org (the public marketing site): text fonts, text
 * colors, border radius, colors (background/gradient/border) and shadows.
 * No layout, spacing, sizing or structural rule is touched here.
 *
 * Palette mirrors public/assets/css/app.css on nobregas.org:
 *   primary   #2563eb   secondary #16a34a   accent  #0891b2
 *   base-100  #ffffff   base-200  #f1f5f9   base-300 #e2e8f0
 *   base-content #0f172a (headings/body text)
 *   warning   #d97706   error     #dc2626
 * Radius: fields/buttons ~0.6rem, cards/modals ~1rem, pills/selectors ~0.75rem.
 * ---------------------------------------------------------------------------
 */

/* ── Custom properties (kept in sync with the Bootstrap variables the theme
   already declares in :root, for any code that reads them) ────────────────── */
:root {
  --blue: #2563eb;
  --indigo: #2563eb;
  --purple: #7c3aed;
  --pink: #db2777;
  --red: #dc2626;
  --orange: #d97706;
  --yellow: #d97706;
  --green: #16a34a;
  --teal: #0891b2;
  --cyan: #0891b2;
  --primary: #2563eb;
  --secondary: #64748b;
  --success: #16a34a;
  --info: #0891b2;
  --warning: #d97706;
  --danger: #dc2626;
  --light: #f1f5f9;
  --dark: #0f172a;
  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/* ── Base typography ─────────────────────────────────────────────────────── */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  color: #0f172a;
  background-color: #ffffff;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: #0f172a;
  font-weight: 700;
}

a {
  color: #2563eb;
}
a:hover {
  color: #1d4ed8;
}

.card-title,
.mc-promo-manage .panel-heading h3,
.mc-promo-login .panel-heading h3 {
  color: #0f172a;
  font-weight: 700;
}

/* ── Buttons: solid variants ──────────────────────────────────────────────── */
.btn {
  border-radius: 0.6rem;
}

.btn-primary {
  color: #fff;
  background-color: #2563eb;
  border-color: #2563eb;
}
.btn-primary:hover {
  color: #fff;
  background-color: #1d4ed8;
  border-color: #1d4ed8;
}
.btn-primary:focus, .btn-primary.focus,
.btn:focus, .btn.focus {
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.25);
}
.btn-primary.disabled, .btn-primary:disabled {
  background-color: #2563eb;
  border-color: #2563eb;
}
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #1e40af;
  border-color: #1e40af;
}
.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.5);
}

.btn-secondary {
  color: #fff;
  background-color: #64748b;
  border-color: #64748b;
}
.btn-secondary:hover {
  color: #fff;
  background-color: #52606d;
  border-color: #52606d;
}
.btn-secondary:focus, .btn-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(100, 116, 139, 0.5);
}
.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active {
  background-color: #44505b;
  border-color: #44505b;
}

.btn-success {
  color: #fff;
  background-color: #16a34a;
  border-color: #16a34a;
}
.btn-success:hover {
  color: #fff;
  background-color: #15803d;
  border-color: #15803d;
}
.btn-success:focus, .btn-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(22, 163, 74, 0.5);
}
.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active {
  background-color: #166534;
  border-color: #166534;
}

.btn-info {
  color: #fff;
  background-color: #0891b2;
  border-color: #0891b2;
}
.btn-info:hover {
  color: #fff;
  background-color: #0e7490;
  border-color: #0e7490;
}
.btn-info:focus, .btn-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(8, 145, 178, 0.5);
}
.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active {
  background-color: #155e75;
  border-color: #155e75;
}

.btn-warning {
  color: #fff;
  background-color: #d97706;
  border-color: #d97706;
}
.btn-warning:hover {
  color: #fff;
  background-color: #b45309;
  border-color: #b45309;
}
.btn-warning:focus, .btn-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(217, 119, 6, 0.5);
}
.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active {
  color: #fff;
  background-color: #92400e;
  border-color: #92400e;
}

.btn-danger {
  color: #fff;
  background-color: #dc2626;
  border-color: #dc2626;
}
.btn-danger:hover {
  color: #fff;
  background-color: #b91c1c;
  border-color: #b91c1c;
}
.btn-danger:focus, .btn-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 38, 38, 0.5);
}
.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active {
  background-color: #991b1b;
  border-color: #991b1b;
}

/* ── Buttons: outline variants ────────────────────────────────────────────── */
.btn-outline-primary {
  color: #2563eb;
  border-color: #2563eb;
}
.btn-outline-primary:hover {
  color: #fff;
  background-color: #2563eb;
  border-color: #2563eb;
}
.btn-outline-primary:focus, .btn-outline-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.5);
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  color: #2563eb;
}
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
  color: #fff;
  background-color: #2563eb;
  border-color: #2563eb;
}

.btn-outline-secondary {
  color: #64748b;
  border-color: #64748b;
}
.btn-outline-secondary:hover {
  color: #fff;
  background-color: #64748b;
  border-color: #64748b;
}

.btn-outline-success {
  color: #16a34a;
  border-color: #16a34a;
}
.btn-outline-success:hover {
  color: #fff;
  background-color: #16a34a;
  border-color: #16a34a;
}

.btn-outline-info {
  color: #0891b2;
  border-color: #0891b2;
}
.btn-outline-info:hover {
  color: #fff;
  background-color: #0891b2;
  border-color: #0891b2;
}

.btn-outline-warning {
  color: #d97706;
  border-color: #d97706;
}
.btn-outline-warning:hover {
  color: #fff;
  background-color: #d97706;
  border-color: #d97706;
}

.btn-outline-danger {
  color: #dc2626;
  border-color: #dc2626;
}
.btn-outline-danger:hover {
  color: #fff;
  background-color: #dc2626;
  border-color: #dc2626;
}

.btn-link {
  color: #2563eb;
}

/* ── Forms ─────────────────────────────────────────────────────────────────── */
.form-control,
.custom-select,
.input-group-text,
.custom-file-label {
  border-radius: 0.6rem;
  color: #0f172a;
}
.form-control:focus,
.custom-select:focus {
  border-color: #93c5fd;
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.25);
}

.custom-control-input:checked ~ .custom-control-label::before {
  border-color: #2563eb;
  background-color: #2563eb;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.25);
}
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #93c5fd;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #2563eb;
  background-color: #2563eb;
}
.custom-range::-webkit-slider-thumb,
.custom-range::-moz-range-thumb,
.custom-range::-ms-thumb {
  background-color: #2563eb;
}

/* ── Cards ─────────────────────────────────────────────────────────────────── */
.card,
.mc-promo-manage,
.mc-promo-login {
  border-radius: 1rem;
  border-color: #e2e8f0;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.05);
}
.card-header {
  background-color: #f1f5f9;
  border-color: #e2e8f0;
}
.card-header:first-child {
  border-radius: calc(1rem - 1px) calc(1rem - 1px) 0 0;
}
.card-footer {
  background-color: #f1f5f9;
  border-color: #e2e8f0;
}
.card-footer:last-child {
  border-radius: 0 0 calc(1rem - 1px) calc(1rem - 1px);
}

/* ── Dropdowns ─────────────────────────────────────────────────────────────── */
.dropdown-menu {
  border-radius: 0.75rem;
  border-color: #e2e8f0;
  box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.1), 0 8px 10px -6px rgba(15, 23, 42, 0.06);
}
.dropdown-item.active,
.dropdown-item:active {
  background-color: #2563eb;
  color: #fff;
}

/* ── Modals ────────────────────────────────────────────────────────────────── */
.modal-content {
  border-radius: 1rem;
  box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.15), 0 8px 10px -6px rgba(15, 23, 42, 0.08);
}
.modal-header {
  background-color: #f1f5f9;
}

/* ── Alerts (light tint bg + border + darker text, per bootstrap variant) ──── */
.alert {
  border-radius: 0.75rem;
}
.alert-primary {
  color: #1e40af;
  background-color: #dbeafe;
  border-color: #bfdbfe;
}
.alert-primary hr { border-top-color: #93c5fd; }
.alert-primary .alert-link { color: #1e3a8a; }

.alert-secondary {
  color: #334155;
  background-color: #f1f5f9;
  border-color: #e2e8f0;
}
.alert-secondary .alert-link { color: #1e293b; }

.alert-success {
  color: #166534;
  background-color: #dcfce7;
  border-color: #bbf7d0;
}
.alert-success .alert-link { color: #14532d; }

.alert-info {
  color: #155e75;
  background-color: #cffafe;
  border-color: #a5f3fc;
}
.alert-info .alert-link { color: #164e63; }

.alert-warning {
  color: #92400e;
  background-color: #fef3c7;
  border-color: #fde68a;
}
.alert-warning .alert-link { color: #78350f; }

.alert-danger {
  color: #991b1b;
  background-color: #fee2e2;
  border-color: #fecaca;
}
.alert-danger .alert-link { color: #7f1d1d; }

/* ── Badges ────────────────────────────────────────────────────────────────── */
.badge {
  border-radius: 0.5rem;
}
.badge-primary { background-color: #2563eb; }
.badge-secondary { background-color: #64748b; }
.badge-success { background-color: #16a34a; }
.badge-info { background-color: #0891b2; }
.badge-warning { background-color: #d97706; color: #fff; }
.badge-danger { background-color: #dc2626; }
a.badge-primary:focus, a.badge-primary.focus { box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.5); }
a.badge-success:focus, a.badge-success.focus { box-shadow: 0 0 0 0.2rem rgba(22, 163, 74, 0.5); }
a.badge-info:focus, a.badge-info.focus { box-shadow: 0 0 0 0.2rem rgba(8, 145, 178, 0.5); }
a.badge-warning:focus, a.badge-warning.focus { box-shadow: 0 0 0 0.2rem rgba(217, 119, 6, 0.5); }
a.badge-danger:focus, a.badge-danger.focus { box-shadow: 0 0 0 0.2rem rgba(220, 38, 38, 0.5); }

/* ── Utility color classes ────────────────────────────────────────────────── */
.bg-primary { background-color: #2563eb !important; }
.bg-secondary { background-color: #64748b !important; }
.bg-success { background-color: #16a34a !important; }
.bg-info { background-color: #0891b2 !important; }
.bg-warning { background-color: #d97706 !important; }
.bg-danger { background-color: #dc2626 !important; }
.bg-light { background-color: #f1f5f9 !important; }
.bg-dark { background-color: #0f172a !important; }

.text-primary { color: #2563eb !important; }
.text-secondary { color: #64748b !important; }
.text-success { color: #16a34a !important; }
.text-info { color: #0891b2 !important; }
.text-warning { color: #d97706 !important; }
.text-danger { color: #dc2626 !important; }
.text-dark { color: #0f172a !important; }

.border-primary { border-color: #2563eb !important; }
.border-secondary { border-color: #64748b !important; }
.border-success { border-color: #16a34a !important; }
.border-info { border-color: #0891b2 !important; }
.border-warning { border-color: #d97706 !important; }
.border-danger { border-color: #dc2626 !important; }

/* ── List groups, nav pills/tabs, pagination ──────────────────────────────── */
.list-group-item.active {
  color: #fff;
  background-color: #2563eb;
  border-color: #2563eb;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: #fff;
  background-color: #2563eb;
}
.nav-tabs .nav-link.active {
  color: #0f172a;
}
.page-link {
  color: #2563eb;
  border-radius: 0.5rem;
}
.page-item.active .page-link {
  color: #fff;
  background-color: #2563eb;
  border-color: #2563eb;
}

/* ── Header, navbar, topbar ────────────────────────────────────────────────── */
header.header {
  background-color: #ffffff;
  border-bottom: 1px solid #e2e8f0;
}
header.header .topbar {
  background-color: #0f172a;
  color: rgba(255, 255, 255, 0.75);
}
header.header .topbar .btn {
  color: rgba(255, 255, 255, 0.75);
}
header.header .navbar a {
  color: #0f172a;
}
header.header .toolbar .nav-link {
  border-radius: 0.6rem;
}
header.header .search {
  border-radius: 0.6rem;
}

.primary-bg-color {
  background-color: #f1f5f9;
}

.master-breadcrumb {
  background-color: #f1f5f9;
}

/* ── Footer ────────────────────────────────────────────────────────────────── */
/* Redesigned to mirror the public nobregas.org footer 1:1: brand + tagline,
   two link columns ("Links úteis" / "Legal"), then a bottom bar with the
   copyright notice and an "operational" status pill. Structure lives in
   footer.tpl (Bootstrap grid); only look-and-feel rules live here. */
footer.footer {
  background-color: #f1f5f9;
  color: #334155;
  border-top: 1px solid #e2e8f0;
  padding: 0;
}
footer.footer .footer-top {
  padding: 48px 15px;
}
footer.footer .footer-brand-col {
  margin-bottom: 24px;
}
footer.footer .footer-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #0f172a;
}
footer.footer .footer-brand-link:hover {
  color: #0f172a;
  text-decoration: none;
}
footer.footer .footer-brand-logo {
  height: 32px;
  width: auto;
}
footer.footer .footer-brand-name {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
}
footer.footer .footer-tagline {
  margin: 12px 0 0;
  max-width: 320px;
  font-size: 15px;
  color: #64748b;
}
footer.footer .footer-col {
  margin-bottom: 24px;
}
footer.footer .footer-col-title {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}
footer.footer .footer-link-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
footer.footer .footer-link-list li {
  margin-bottom: 8px;
}
footer.footer .footer-link-list a,
footer.footer .nav-link {
  color: #64748b;
  font-size: 15px;
}
footer.footer .footer-link-list a:hover {
  color: #0f172a;
  text-decoration: none;
}
footer.footer .btn {
  background-color: rgba(15, 23, 42, 0.06);
  color: #0f172a;
}
footer.footer .footer-bottom {
  border-top: 1px solid #e2e8f0;
}
footer.footer .footer-bottom-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 15px;
  font-size: 13px;
  color: #64748b;
}
@media (min-width: 768px) {
  footer.footer .footer-bottom-inner {
    flex-direction: row;
  }
}
footer.footer .footer-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
footer.footer .footer-status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #16a34a;
}
footer.footer .footer-lang-currency-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  padding: 4px 10px;
  font-size: 13px;
  color: #64748b;
  background-color: transparent;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
}
footer.footer .footer-lang-currency-btn:hover {
  color: #0f172a;
  background-color: #f1f5f9;
  border-color: #cbd5e1;
}
footer.footer .footer-lang-currency-btn .iti-flag {
  vertical-align: middle;
}

/* ── Sidebar ───────────────────────────────────────────────────────────────── */
.sidebar .list-group-item.active,
.sidebar .list-group-item.active:hover,
.sidebar .list-group-item.active:focus {
  background-color: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

/* ── WHMCS status pills (map old brand blue + semantic colors) ────────────── */
.status-onhold,
.status-payment-pending,
.status-delivered {
  background-color: #2563eb;
}
.status-active,
.status-open,
.status-completed {
  background-color: #16a34a;
}
.status-pending {
  background-color: #dc2626;
}
.status-pending-transfer,
.status-suspended,
.status-customer-reply,
.status-pending-registration,
.status-redemption,
.status-grace {
  background-color: #d97706;
}

/* ── Generic shadow utilities ──────────────────────────────────────────────── */
.shadow-sm { box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important; }
.shadow { box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.05) !important; }
