/**
 * DigiknackTime — segmented HH:MM (+ optional AM/PM) with format toggle.
 * Pair with public/js/dk-time.js (window.DigiknackTime).
 *
 * Canonical markup:
 *   <div class="dk-time" data-dk-time>
 *     <select class="contact-input dk-time__format" data-dk-select …>…</select>
 *     <div class="dk-time__parts" role="group">
 *       <input class="contact-input dk-time__part" data-dk-time-hour …>
 *       <span class="dk-time__sep">:</span>
 *       <input class="contact-input dk-time__part" data-dk-time-minute …>
 *       <select class="contact-input dk-time__ampm" data-dk-time-ampm data-dk-select …></select>
 *     </div>
 *   </div>
 */

.dk-time {
  --dk-time-ink: var(--admin-nav-idle, #e3dbcc);
  --dk-time-muted: rgba(227, 219, 204, 0.5);
  --dk-time-accent: var(--cal-accent, #f2133c);
  --dk-time-gap: 12px;
  --dk-time-part-w: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--dk-time-gap);
  flex-wrap: nowrap;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  color: var(--dk-time-ink);
}

/* Format label shrink-wraps — never stretch and shove HH:MM to the far right */
.dk-time__format {
  flex: 0 1 auto;
  min-width: 0;
  width: auto;
}

.dk-time > .dk-select,
.dk-time .dk-select.dk-select--block {
  flex: 0 1 auto;
  min-width: 0;
  width: auto;
  max-width: 100%;
  padding: 0;
}

.dk-time > .dk-select .dk-select__trigger,
.dk-time > .dk-select .dk-select__face,
.dk-time .dk-select.dk-select--block .dk-select__trigger,
.dk-time .dk-select.dk-select--block .dk-select__face {
  width: max-content;
  max-width: 100%;
}

.dk-time__parts {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
  margin: 0;
  min-width: 0;
}

.dk-time__part.contact-input,
.dk-time input.dk-time__part {
  width: var(--dk-time-part-w);
  min-width: var(--dk-time-part-w);
  max-width: 2.75rem;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  text-align: center;
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.35;
  color: var(--dk-time-ink);
  caret-color: var(--dk-time-ink);
  -moz-appearance: textfield;
  appearance: textfield;
}

.dk-time__part.contact-input::-webkit-outer-spin-button,
.dk-time__part.contact-input::-webkit-inner-spin-button,
.dk-time input.dk-time__part::-webkit-outer-spin-button,
.dk-time input.dk-time__part::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.dk-time__part.contact-input::placeholder,
.dk-time input.dk-time__part::placeholder {
  color: var(--dk-time-muted);
  font-weight: 400;
}

.dk-time__sep {
  flex: 0 0 auto;
  color: var(--dk-time-muted);
  font-size: 0.875rem;
  font-weight: 400;
  user-select: none;
  line-height: 1;
}

.dk-time__ampm.contact-input,
.dk-time .dk-time__ampm {
  width: auto;
  min-width: 2.75rem;
  max-width: none;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.dk-time .dk-select:has(.dk-time__ampm),
.dk-time .dk-time__ampm + .dk-select,
.dk-time .dk-select.dk-time__ampm-wrap {
  flex: 0 0 auto;
  width: auto;
  padding: 0;
}

.dk-time [data-dk-time-ampm][hidden],
.dk-time .dk-select:has([data-dk-time-ampm][hidden]) {
  display: none !important;
}

/* FormCard row — one pad shell; format + parts sit inside */
.dk-form-card .dk-form-card__field > .dk-time,
.dk-form-card .contact-field > .dk-time {
  width: 100%;
  padding: var(--dk-form-card-pad-y, 8px) var(--dk-form-card-pad-x, 16px);
}

.dk-form-card .dk-time .dk-select--block,
.dk-form-card .dk-time .dk-select {
  padding: 0;
}

@media (max-width: 520px) {
  .dk-time {
    flex-wrap: wrap;
    gap: 6px 12px;
  }

  .dk-time__parts {
    width: auto;
    justify-content: flex-start;
  }

  .dk-time__part.contact-input,
  .dk-time input.dk-time__part {
    min-height: 2.25rem;
    font-size: 1rem;
  }
}
