/* Custom CSS */

/* Hide scrollbar for Chrome, Safari and Opera */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
.no-scrollbar {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

/* Minimal Bootstrap-like defaults for Tailwind-marked pages during transition */
body { font-family: 'Trebuchet MS', sans-serif; font-size: 14px; }
input, select, textarea {
  font-family: 'Trebuchet MS', sans-serif;
  font-size: 14px;
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid #ced4da;
  border-radius: 0.375rem;
}
label { font-family: 'Trebuchet MS', sans-serif; font-size: 14px; display: inline-block; margin-bottom: 0.25rem; }
.text-muted { color: #6c757d !important; }
.text-center { text-align: center; }
.bg-white { background-color: #fff !important; }
.bg-light { background-color: #f8f9fa !important; }
.border { border: 1px solid #dee2e6 !important; }
.rounded, .rounded-lg, .rounded-xl { border-radius: 0.5rem !important; }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important; }
.shadow-lg { box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important; }
.text-primary { color: var(--bs-primary) !important; }
.bg-primary { background-color: var(--bs-primary) !important; }
.text-muted-foreground { color: #6c757d !important; }
.py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-5 { padding-top: 3rem; padding-bottom: 3rem; }
.px-3 { padding-left: .75rem; padding-right: .75rem; }
.container-like { max-width: 960px; margin: 0 auto; padding: 0 1rem; }

/* Modern theme */
:root {
  --bs-primary: #16a34a;
  --bs-primary-rgb: 22, 163, 74;
  --bs-link-color: #16a34a;
  --bs-link-hover-color: #128a3d;
  --bs-primary-text-emphasis: #0e5b2c;
  --bs-primary-bg-subtle: #e6f4ec;
  --bs-primary-border-subtle: #b7e2c6;
}
body { background-color: #f6f8fb; }
.card { border: 1px solid #e9eef5; border-radius: .75rem; box-shadow: 0 10px 24px rgba(2, 6, 23, .06); }
.card .card-body { padding: 1.25rem 1.25rem; }
.form-control, .form-select { border-radius: .6rem; border-color: #d6dbe3; background-color: #fff; }
/* Restore visible dropdown caret for selects */
.form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%3e%3cpath d='M3.204 5h9.592L8 10.481 3.204 5z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  background-size: 16px 12px;
  padding-right: 2rem;
}
.form-control:focus, .form-select:focus { border-color: #16a34a; box-shadow: 0 0 0 .25rem rgba(22,163,74,.15); }
.btn { border-radius: .6rem; font-size: 14px; }
.btn-primary { background: linear-gradient(135deg, #16a34a, #22c55e); border-color: #16a34a; }
.btn-primary:hover { filter: brightness(.95); }
.btn-success { background: linear-gradient(135deg, #16a34a, #22c55e); border-color: #16a34a; }
.btn-outline-secondary { border-color: #c9d1e1; color: #4b5563; }
.btn-outline-secondary:hover { background-color: #f1f5f9; color: #111827; }

/* Enforce minimum readable font size across utility classes */
.small, small, .text-muted, .form-text { font-size: 14px !important; }

/* Step indicator */
#stepIndicator { scrollbar-width: none; -ms-overflow-style: none; }
#stepIndicator::-webkit-scrollbar { display: none; }
#stepIndicator .btn { box-shadow: 0 2px 8px rgba(2,6,23,.08); }

/* Removed Tailwind-like utilities; using Bootstrap classes */

/* KPI cards styling */
.card-kpi { border-radius: .75rem; border: 1px solid #e9eef5; }
.card-kpi .card-body { padding: 1rem 1.25rem; }
.card-kpi.kpi-green { background-image: linear-gradient(180deg, #f0fdf4, #ffffff); border-color: #b7e3c7; }
.card-kpi.kpi-blue { background-image: linear-gradient(180deg, #eff6ff, #ffffff); border-color: #c7d2fe; }
.card-kpi.kpi-purple { background-image: linear-gradient(180deg, #f5f3ff, #ffffff); border-color: #ddd6fe; }
.card-kpi.kpi-orange { background-image: linear-gradient(180deg, #fff7ed, #ffffff); border-color: #fed7aa; }
.card-kpi.kpi-pink { background-image: linear-gradient(180deg, #fdf2f8, #ffffff); border-color: #fbcfe8; }
.card-kpi.kpi-teal { background-image: linear-gradient(180deg, #f0fdfa, #ffffff); border-color: #99f6e4; }
.card-kpi .small { color: #6c757d; }
.card-kpi h3 { color: #111827; }
.kpi-strip { scrollbar-width: thin; }
.kpi-item { flex: 0 0 auto; width: 190px; }
.kpi-strip .card-kpi .card-body { padding: .6rem .75rem; }
.kpi-icon { padding: .35rem !important; }
.kpi-icon svg { width: 18px !important; height: 18px !important; }
.kpi-label { font-size: .8rem; line-height: 1.1; }
.kpi-value { font-size: 1.25rem; line-height: 1.1; }

@media (max-width: 576px) {
  .kpi-item { width: 170px; }
  .kpi-strip .card-kpi .card-body { padding: .55rem .65rem; }
  .kpi-value { font-size: 1.15rem; }
}
.filters-strip { scrollbar-width: thin; }
.filter-item { flex: 0 0 auto; min-width: 150px; }
.filter-item:first-child { min-width: 220px; }
.filter-item-export { min-width: 140px; }
.filters-strip .form-select, .filters-strip .form-control { min-height: 32px; }
.filters-strip .form-label.small { font-size: 11px !important; margin-bottom: .25rem !important; }
.filters-strip .input-group-text { padding-top: .25rem; padding-bottom: .25rem; padding-left: .5rem; padding-right: .5rem; }
.filters-strip .filter-item { max-width: 170px; }
.filters-strip .filter-item:first-child { max-width: 240px; }
.filters-strip .form-select { max-width: 170px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.filters-strip .form-control { max-width: 240px; }
.filters-strip select option { white-space: normal; }

/* Subtle separators and headings */
hr { border-top: 1px solid #e6ebf2; opacity: 1; }
h1,h2,h3,h4 { letter-spacing: .2px; }

/* Alerts polish */
.alert { border-radius: .75rem; border: 1px solid rgba(0,0,0,.06); }

/* Tables polish (admin pages) */
table.table-modern thead th { background-color: #f8fafc; color: #64748b; font-weight: 600; }
table.table-modern tbody tr:hover { background-color: #f9fbff; }

 


.field-wrap { display: flex; align-items: center; gap: .5rem; }
.field-wrap .form-control, .field-wrap .form-select { flex: 1 1 auto; }
.field-icon { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background-color: var(--bs-primary-bg-subtle); border: 1px solid var(--bs-primary-border-subtle); color: var(--bs-primary); }
.field-icon svg { width: 18px; height: 18px; }



.partner-strip { align-items: center; gap: .75rem; }
.partner-strip .chip { display: inline-flex; align-items: center; padding: .5rem 1rem; border-radius: 9999px; background-color: #fff; border: 2px solid #d1d9e6; font-weight: 700; font-size: 1.1rem; color: #111827; box-shadow: 0 2px 8px rgba(2,6,23,.06); white-space: nowrap; }
.partner-strip .chip:hover { box-shadow: 0 6px 16px rgba(2,6,23,.12); }
.partner-strip .entity-sep { width: 2px; height: 24px; background-color: #cbd5e1; border-radius: 1px; }
.partner-strip .chip-green { border-color: #22c55e; color: #065f46; }
.partner-strip .chip-blue { border-color: #3b82f6; color: #1e3a8a; }
.partner-strip .chip-amber { border-color: #f59e0b; color: #92400e; }
input.form-check-input[type="checkbox"] {
  accent-color: #16a34a;
  border-color: #16a34a;
  border-width: 2px;
}

.landing-nav { background: linear-gradient(180deg, #0f5d38 0%, #0d5533 100%); padding: 1.25rem 0; }
.landing-nav-shell { background: #ffffff; border-radius: 1.25rem; padding: .75rem 1rem; box-shadow: 0 14px 40px rgba(2, 6, 23, .18); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.landing-brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: inherit; }
.landing-flag { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 24px; border: 1px solid #e5e7eb; border-radius: .25rem; overflow: hidden; background: #ffffff; }
.landing-brand-card { display: inline-flex; align-items: center; gap: .6rem; padding: .45rem .75rem; border-radius: .9rem; border: 1px solid #dbe3f1; background: #ffffff; box-shadow: 0 6px 18px rgba(2, 6, 23, .08); }
.landing-brand-icon { width: 34px; height: 34px; border-radius: .75rem; background: #0b5ed7; color: #ffffff; display: inline-flex; align-items: center; justify-content: center; }
.landing-brand-text { font-weight: 700; color: #1d4ed8; white-space: nowrap; }
.landing-nav-right { display: inline-flex; align-items: center; gap: .75rem; flex-wrap: wrap; justify-content: flex-end; }
.landing-pill { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1rem; border-radius: 9999px; font-weight: 700; box-shadow: 0 8px 20px rgba(2, 6, 23, .14); white-space: nowrap; }
.landing-pill-icon { display: inline-flex; align-items: center; justify-content: center; }
.landing-pill-green { background: linear-gradient(135deg, #0c6b3b, #16a34a); color: #ffffff; }
.landing-pill-amber { background: linear-gradient(135deg, #d97706, #f59e0b); color: #ffffff; }
.landing-login { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1rem; border-radius: 9999px; border: 2px solid #bcd3ff; color: #1d4ed8; background: #ffffff; text-decoration: none; font-weight: 700; box-shadow: 0 8px 20px rgba(2, 6, 23, .12); }
.landing-login:hover { color: #1d4ed8; filter: brightness(.98); }
.landing-login-icon { display: inline-flex; align-items: center; justify-content: center; }

.landing-hero { background: radial-gradient(1200px 500px at 50% 35%, rgba(255, 255, 255, .14), rgba(255, 255, 255, 0) 60%), radial-gradient(900px 360px at 55% 45%, rgba(0, 0, 0, .08), rgba(0, 0, 0, 0) 70%), linear-gradient(180deg, #0f5d38 0%, #0d5533 100%); padding: 3.25rem 0 3.75rem; color: #ffffff; text-align: center; min-height: 340px; display: flex; align-items: center; }
.landing-hero-inner { max-width: 780px; margin-left: auto; margin-right: auto; }
.landing-title { font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 800; line-height: 1.12; margin: 0 0 1rem; text-shadow: 0 10px 28px rgba(0, 0, 0, .25); }
.landing-highlight { color: #86efac; }
.landing-subtitle { margin: 0 0 1.75rem; font-size: 1.05rem; opacity: .92; }
.landing-cta { display: inline-flex; align-items: center; gap: .6rem; padding: .75rem 1.5rem; border-radius: .65rem; background: linear-gradient(135deg, #0c6b3b, #16a34a); color: #ffffff; text-decoration: none; font-weight: 800; box-shadow: 0 14px 34px rgba(2, 6, 23, .26); border: 1px solid rgba(255, 255, 255, .18); }
.landing-cta:hover { color: #ffffff; filter: brightness(1.03); }
.landing-cta-hero { font-size: 1.25rem; padding: 1rem 2.25rem; border-radius: 9999px; }
.landing-cta-pulse { animation: landingPulse 1.35s ease-in-out infinite; }
.landing-cta-pulse svg { animation: landingNudge 1.35s ease-in-out infinite; }
@keyframes landingPulse {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 12px 30px rgba(2, 6, 23, .22); }
  50% { transform: translateY(-2px) scale(1.03); box-shadow: 0 18px 44px rgba(2, 6, 23, .28); }
}
@keyframes landingNudge {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}
@media (prefers-reduced-motion: reduce) {
  .landing-cta-pulse { animation: none; }
  .landing-cta-pulse svg { animation: none; }
}

.landing-footer { background: linear-gradient(180deg, #0f5d38 0%, #0d5533 100%); }
.landing-footer-text { color: rgba(255, 255, 255, .86); }

@media (max-height: 820px) {
  .landing-hero { padding: 2.5rem 0 3rem; min-height: 300px; }
  .landing-title { margin-bottom: .75rem; }
  .landing-subtitle { margin-bottom: 1.15rem; font-size: 1rem; }
  .landing-cta-hero { font-size: 1.1rem; padding: .9rem 1.9rem; }
  .landing-features { padding-top: 1.75rem; padding-bottom: 1.75rem; }
  .landing-features .card-body { padding-top: 1.75rem; padding-bottom: 1.75rem; }
  .landing-footer { padding-top: .5rem; padding-bottom: .5rem; }
}

input.form-check-input[type="checkbox"]:focus {
  box-shadow: 0 0 0 .25rem rgba(22, 163, 74, .25);
  border-color: #16a34a;
}

input.form-check-input[type="checkbox"]:checked {
  background-color: #16a34a;
  border-color: #16a34a;
}

/* Global input borders: make all inputs/selects/textarea outer line green */
.form-control,
.form-select,
textarea.form-control,
input.form-control {
  border-color: #16a34a;
  border-width: 2px;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus,
input.form-control:focus {
  border-color: #16a34a;
  box-shadow: 0 0 0 .25rem rgba(22, 163, 74, .25);
}

/* Fix navbar dropdown to overlay content on mobile */
@media (max-width: 991.98px) {
  #mainNav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: white;
    z-index: 9999;
    padding: 1rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    border-bottom: 1px solid #e5e7eb;
    max-height: 80vh;
    overflow-y: auto;
  }
}
