/* ============================================
   24-FORMS (Shared form card styles)
   Berry-themed cards, labels, inputs, save bars
   Used by: Profile, Settings, Production Info
   ============================================ */
@layer pages {

  /* ── Shared form card ── */
  .fm-card {
    background: var(--clr-berry-900);
    border: 1px solid rgba(var(--clr-berry-400-rgb), 0.30);
    border-radius: var(--comp-radius-lg);
    overflow: hidden;
    margin-bottom: 10px;
  }

  .fm-card-header {
    background: var(--clr-berry-800);
    padding: 7px 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid rgba(var(--clr-berry-500-rgb),0.2);
  }

  .fm-card-header.split {
    justify-content: space-between;
    padding: 7px 10px;
  }
  .fm-card-header.split > .d-flex {
    gap: 10px;
  }

  .fm-card-header-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--clr-berry-400);
    flex-shrink: 0;
  }

  .fm-card-header-icon {
    font-size: var(--fs-h3-s);
    color: var(--clr-berry-300, #e891b8);
    flex-shrink: 0;
    width: 20px;
    text-align: center;
  }

  .fm-card-header-title {
    font-size: var(--fs-sm-s);
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }

  .fm-card-body {
    padding: 1rem 1.25rem;
  }

  /* Field grid — matches .tm-flat-grid */
  .fm-field-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 16px;
  }

  .fm-field-grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .fm-field-grid-1 {
    grid-template-columns: 1fr;
  }

  /* Label — matches tm-flat-label */
  .fm-label {
    display: block;
    font-size: var(--fs-sm-s);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-secondary, var(--white-a65));
    margin-bottom: 4px;
    font-family: var(--ff-sans);
  }

  /* Input — matches tm-flat-input */
  .fm-input {
    width: 100%;
    flex: 1;
    background: var(--input-bg, var(--white-a04));
    border: 1px solid var(--input-border, var(--white-a10));
    border-radius: var(--comp-radius);
    padding: 5px 9px;
    color: var(--clr-white);
    font-size: var(--fs-base-s);
    transition: border-color 0.15s ease;
    box-sizing: border-box;
  }

  .fm-input:focus {
    outline: var(--focus-outline);
    border-color: var(--clr-berry-400);
  }

  .fm-input::placeholder {
    color: var(--text-placeholder);
  }

  .fm-input[disabled],
  .fm-input[readonly] {
    opacity: 0.45;
    cursor: not-allowed;
  }

  select.fm-input {
    cursor: pointer;
  }

  textarea.fm-input {
    resize: vertical;
    min-height: 80px;
  }

  /* Native date picker icon — white on dark bg */
  input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(1) opacity(0.6);
    cursor: pointer;
  }

  input[type="date"]::-webkit-calendar-picker-indicator:hover {
    filter: invert(1) opacity(1);
  }

  /* Read-only display value */
  .fm-value {
    font-size: var(--fs-lg-s);
    color: var(--white-a75);
    padding: 6px 0;
    font-family: var(--ff-sans);
  }

  /* Save bar — shown when dirty, hidden by default */
  .fm-save-bar {
    display: none;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 16px;
    border-top: 1px solid var(--white-a12);
    background: var(--clr-berry-900);
  }

  .fm-save-bar.is-dirty {
    display: flex;
  }

  .fm-btn-save {
    background: var(--clr-berry-500);
    border: none;
    border-radius: 6px;
    color: var(--clr-white);
    font-size: var(--fs-base-s);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 6px 16px;
    cursor: pointer;
    font-family: var(--ff-sans);
    transition: background 0.15s ease;
  }

  .fm-btn-save:hover {
    background: var(--clr-berry-400);
  }

  .fm-btn-cancel {
    background: transparent;
    border: 1px solid var(--white-a12);
    border-radius: 6px;
    color: var(--white-a75);
    font-size: var(--fs-base-s);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 6px 16px;
    cursor: pointer;
    font-family: var(--ff-sans);
    transition: border-color 0.15s ease;
  }

  .fm-btn-cancel:hover {
    border-color: var(--white-a50);
  }

  /* Section page layout */
  .fm-page {
    padding: 24px;
    max-width: 1200px;
  }

  /* Responsive */
  @media (max-width: 768px) {
    .fm-field-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (max-width: 480px) {
    .fm-field-grid,
    .fm-field-grid-2 {
      grid-template-columns: 1fr;
    }
  }

  /* ── Inline contact rows ── */

  .fm-contacts-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
  }

  /* Base contact row — grid layout for full-width forms.
     Overridden to flex in 20-locationList.css for accordion-body context (.ub-accordion-body .fm-contact-row) */
  .fm-contact-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) 24px 28px;
    gap: 6px;
    align-items: center;
    background: rgba(0,0,0,0.02);
    border: 1px solid rgba(0,0,0,0.07);
    border-radius: 6px;
    padding: 5px 8px;
    transition: background 0.15s;
  }

  .fm-contact-row:hover {
    background: rgba(0,0,0,0.04);
  }

  .fm-contact-row.is-new {
    border-color: rgba(var(--clr-berry-400-rgb),0.35);
  }

  .fm-contact-row.dragging {
    opacity: 0.35;
  }

  .fm-contact-row.drag-over {
    border-color: var(--clr-berry-400);
    background: rgba(var(--clr-berry-400-rgb),0.08);
  }

  /* No drag handle variant (Unit Base) */
  .fm-contact-row--no-drag {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) 28px;
  }

  .fm-contact-drag {
    cursor: grab;
    color: rgba(0,0,0,0.3);
    font-size: var(--fs-xl-s);
    text-align: center;
    user-select: none;
    transition: color 0.15s;
  }

  .fm-contact-drag:hover {
    color: rgba(0,0,0,0.55);
  }

  .fm-contact-drag:active {
    cursor: grabbing;
  }

  .fm-contact-input {
    background: transparent;
    border: none;
    border: 1px solid rgba(0,0,0,0.1);
    color: var(--clr-black);
    font-size: var(--fs-sm-s);
    padding: 3px 4px;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.15s;
  }

  .fm-contact-input:focus {
    outline: var(--focus-outline);
    border-color: var(--clr-berry-400);
  }

  .fm-contact-input::placeholder {
    color: rgba(var(--clr-berry-400-rgb), 0.40);
    font-size: var(--fs-sm-s);
  }

  /* .fm-contact-remove — canonical definition in 01-base.css (unlayered, wins over @layer pages) */

  .fm-add-contact-btn {
    background: none;
    border: 1px dashed rgba(0,0,0,0.15);
    border-radius: 6px;
    color: rgba(0,0,0,0.35);
    font-size: var(--fs-h3-s);
    padding: 4px 0;
    cursor: pointer;
    width: 100%;
    margin-top: 2px;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }

  .fm-add-contact-btn:hover {
    border-color: var(--clr-berry-400);
    color: rgba(0,0,0,0.6);
  }

  .fm-no-contacts-note {
    font-size: var(--fs-md-s);
    font-style: italic;
    color: #7c6200;
    padding: 5px 8px;
    background: var(--clr-warning-subtle);
    border-left: 3px solid var(--clr-warning);
    border-radius: var(--comp-radius-sm);
    margin-bottom: 6px;
  }

  /* ── Block checkboxes ── */

  .fm-blocks-group {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    padding: 2px 0 8px;
  }

  .fm-block-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: var(--fs-md-s);
    color: var(--white-a70);
    cursor: pointer;
    user-select: none;
  }

  .fm-block-label input[type="checkbox"] {
    accent-color: var(--checkbox-accent);
    width: var(--checkbox-size);
    height: var(--checkbox-size);
    cursor: pointer;
  }

  /* ── Mobile tile contrast lift ── */
  @media (max-width: 768px) {
    .fm-card {
      background: var(--clr-berry-900) !important;
      border: 1px solid rgba(var(--clr-berry-400-rgb),0.6) !important;
    }
    .fm-card-header {
      background: var(--clr-berry-800) !important;
      color: var(--clr-white) !important;
      border-bottom: 1px solid rgba(var(--clr-berry-400-rgb),0.4) !important;
    }
    .fm-card-body {
      color: var(--white-a90) !important;
    }
  }

  /* ── Production Info page — targets pages where .sb-page also has .mt-3 (legacy selector, may be dead) ── */
  .sb-page.mt-3 {
    padding: 0 var(--space-5) var(--space-5) var(--space-5);
  }
  @media (max-width: 768px) {
    .sb-page.mt-3 {
      padding: 0 var(--space-3) var(--space-3) var(--space-3);
    }
  }

  /* ── Form field label utility (shared across pages) ── */
  .fm-field-label-sm {
    font-size: var(--fs-sm-s);
    color: var(--text-tertiary);
  }

  .fm-section-label {
    font-size: var(--fs-xs-s);
    color: var(--text-placeholder);
    text-transform: uppercase;
    display: block;
  }

}
