/* Contacts Phase 1 product screens. Reuses the foundation token layer; adds
 * only layout for filters, detail grids, quick actions, and the three-panel
 * review composition. No new colours — tokens only. */

.alta-panel + .alta-panel { margin-top: var(--alta-space-4); }

.alta-panel__body { padding: var(--alta-space-4); }

.alta-text-faint { color: var(--alta-text-faint); }

/* ---- filters ---------------------------------------------------------- */
.alta-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--alta-space-3);
  align-items: end;
}
.alta-filters .alta-field { margin: 0; }
.alta-inline-filter { margin-left: auto; }

/* ---- geography / capabilities / quick actions ------------------------- */
.alta-geo, .alta-caps, .alta-quick { display: inline-flex; flex-wrap: wrap; gap: var(--alta-space-1); align-items: center; }
.alta-geo__city { font-weight: var(--alta-weight-medium); }
.alta-geo__areas { display: inline-flex; flex-wrap: wrap; gap: var(--alta-space-1); }
.alta-quick__action {
  padding: 0.0625rem var(--alta-space-2);
  border: 1px solid var(--alta-border);
  border-radius: var(--alta-radius-sm);
  font-size: var(--alta-text-xs);
}

/* ---- operational vendor/trade row ------------------------------------- */
/* The Contact column reads as two stacked lines so the address and the number
 * are both legible; Capabilities keeps last position and minimum width. */
.alta-contact { display: inline-flex; flex-direction: column; gap: 0.0625rem; align-items: flex-start; }
.alta-contact__value { font-size: var(--alta-text-sm); }
.alta-status { display: inline-flex; flex-wrap: wrap; gap: var(--alta-space-1); align-items: center; }
.alta-status-form { display: inline-flex; gap: var(--alta-space-1); align-items: center; margin-top: var(--alta-space-1); }
.alta-status-form select { font-size: var(--alta-text-xs); }
.alta-table--operational td:last-child { width: 1%; white-space: nowrap; }

/* ---- detail grids ----------------------------------------------------- */
.alta-detail__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--alta-space-4);
  margin: 0;
}
.alta-detail__grid dt {
  font-size: var(--alta-text-xs);
  font-weight: var(--alta-weight-strong);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--alta-text-faint);
  margin-bottom: var(--alta-space-1);
}
.alta-detail__grid dd { margin: 0; }
.alta-detail__note { color: var(--alta-text-muted); font-size: var(--alta-text-sm); font-weight: var(--alta-weight-normal); text-transform: none; letter-spacing: 0; }
.alta-detail-actions { display: inline-flex; gap: var(--alta-space-2); }
.alta-pre-wrap { white-space: pre-wrap; }
.alta-result-badge {
  display: inline-block;
  margin-left: var(--alta-space-1);
  padding: 0.0625rem var(--alta-space-2);
  border: 1px solid var(--alta-border);
  border-radius: var(--alta-radius-sm);
  color: var(--alta-text-muted);
  font-size: var(--alta-text-xs);
  font-weight: var(--alta-weight-strong);
}
.alta-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--alta-space-3);
}
.alta-field--wide { grid-column: 1 / -1; }
.alta-choice-grid { display: grid; gap: var(--alta-space-3); }
.alta-choice-card {
  display: grid;
  gap: var(--alta-space-1);
  padding: var(--alta-space-4);
  border: 1px solid var(--alta-border);
  border-radius: var(--alta-radius);
  text-decoration: none;
}
.alta-attachment-list { display: grid; gap: var(--alta-space-1); }
.alta-attachment-list span { color: var(--alta-text-muted); font-size: var(--alta-text-sm); }
.alta-resource-links { display: grid; gap: var(--alta-space-2); margin: 0; padding-left: var(--alta-space-4); }
.alta-resource-links li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--alta-space-2); }
.alta-resource-links span { color: var(--alta-text-muted); font-size: var(--alta-text-sm); }
.alta-resource-links form { display: inline; }

/* ---- private team notes ---------------------------------------------- */
.alta-note {
  padding: var(--alta-space-4);
  border: 1px solid var(--alta-border);
  border-radius: var(--alta-radius);
  background: var(--alta-surface);
  min-width: 0;
}
.alta-note__heading, .alta-note__badges, .alta-note__meta,
.alta-note-form__toggles, .alta-note-form__footer {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--alta-space-2);
}
.alta-note__heading { justify-content: space-between; }
.alta-note__type { font-weight: var(--alta-weight-strong); }
.alta-note__body { white-space: pre-wrap; overflow-wrap: anywhere; margin: var(--alta-space-3) 0; }
.alta-note__meta { color: var(--alta-text-muted); font-size: var(--alta-text-sm); gap: var(--alta-space-3); }
.alta-note__edit { margin-top: var(--alta-space-3); border-top: 1px solid var(--alta-border); padding-top: var(--alta-space-3); }
.alta-note__edit > summary { cursor: pointer; color: var(--alta-accent); font-size: var(--alta-text-sm); font-weight: var(--alta-weight-medium); }
.alta-note-form { display: grid; gap: var(--alta-space-3); min-width: 0; }
.alta-note__edit .alta-note-form { margin-top: var(--alta-space-3); }
.alta-note-form--new { border-top: 1px solid var(--alta-border); padding-top: var(--alta-space-5); }
.alta-note-form__title { margin: 0 0 var(--alta-space-1); font-size: var(--alta-text-lg); }
.alta-note-form p { margin: 0; }
.alta-note-form .alta-field { margin: 0; min-width: 0; }
.alta-note-form__body { min-height: 8rem; resize: vertical; line-height: var(--alta-leading-normal); }
.alta-note-form__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--alta-space-3); }
.alta-note-form__toggles { gap: var(--alta-space-4); }
.alta-note-form__attachments { min-width: 0; font-size: var(--alta-text-sm); }
.alta-note-form__attachments::file-selector-button {
  margin-right: var(--alta-space-3); padding: var(--alta-space-1) var(--alta-space-3);
  border: 1px solid var(--alta-border-strong); border-radius: var(--alta-radius-sm);
  background: var(--alta-surface-raised); color: var(--alta-text); font: inherit; cursor: pointer;
}
.alta-note-form .alta-field__control:focus-visible {
  outline: 2px solid var(--alta-border-focus); outline-offset: 2px;
}
@media (max-width: 36rem) {
  .alta-note-form__options { grid-template-columns: 1fr; }
  .alta-note-form .alta-checkbox { flex-wrap: wrap; }
}

/* ---- three-panel review ---------------------------------------------- */
.alta-review {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: var(--alta-space-4);
  align-items: start;
}
.alta-review-form { display: grid; gap: var(--alta-space-4); }
.alta-review-form__actions, .alta-review-form__geo { border: 1px solid var(--alta-border); border-radius: var(--alta-radius); padding: var(--alta-space-3); }
.alta-review-form__actions legend, .alta-review-form__geo legend { padding: 0 var(--alta-space-2); font-size: var(--alta-text-sm); font-weight: var(--alta-weight-strong); }
.alta-radio, .alta-checkbox { display: flex; align-items: center; gap: var(--alta-space-2); padding: var(--alta-space-1) 0; }
.alta-review-form__section { display: grid; gap: var(--alta-space-3); }
/* Grid sections must still obey the decision form's native hidden state. */
.alta-review-form [hidden] { display: none; }
.alta-review-form__submit { display: flex; align-items: center; gap: var(--alta-space-3); }
.alta-compare { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--alta-space-2); }
.alta-compare li { display: grid; }

@media (max-width: 60rem) {
  .alta-review { grid-template-columns: 1fr; }
}

/* ---- account menu and access administration -------------------------- */
.alta-account { position: relative; }
.alta-account__control { display: inline-flex; align-items: center; gap: var(--alta-space-2); padding: var(--alta-space-1) var(--alta-space-2); border: 1px solid transparent; border-radius: var(--alta-radius); background: transparent; color: var(--alta-text); font: inherit; cursor: pointer; }
.alta-account__control:hover, .alta-account__control:focus-visible, .alta-account__control[aria-expanded="true"] { border-color: var(--alta-border-strong); background: var(--alta-surface); }
.alta-account__menu { position: absolute; z-index: 2100; top: calc(100% + var(--alta-space-1)); right: 0; min-width: 12rem; padding: var(--alta-space-1); border: 1px solid var(--alta-border-strong); border-radius: var(--alta-radius); background: var(--alta-surface); box-shadow: 0 .75rem 2rem rgb(0 0 0 / 28%); }
.alta-account__menu[hidden] { display: none; }
.alta-account__menu a, .alta-account__menu button { display: block; width: 100%; padding: var(--alta-space-2) var(--alta-space-3); border: 0; border-radius: calc(var(--alta-radius) / 2); background: transparent; color: var(--alta-text); font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
.alta-account__menu a:hover, .alta-account__menu a:focus-visible, .alta-account__menu button:hover, .alta-account__menu button:focus-visible { background: var(--alta-accent-quiet); color: var(--alta-text); }
.alta-account__separator { margin: var(--alta-space-1); border-top: 1px solid var(--alta-border); }
.alta-capability-matrix th:not(:first-child), .alta-capability-matrix td { text-align: center; }
@media (max-width: 48rem) { .alta-account__control > span:nth-child(2) { display: none; } }

/* ---- review landing categories and new contacts ----------------------- */
.alta-panel__meta { color: var(--alta-text-muted); font-size: var(--alta-text-sm); }
.alta-review-categories { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--alta-space-2); }
.alta-review-category { display: flex; align-items: baseline; justify-content: space-between; gap: var(--alta-space-3); padding: var(--alta-space-2) 0; border-bottom: 1px solid var(--alta-border); }
.alta-review-category:last-child { border-bottom: 0; }
.alta-review-category__link { font-weight: var(--alta-weight-strong); }
.alta-review-category__count { color: var(--alta-text-muted); font-variant-numeric: tabular-nums; }
.alta-detail__subtitle { margin: var(--alta-space-4) 0 var(--alta-space-2); font-size: var(--alta-text-sm); font-weight: var(--alta-weight-strong); text-transform: uppercase; letter-spacing: .04em; color: var(--alta-text-muted); }
.alta-detail__reasons { margin: 0; padding-left: var(--alta-space-4); display: grid; gap: var(--alta-space-1); }
.alta-detail__sources { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--alta-space-2); }
.alta-detail__sources li { display: grid; }

/* ---- organization picker (search by name; no identifier is ever shown) -- */
.alta-org-picker { display: grid; gap: var(--alta-space-2); }
.alta-org-picker__options { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--alta-space-1); max-height: 16rem; overflow-y: auto; }
.alta-org-picker__options[hidden] { display: none; }
.alta-org-picker__option { display: grid; gap: .125rem; width: 100%; padding: var(--alta-space-2); border: 1px solid var(--alta-border); border-radius: var(--alta-radius); background: transparent; color: var(--alta-text); font: inherit; text-align: left; cursor: pointer; }
.alta-org-picker__option:hover, .alta-org-picker__option:focus-visible { border-color: var(--alta-border-strong); background: var(--alta-accent-quiet); }
.alta-org-picker__option[aria-pressed="true"] { border-color: var(--alta-border-strong); background: var(--alta-accent-quiet); }
.alta-org-picker__name { font-weight: var(--alta-weight-strong); }
