/* Primegate IT Solutions. Change the palette here to try another theme. */
:root {
  color-scheme: light;
  --primegate-red: #a43c4e;
  --primegate-red-dark: #842b3b;
  --primegate-pastel: #f4c4ca;
  --primegate-soft: #fff0f2;
  --primegate-canvas: #fff8f8;
  --primegate-ink: #35252c;
  --primegate-muted: #79666e;
  --primegate-border: #eedde1;
  --primegate-shadow: 0 8px 26px rgba(93, 35, 50, .055);
  --evolve-brand: var(--primegate-red);
  --evolve-brand-dark: var(--primegate-red-dark);
  --evolve-brand-soft: var(--primegate-soft);
  --evolve-bg: var(--primegate-canvas);
  --evolve-text: var(--primegate-ink);
  --evolve-muted: var(--primegate-muted);
  --evolve-border: var(--primegate-border);
  --evolve-sidebar: #fff0f2;
  --evolve-sidebar-muted: #8b6974;
  --evolve-shadow: var(--primegate-shadow);
  --portal-accent: var(--primegate-red);
  --portal-accent-dark: var(--primegate-red-dark);
  --portal-accent-soft: var(--primegate-soft);
  --portal-bg: var(--primegate-canvas);
  --portal-border: var(--primegate-border);
  --portal-text: var(--primegate-ink);
  --portal-muted: var(--primegate-muted);
  --public-brand: var(--primegate-red);
  --public-brand-dark: var(--primegate-red-dark);
  --public-brand-deep: #572632;
  --public-brand-soft: var(--primegate-soft);
  --public-soft: var(--primegate-canvas);
  --public-text: var(--primegate-ink);
  --public-muted: var(--primegate-muted);
  --public-border: var(--primegate-border);
  --public-shadow: 0 18px 45px rgba(93, 35, 50, .075);
  --public-shadow-small: var(--primegate-shadow);
  --doc-brand: var(--primegate-red);
  --doc-brand-dark: var(--primegate-red-dark);
  --doc-brand-soft: var(--primegate-soft);
  --doc-border: var(--primegate-border);
  --doc-soft: var(--primegate-canvas);
}

/* Public pages */
.public-header { border-bottom-color: var(--primegate-border); }
.public-brand img { width: 210px; padding: 5px 0; }
.public-hero {
  background: radial-gradient(circle at 85% 15%, #f7d5da 0, transparent 31%),
    linear-gradient(180deg, #fff 0%, var(--primegate-canvas) 100%);
}
.public-hero::after { border-color: rgba(164, 60, 78, .045); }
.public-login-page {
  background: radial-gradient(circle at 12% 12%, #f7d5da, transparent 33%), var(--primegate-canvas);
}
.public-page-hero { background: var(--primegate-soft); }
.public-footer { background: #35242d; }
.public-footer-copy, .public-footer a:not(.public-footer-brand) { color: #dbc4cd; }
.public-footer-brand { padding: 12px 14px; border-radius: 12px; }
.public-footer-brand img { width: 210px; }
.public-login-card { border-color: var(--primegate-border); box-shadow: var(--primegate-shadow); }
.public-button-primary { box-shadow: 0 7px 18px rgba(164, 60, 78, .14); }
.public-button-secondary { border-color: var(--primegate-border); }
.public-network-card { border-color: var(--primegate-border); }
.public-network-line { background: #f6e7eb; }
.public-network-line::before { background: linear-gradient(90deg, #842b3b, #e4a0ab); }
.public-form-control:focus, .public-input:focus {
  border-color: #bd6a79; box-shadow: 0 0 0 3px rgba(164, 60, 78, .12);
}

/* Administration and subscriber navigation */
.main-sidebar, .main-sidebar.portal-sidebar {
  background: #fff0f2 !important;
  border-right: 1px solid var(--primegate-border);
  box-shadow: 5px 0 22px rgba(93, 35, 50, .035) !important;
}
.main-sidebar .primegate-brand-link {
  display: flex; justify-content: center; align-items: center; height: 80px;
  padding: 12px 18px; border-bottom: 1px solid var(--primegate-border) !important;
}
.primegate-wordmark { display: block; width: 206px; max-width: 100%; height: auto; }
.primegate-symbol { display: none; width: 31px; height: 34px; object-fit: contain; }
.main-sidebar .user-panel { background: rgba(255, 255, 255, .72); }
.main-sidebar .user-panel .info a:first-child { color: #513740 !important; }
.main-sidebar .nav-header, .portal-sidebar .nav-header { color: #8b6974; }
.main-sidebar .nav-sidebar .nav-item > .nav-link,
.portal-sidebar .nav-sidebar .nav-item > .nav-link { color: #72535e !important; }
.main-sidebar .nav-sidebar .nav-item > .nav-link:hover,
.portal-sidebar .nav-sidebar .nav-item > .nav-link:hover {
  color: #6a2838 !important; background: #fbe0e4 !important;
}
.main-sidebar .nav-sidebar .nav-item > .nav-link.active,
.portal-sidebar .nav-sidebar .nav-item > .nav-link.active {
  color: #672735 !important; background: var(--primegate-pastel) !important;
  box-shadow: none !important; font-weight: 700;
}
.main-sidebar .nav-treeview { background: transparent !important; }
.main-header.navbar { border-bottom-color: var(--primegate-border); }
.main-header .nav-link { color: #79616a !important; }
.evolve-navbar-search .form-control, .evolve-navbar-search .input-group-append .btn {
  background: #fff8f9; border-color: var(--primegate-border);
}
.evolve-navbar-search .form-control:focus, .form-control:focus {
  border-color: #c57988; box-shadow: 0 0 0 .15rem rgba(164, 60, 78, .10);
}
.evolve-profile-pill:hover, .dropdown-item:hover { background: var(--primegate-soft); }
.main-footer { border-top-color: var(--primegate-border); }

/* Shared actions. Status colours keep their financial meaning. */
.btn-primary, .bg-primary, .card-primary > .card-header:not(.bg-transparent) {
  background: var(--primegate-red) !important; border-color: var(--primegate-red) !important; color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-portal-primary:hover {
  background: var(--primegate-red-dark) !important; border-color: var(--primegate-red-dark) !important;
}
.btn-outline-primary { color: var(--primegate-red); border-color: var(--primegate-red); }
.btn-outline-primary:hover, .btn-outline-primary.active {
  background: var(--primegate-red); color: #fff; border-color: var(--primegate-red);
}
.btn.btn-portal-primary, .btn.btn-portal-primary:hover,
.btn.btn-portal-primary:focus, .btn.btn-portal-primary:active { color: #fff !important; }
.text-primary { color: var(--primegate-red) !important; }
.btn-success { background: #26734f !important; border-color: #26734f !important; color: #fff !important; }
.btn-success:hover { background: #1c5c3e !important; border-color: #1c5c3e !important; }
.badge-success { background: #26734f; color: #fff; }
.alert-success { background: #edf7f0; color: #245c3e; border-color: #cfe5d6; }
.evolve-account-status.status-active { background: #edf7f0; color: #245c3e; }
.portal-status-active { background: #edf7f0; color: #245c3e; }
.evolve-metric.active { --metric-color: #26734f; }
.evolve-filter-chip:hover, .evolve-filter-chip.active,
.evolve-range-btn:hover, .evolve-icon-action:hover {
  background: var(--primegate-soft) !important; border-color: #e8bec8 !important;
}
.dataTables_wrapper .btn-secondary:hover {
  background: var(--primegate-soft) !important; border-color: #e8bec8 !important;
}
.evolve-ap-hero { background: linear-gradient(135deg, #fff, #fff4f5); }
.page-item.active .page-link { background: var(--primegate-red); border-color: var(--primegate-red); }
.page-link { color: var(--primegate-red); }
input[type=checkbox], input[type=radio] { accent-color: var(--primegate-red); }
:focus-visible { outline: 2px solid var(--primegate-red); outline-offset: 3px; }

/* Collector portal */
.primegate-collector { min-height: 100vh; background: var(--primegate-canvas); color: var(--primegate-ink); }
.primegate-collector > header { background: #fff0f2; color: #633240; border-bottom: 1px solid var(--primegate-border); }
.primegate-collector-brand { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; text-decoration: none; }
.primegate-collector-brand img { width: 205px; height: auto; }
.primegate-collector-brand span { font-size: .78rem; font-weight: 650; }
.primegate-collector a { color: var(--primegate-red); }
.primegate-collector button { background: var(--primegate-red); border-color: var(--primegate-red); }
.primegate-collector article, .primegate-collector .panel,
.primegate-collector input, .primegate-collector select { border-color: var(--primegate-border); }
.primegate-collector .notice { background: var(--primegate-soft); border-color: var(--primegate-red); }
.primegate-collector .muted, .primegate-collector small { color: var(--primegate-muted); }

/* Printed documents */
.primegate-print-logo { display: block; width: 240px; max-width: 100%; height: auto; }
.primegate-print-name { color: var(--primegate-red); }
.document { border-top-color: var(--primegate-red); }
.document .net-pay { border-color: #e8bec8; border-left-color: var(--primegate-red); background: var(--primegate-soft); }
.document .net-label, .document .net-amount, .document .brand { color: var(--primegate-red-dark); }
.document-shell .document-brandbar { background: var(--primegate-red); }
.statement-logo { object-fit: contain; }
@media (min-width: 992px) {
  .sidebar-collapse .main-sidebar:not(:hover) .primegate-wordmark { display: none; }
  .sidebar-collapse .main-sidebar:not(:hover) .primegate-symbol { display: block; }
  .sidebar-collapse .main-sidebar:not(:hover) .primegate-brand-link { padding: 12px; }
}
@media (max-width: 575px) {
  .public-brand img { width: 175px; }
  .primegate-print-logo { width: 200px; }
  .primegate-collector-brand img { width: 180px; }
}
@media print {
  .primegate-collector-brand { display: block; }
  .primegate-collector article:first-of-type::before {
    content: "Primegate IT Solutions · Collector receipt"; display: block;
    font-weight: 700; color: #842b3b; margin-bottom: 16px;
  }
}
