/* PCAMSCIMS – Public Application Form CSS */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  --pc-primary: #405189;
  --pc-success: #0ab39c;
  --pc-warning: #f7b84b;
  --pc-danger:  #f06548;
}

.pcamscims-wrap,
.pcamscims-auth-card {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  max-width: 720px;
  margin: 0 auto;
  padding-bottom: 3rem;
}

/* Topbar */
.pcamscims-topbar {
  background: var(--pc-primary);
  padding: .75rem 1.25rem;
  border-radius: 10px 10px 0 0;
  margin-bottom: .5rem;
}

/* Form header */
.pcamscims-form-header { text-align:center; padding:1.5rem 1.25rem 1rem; }
.pcamscims-form-header h1 { font-weight:800; font-size:1.4rem; color:#1a2640; margin:.5rem 0 .25rem; }
.pcamscims-form-header p  { color:#878a99; font-size:.88rem; margin:0; }
.pcamscims-org-badge {
  display:inline-block; background:rgba(64,81,137,.1); color:var(--pc-primary);
  font-size:.72rem; font-weight:700; padding:.25rem .85rem; border-radius:50px;
  text-transform:uppercase; letter-spacing:.5px; margin-bottom:.5rem;
}

/* Cards */
.pcamscims-card {
  background:#fff; border-radius:12px;
  box-shadow:0 1px 4px rgba(0,0,0,.07);
  overflow:hidden; margin-bottom:.75rem;
}
.pcamscims-card .card-body   { padding:1.25rem; }
.pcamscims-card .card-footer {
  padding:.85rem 1.25rem;
  background:#f8f9fa;
  border-top:1px solid #e9ebec;
  display:flex; justify-content:space-between; align-items:center;
}

/* Step system */
.section-label {
  font-size:.78rem; font-weight:800; color:#878a99;
  text-transform:uppercase; letter-spacing:.5px;
  margin-bottom:1rem;
}
.pcams-step { display:none; }
.pcams-step.active { display:block; }

/* Choice buttons */
.pcams-choice-btn {
  display:block; padding:.65rem 1rem;
  border:2px solid #dee2e6; border-radius:8px;
  cursor:pointer; text-align:center;
  font-size:.87rem; font-weight:600; color:#495057;
  transition:all .2s; user-select:none;
}
.pcams-choice-btn input { display:none; }
.pcams-choice-btn:hover  { border-color:var(--pc-primary); color:var(--pc-primary); }
.pcams-choice-btn.selected {
  border-color:var(--pc-primary);
  background:rgba(64,81,137,.08); color:var(--pc-primary);
}

/* Location cards */
.pcams-fp-card {
  display:block; border:2px solid #dee2e6; border-radius:10px;
  padding:.75rem; cursor:pointer; text-align:center; transition:all .2s;
}
.pcams-fp-card input { display:none; }
.pcams-fp-card:hover  { border-color:var(--pc-primary); }
.pcams-fp-card.selected { border-color:var(--pc-primary); background:rgba(64,81,137,.05); }
.fp-icon {
  width:48px; height:48px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto .5rem;
}

/* Upload zones */
.pcamscims-upload-zone {
  border:2px dashed #ced4da; border-radius:10px;
  padding:1.5rem; text-align:center; cursor:pointer;
  transition:all .2s; color:#6c757d;
}
.pcamscims-upload-zone:hover { border-color:var(--pc-primary); background:rgba(64,81,137,.04); }

/* Calendar */
.pcams-calendar { border:1px solid #dee2e6; border-radius:10px; padding:.75rem; }
.cal-day {
  width:100%; aspect-ratio:1; border-radius:6px; border:none;
  cursor:pointer; font-size:.8rem; font-weight:600; background:transparent; transition:all .2s;
}
.cal-day:hover:not(:disabled) { background:rgba(64,81,137,.1); }
.cal-day.available { color:var(--pc-success); }
.cal-day.almost-full { color:var(--pc-warning); }
.cal-day.full { color:var(--pc-danger); text-decoration:line-through; }
.cal-day.selected { background:var(--pc-primary) !important; color:#fff !important; border-radius:6px; }
.cal-day:disabled { color:#ced4da; cursor:default; }

/* Time slots */
.time-slot-btn {
  display:block; width:100%; padding:.5rem .85rem;
  border:1.5px solid #dee2e6; border-radius:7px; background:#fff;
  cursor:pointer; font-size:.85rem; font-weight:600;
  text-align:left; margin-bottom:.4rem; transition:all .2s;
}
.time-slot-btn:hover    { border-color:var(--pc-primary); color:var(--pc-primary); }
.time-slot-btn.selected { border-color:var(--pc-primary); background:rgba(64,81,137,.08); color:var(--pc-primary); }

/* Company dropdown */
#pcamscims-company-dropdown .list-group-item { cursor:pointer; font-size:.88rem; }
#pcamscims-company-dropdown .list-group-item:hover { background:rgba(64,81,137,.07); }

/* Review cards */
.review-card { border:1px solid #e9ebec; border-radius:10px; margin-bottom:.6rem; overflow:hidden; }
.review-card-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:.6rem 1rem; background:#f8f9fa; border-bottom:1px solid #e9ebec;
  font-weight:700; font-size:.84rem;
}
.review-card-body { padding:.6rem 1rem; font-size:.84rem; }
.review-row { display:flex; gap:1rem; margin-bottom:.25rem; }
.review-label { color:#878a99; min-width:130px; }
.review-value { font-weight:600; color:#1a2640; }

/* Auth card */
.pcamscims-auth-card { max-width:440px; margin:2rem auto; }
.pcamscims-auth-header {
  background:linear-gradient(135deg,#1a2640,var(--pc-primary));
  color:#fff; text-align:center; padding:2rem 1.5rem; border-radius:12px 12px 0 0;
}
.pcamscims-auth-header h3 { font-weight:900; margin:.5rem 0 .25rem; font-size:1.3rem; }
.pcamscims-auth-header p  { opacity:.75; font-size:.85rem; margin:0; }
.pcamscims-auth-body {
  background:#fff; padding:1.75rem; border-radius:0 0 12px 12px;
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}

/* Forms */
.form-control, .form-select {
  border:1.5px solid #dee2e6; border-radius:8px; font-size:.9rem; padding:.55rem .85rem;
}
.form-control:focus, .form-select:focus {
  border-color:var(--pc-primary); box-shadow:0 0 0 3px rgba(64,81,137,.12); outline:none;
}
.form-label { font-weight:600; font-size:.85rem; color:#1a2640; }
.input-group-text { background:#f8f9fa; border:1.5px solid #dee2e6; color:#878a99; }
.btn { border-radius:8px; font-weight:600; }
.btn-primary { background:var(--pc-primary); border-color:var(--pc-primary); }
.btn-primary:hover { background:#364578; border-color:#364578; }
.btn-success { background:var(--pc-success); border-color:var(--pc-success); }
.btn-outline-secondary { border-color:#ced4da; color:#6c757d; }

/* Alerts */
.pcamscims-alert {
  padding:.75rem 1rem; border-radius:8px; font-size:.87rem;
  margin-bottom:.75rem; border:1px solid;
}
.pcamscims-alert-info    { background:rgba(41,156,219,.1);  border-color:rgba(41,156,219,.2);  color:#084298; }
.pcamscims-alert-success { background:rgba(10,179,156,.1);  border-color:rgba(10,179,156,.2);  color:#065f55; }
.pcamscims-alert-warning { background:rgba(247,184,75,.1);  border-color:rgba(247,184,75,.3);  color:#856404; }
.pcamscims-alert-danger  { background:rgba(240,101,72,.1);  border-color:rgba(240,101,72,.2);  color:#842029; }

@media (max-width:576px) {
  .pcamscims-wrap { padding:0; }
  .pcamscims-card .card-body { padding:.9rem; }
}
