/* Light blue borders */
.form-control, .form-select, textarea {
  border: 1px solid #cce5ff;
  transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.form-control:focus, .form-select:focus, textarea:focus {
  border-color: #004085;
  box-shadow: 0 0 0 0.2rem rgba(0,64,133,0.2);
}

/* Photo placeholder */
.photo-placeholder {
  width: 160px;
  height: 160px;
  border: 2px dashed #cce5ff;
  border-radius: 10px;
  background: #f8f9fa;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: border-color .2s ease;
}
.photo-placeholder:hover { border-color: #004085; }
.photo-placeholder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Terms box */
.tc-box {
  max-height: 240px;
  overflow: auto;
  background: #fbfbfd;
  border: 1px solid #f0f1f4;
  border-radius: 10px;
}

/* Red star for required fields */
.label-required::after {
    content: " *";
    color: red;
    font-weight: bold;
}
:root{
  --bg:#f7f9fc; --ink:#1f2937; --muted:#6b7280;
  --card:#ffffff; --stroke:#e5e7eb;
  --accent:#0ea5e9; --success:#10b981; --warn:#fbbf24;
  --shadow:0 12px 30px rgba(2,6,23,.06);
}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Circular Std",system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
}



/* ----- Cropper modal, mobile-proof height & layout ----- */
.modal-body.cropper-body{
  padding:0; background:#111; overflow:hidden;
  /* use JS-supplied CSS vars; fallback to 80vh on desktops */
  height: calc(var(--vh, 1vh) * 100 - var(--hdr, 56px) - var(--ftr, 64px));
}
@media (min-width:577px){
  .modal-body.cropper-body{ height:min(80vh, 720px); }
}

.cropper-wrap{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  background:#111;
  display:block; /* important: not flex here when absolutely filling child */
}

/* Let cropper fully occupy the wrapper, regardless of image size */
.cropper-container{
  position:absolute !important;
  inset:0 !important;      /* top:0; right:0; bottom:0; left:0 */
  width:100% !important;
  height:100% !important;
}

/* Image element: allow Cropper to control transforms; keep it a block */
#cropperImage{
  display:block;
  max-width:none !important;
  max-height:none !important;
}

/* Keep Save/Cancel accessible */
.modal-footer.cropper-footer{
  position:sticky; bottom:0; z-index:2;
  background:#fff; border-top:1px solid #e5e7eb;
}

#photoChooser .modal-dialog {
  margin: auto;            /* horizontally & vertically center */
}

/* Desktop fallback height (mobile gets JS height) */
@media (min-width: 577px) {
  .modal-body.cropper-body { height: min(80vh, 720px); }
}

/* Improve touch targets a bit */
#btnCropSave {
  min-width: 96px;
}
