/* v105 — admin stay registration: entry dates/times and both counters share a row.
   Layout-only change: owner forms, print and server-side behaviour are untouched. */
@media screen {
  body .app-shell .page-content .stay-v58-admin .stay-v105-visit-fields {
    min-width: 0;
    padding: 14px 0 18px;
    margin: 0 0 16px;
    border-bottom: 1px solid #e8edf4;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas:
      "time-heading time-heading count-heading count-heading"
      "in-date in-time family guests"
      "out-date out-time . .";
    align-items: end;
    column-gap: 14px;
    row-gap: 13px;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid > h3 {
    font-size: 16px;
    font-weight: 850;
    line-height: 1.5;
    color: #2b405d;
    margin: 0;
    padding: 0 0 5px;
    border-bottom: 1px solid #edf1f6;
    min-width: 0;
  }
  .stay-v58-admin .stay-v105-heading-time {grid-area: time-heading;}
  .stay-v58-admin .stay-v105-heading-count {grid-area: count-heading;}
  .stay-v58-admin .stay-v105-check-in-date {grid-area: in-date;}
  .stay-v58-admin .stay-v105-check-in-time {grid-area: in-time;}
  .stay-v58-admin .stay-v105-family-count {grid-area: family;}
  .stay-v58-admin .stay-v105-guest-count {grid-area: guests;}
  .stay-v58-admin .stay-v105-check-out-date {grid-area: out-date;}
  .stay-v58-admin .stay-v105-check-out-time {grid-area: out-time;}
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid > :is(label, .hm-count-field-v104) {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    margin: 0;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid > label {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: end;
    gap: 8px;
    min-height: 0;
    line-height: 1.55;
    font-size: 14px;
  }
  /* Keep required badges inline with the time field titles instead of adding
     a second label row and breaking vertical alignment. */
  body .app-shell .page-content .stay-v58-admin .stay-v105-check-in-time,
  body .app-shell .page-content .stay-v58-admin .stay-v105-check-out-time {
    position: relative;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid > label > .stay-v59-required {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    line-height: 1.55;
    font-size: 12px;
    white-space: nowrap;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid .hm-count-field-v104 {
    gap: 8px;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid .hm-number-stepper-v104 {
    min-width: 0;
    min-height: 52px;
    grid-template-columns: 42px minmax(0,1fr) 42px;
    gap: 4px;
    padding: 4px;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid .hm-number-stepper-button-v104 {
    width: 42px;
    height: 42px;
    min-height: 42px;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid > label > input {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    margin: 0;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid .hm-number-stepper-v104 input {
    min-height: 42px;
    height: 42px;
  }
  body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid > [data-complete-only][hidden] {
    display: none !important;
  }
  body .app-shell .page-content .stay-v58-admin form[data-initial-mode="checkin"] .stay-v105-fields-grid {
    grid-template-areas:
      "time-heading time-heading count-heading count-heading"
      "in-date in-time family guests";
  }
  /* No nested narrow sidebar layout: below this width use logical rows. */
  @media (max-width: 1149px) {
    body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid {
      grid-template-columns: repeat(2, minmax(0,1fr));
      grid-template-areas:
        "time-heading time-heading"
        "in-date in-time"
        "out-date out-time"
        "count-heading count-heading"
        "family guests";
      gap: 13px;
    }
    body .app-shell .page-content .stay-v58-admin form[data-initial-mode="checkin"] .stay-v105-fields-grid {
      grid-template-areas:
        "time-heading time-heading"
        "in-date in-time"
        "count-heading count-heading"
        "family guests";
    }
    body .app-shell .page-content .stay-v58-admin .stay-v105-heading-count {margin-top: 5px;}
  }
  @media (max-width: 560px) {
    body .app-shell .page-content .stay-v58-admin .stay-v105-fields-grid {
      grid-template-columns: minmax(0,1fr);
      grid-template-areas:
        "time-heading"
        "in-date"
        "in-time"
        "out-date"
        "out-time"
        "count-heading"
        "family"
        "guests";
      row-gap: 13px;
    }
    body .app-shell .page-content .stay-v58-admin form[data-initial-mode="checkin"] .stay-v105-fields-grid {
      grid-template-areas:
        "time-heading"
        "in-date"
        "in-time"
        "count-heading"
        "family"
        "guests";
    }
  }
}
