/* VisaPNG Bootstrap-Lite (local replacement) */
/* Provides: container/grid, typography, cards, forms, buttons, nav-tabs/pills, progress, alerts, utilities */

:root{
  --bs-body-bg:#f6f7fb;
  --bs-body-color:#111827;
  --bs-muted:#6b7280;
  --bs-border:#e5e7eb;
  --bs-card-bg:#ffffff;
  --bs-primary:#2563eb;
  --bs-success:#16a34a;
  --bs-danger:#dc2626;
  --bs-warning:#f59e0b;
  --bs-dark:#111827;
  --bs-radius:14px;
  --bs-shadow:0 10px 30px rgba(17,24,39,.08);
  --bs-shadow-sm:0 6px 18px rgba(17,24,39,.08);
  --bs-focus:0 0 0 .25rem rgba(37,99,235,.25);
  --bs-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Arial,sans-serif;
}

/* Reset / base */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--bs-font);
  background:var(--bs-body-bg);
  color:var(--bs-body-color);
  line-height:1.5;
}
img{max-width:100%;height:auto}
a{color:var(--bs-primary);text-decoration:none}
a:hover{text-decoration:underline}

/* Container */
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}
.py-4{padding-top:24px;padding-bottom:24px}

/* Typography */
.h5{font-size:1.1rem;font-weight:700}
.h6{font-size:.95rem;font-weight:700}
.small{font-size:.9rem}
.text-center{text-align:center}
.text-end{text-align:right}
.text-muted{color:var(--bs-muted)}
.mb-0{margin-bottom:0}
.mb-1{margin-bottom:6px}
.mb-2{margin-bottom:12px}
.mb-3{margin-bottom:16px}
.mt-1{margin-top:6px}
.mt-2{margin-top:12px}
.mt-3{margin-top:16px}

/* Layout helpers */
.d-flex{display:flex}
.flex-wrap{flex-wrap:wrap}
.justify-content-between{justify-content:space-between}
.justify-content-center{justify-content:center}
.align-items-center{align-items:center}
.align-items-end{align-items:flex-end}
.gap-2{gap:10px}

/* Grid (minimal) */
.row{display:flex;flex-wrap:wrap;margin:-10px}
.row>*{padding:10px}
.col-lg-7{flex:0 0 auto;width:58.333%}
.col-lg-5{flex:0 0 auto;width:41.666%}
.col-md-2{flex:0 0 auto;width:16.666%}
.col-md-3{flex:0 0 auto;width:25%}
.col-md-4{flex:0 0 auto;width:33.333%}
.col-md-5{flex:0 0 auto;width:41.666%}
.col-md-12{flex:0 0 auto;width:100%}
@media (max-width: 992px){
  .col-lg-7,.col-lg-5{width:100%}
}
@media (max-width: 768px){
  .col-md-2,.col-md-3,.col-md-4,.col-md-5{width:100%}
}

/* Card */
.card{
  background:var(--bs-card-bg);
  border:1px solid var(--bs-border);
  border-radius:var(--bs-radius);
  box-shadow:var(--bs-shadow-sm);
}
.card-body{padding:18px}
.shadow-sm{box-shadow:var(--bs-shadow-sm)}

/* Forms */
.form-label{display:block;font-weight:600;margin:0 0 6px}
.form-control{
  width:100%;
  display:block;
  padding:10px 12px;
  border:1px solid var(--bs-border);
  border-radius:12px;
  background:#fff;
  color:var(--bs-body-color);
  outline:none;
}
.form-control:focus{border-color:rgba(37,99,235,.7);box-shadow:var(--bs-focus)}
.form-control[readonly]{background:#f9fafb;color:#374151}
.form-check{display:flex;gap:10px;align-items:flex-start}
.form-check-input{margin-top:3px;width:18px;height:18px}
.form-check-label{font-size:.95rem;color:#374151}
.w-100{width:100%}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid transparent;
  font-weight:700;
  cursor:pointer;
  user-select:none;
  transition:transform .05s ease, box-shadow .15s ease, background .15s ease;
}
.btn:active{transform:translateY(1px)}
.btn-success{background:var(--bs-success);color:#fff}
.btn-dark{background:var(--bs-dark);color:#fff}
.btn-outline-primary{background:transparent;border-color:rgba(37,99,235,.45);color:var(--bs-primary)}
.btn-outline-secondary{background:transparent;border-color:rgba(107,114,128,.45);color:#374151}
.btn-sm{padding:7px 10px;border-radius:10px;font-size:.9rem}
.btn:hover{box-shadow:0 10px 18px rgba(17,24,39,.08)}
.btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn-green{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}

/* Nav tabs/pills */
.nav{display:flex;list-style:none;padding:0;margin:0;border-bottom:1px solid var(--bs-border)}
.nav-tabs{gap:0}
.nav-tabs li{list-style:none}
.nav-tabs a{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  color:#374151;
  border:1px solid transparent;
  border-top-left-radius:12px;
  border-top-right-radius:12px;
}
.nav-tabs a.active{
  background:#fff;
  border-color:var(--bs-border);
  border-bottom-color:#fff;
  color:#111827;
}
.nav-pills{gap:8px;border-bottom:0}
.nav-pills .nav-link{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid var(--bs-border);
  color:#374151;
}
.nav-pills .nav-link.active{background:rgba(37,99,235,.1);border-color:rgba(37,99,235,.35);color:#1d4ed8}

/* Progress */
.progress{
  width:100%;
  height:12px;
  background:#eef2ff;
  border-radius:999px;
  overflow:hidden;
  border:1px solid rgba(37,99,235,.12);
}
.progress-bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,#22c55e,#16a34a);
  transition:width .25s ease;
}

/* Alerts */
.alert{
  border-radius:14px;
  padding:12px 14px;
  border:1px solid var(--bs-border);
}
.alert-success{background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.25)}
.alert-danger{background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.25)}
.alert-info{background:rgba(37,99,235,.07);border-color:rgba(37,99,235,.22)}

/* Lists (for your summary) */
.list-group{padding:0;margin:0;list-style:none}
.list-group-item{
  padding:10px 12px;
  border:1px solid var(--bs-border);
  border-top:0;
  background:#fff;
}
.list-group-item:first-child{border-top:1px solid var(--bs-border);border-top-left-radius:14px;border-top-right-radius:14px}
.list-group-item:last-child{border-bottom-left-radius:14px;border-bottom-right-radius:14px}

/* Visibility helpers */
.d-none{display:none!important}

/* Wizard step */
.wizard-step{display:none}
.wizard-step.active{display:block}

/* Inputs with "date" class */
.date{letter-spacing:.2px}