/* =====================================================
   GLOBAL FORM CONTROLS
   =====================================================
   Compact control scale, applied application-wide so no
   page has to restate input/select heights.
   ===================================================== */

.form-control,
.form-select,
input[type="text"].form-control,
input[type="date"].form-control,
input[type="datetime-local"].form-control,
input[type="number"].form-control,
input[type="search"].form-control {
  height: var(--control-h);
  min-height: var(--control-h);

  padding: 0 var(--sp-3);

  font-size: var(--fs-base);
  line-height: calc(var(--control-h) - 2px);

  color: var(--c-text);
  background: var(--c-surface);

  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);

  box-shadow: none;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--c-primary);
  box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.15);
  outline: none;
}

.form-control::placeholder {
  color: #9aa3ad;
  font-size: var(--fs-base);
}

.form-select {
  padding-right: 26px;
  cursor: pointer;
}

textarea.form-control {
  height: auto;
  min-height: 60px;
  padding: var(--sp-2) var(--sp-3);
  line-height: var(--lh-base);
}

/* Native date/time picker indicator sized to the control */

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.6;
  padding: 0;
}

input[type="date"]::-webkit-calendar-picker-indicator:hover,
input[type="datetime-local"]::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
}

/* ---------- Checkboxes & Radios ---------- */

.form-check {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin: 0;
  padding: 0;
  min-height: auto;
}

.form-check-input {
  width: 14px;
  height: 14px;
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
  border: 1px solid #adb5bd;
}

.form-check-input:checked {
  background-color: var(--c-primary);
  border-color: var(--c-primary);
}

.form-check-input:focus {
  box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.2);
  border-color: var(--c-primary);
}

.form-check-label {
  font-size: var(--fs-base);
  font-weight: var(--fw-normal);
  color: var(--c-text);
  cursor: pointer;
  margin: 0;
}

/* ---------- Links ---------- */

a {
  color: var(--c-primary);
  text-decoration: none;
}

a:hover {
  color: var(--c-primary-hover);
}

/* ---------- Focus Visibility ---------- */

:focus-visible {
  outline: 2px solid var(--c-primary);
  outline-offset: 1px;
}

/* ---------- Print ---------- */

@media print {
  .navbar,
  .search-card,
  .export-menu,
  .ms,
  .filter-panel,
  #globalLoader {
    display: none !important;
  }

  .page-container {
    padding: 0;
  }

  .report-table-card {
    box-shadow: none;
    padding: 0;
  }
}
