:root {
  /* Brand - sourced from the GWConnect corporate site (olive-green hero, white type) */
  --gwc-brand:         #3e4b27;
  --gwc-brand-hover:   #2e3a1d;
  --gwc-accent:        #6b8e4a;

  /* Surface */
  --gwc-page-bg:       #f4f6f9;
  --gwc-card-bg:       #ffffff;
  --gwc-border:        #c6cfd8;

  /* Status - map to Bootstrap semantic utilities */
  --gwc-locked:        #dc3545;
  --gwc-pending:       #fd7e14;
  --gwc-info:          #0dcaf0;
  --gwc-complete:      #198754;
  --gwc-inactive:      #6c757d;
}

body {
  background-color: var(--gwc-page-bg);
}

.btn-primary {
  --bs-btn-bg: var(--gwc-brand);
  --bs-btn-border-color: var(--gwc-brand);
  --bs-btn-hover-bg: var(--gwc-brand-hover);
  --bs-btn-hover-border-color: var(--gwc-brand-hover);
  --bs-btn-active-bg: var(--gwc-brand-hover);
  --bs-btn-active-border-color: var(--gwc-brand-hover);
}
.btn-outline-primary {
  --bs-btn-color: var(--gwc-brand);
  --bs-btn-border-color: var(--gwc-brand);
  --bs-btn-hover-bg: var(--gwc-brand);
  --bs-btn-hover-border-color: var(--gwc-brand);
  --bs-btn-active-bg: var(--gwc-brand);
  --bs-btn-active-border-color: var(--gwc-brand);
}
.text-primary { color: var(--gwc-brand) !important; }
.badge.bg-primary { background-color: var(--gwc-brand) !important; }
a { color: var(--gwc-brand); }
a:hover { color: var(--gwc-brand-hover); }

.gwc-navbar {
  background-color: var(--gwc-brand);
  height: 56px;
  z-index: 1030;
}

.gwc-sidebar {
  position: fixed;
  top: 56px;
  left: 0;
  bottom: 0;
  width: 220px;
  background-color: var(--gwc-card-bg);
  border-right: 1px solid var(--gwc-border);
  z-index: 1020;
  overflow-y: auto;
}

.gwc-sidebar .nav-link {
  color: #343a40;
  padding: 0.5rem 1.25rem;
  font-size: 0.9rem;
  border-radius: 0;
}

.gwc-sidebar .nav-link:hover {
  background-color: #eef1f4;
  color: var(--gwc-brand);
}

.gwc-sidebar .nav-link.active {
  background-color: #e6ecdc;
  color: var(--gwc-accent);
  font-weight: 600;
  border-left: 3px solid var(--gwc-accent);
}

.gwc-sidebar .nav-section-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6c757d;
  margin-bottom: 0.25rem;
}

.content-wrapper {
  margin-left: 220px;
  padding-top: 56px;
  min-height: 100vh;
  background-color: var(--gwc-page-bg);
  display: flex;
  flex-direction: column;
}

.content-wrapper .container-fluid.p-4 {
  flex-grow: 1;
}

@media (max-width: 991.98px) {
  .gwc-sidebar { display: none !important; }
  .content-wrapper { margin-left: 0; }
}

.content-wrapper.no-sidebar {
  margin-left: 0;
}

.gwc-footer {
  border-top: 1px solid var(--gwc-border);
  background-color: var(--gwc-card-bg);
  margin-top: auto;
}

.gwc-card-highlight { border-left: 4px solid var(--gwc-accent) !important; }

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}