/* HOS product primitives
   Explicit classes only. Page modules may compose these primitives, but do not
   redefine their interaction states. */

:root {
  --ui-ink: var(--product-ink, #0b0d0c);
  --ui-muted: var(--product-muted, #747b76);
  --ui-paper: var(--product-paper, #fff);
  --ui-soft: var(--product-soft, #f7f8f5);
  --ui-line: var(--product-line, rgba(11, 13, 12, .09));
  --ui-line-strong: var(--product-line-strong, rgba(11, 13, 12, .16));
  --ui-primary: var(--product-primary, #0f766e);
  --ui-primary-hover: var(--product-primary-hover, #0b625c);
  --ui-primary-soft: var(--product-primary-soft, #e8f2f0);
  --ui-danger: var(--product-danger, #b42318);
  --ui-focus: 0 0 0 3px rgba(15, 118, 110, .16);
}

.hos-ui-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  min-width: 44px;
  padding: 10px 16px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--ui-ink);
  font: inherit;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.hos-ui-button svg {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  stroke-width: 1.8;
}

.hos-ui-button:hover { text-decoration: none; }
.hos-ui-button:focus-visible { outline: 0; box-shadow: var(--ui-focus); }
.hos-ui-button:active:not(:disabled) { filter: brightness(.97); }
.hos-ui-button:disabled,
.hos-ui-button[aria-disabled="true"] { opacity: .48; cursor: not-allowed; }

.hos-ui-button--primary { background: var(--ui-primary); color: #fff; }
.hos-ui-button--primary:hover { background: var(--ui-primary-hover); color: #fff; }
.hos-ui-button--secondary { border-color: var(--ui-line-strong); background: var(--ui-paper); }
.hos-ui-button--secondary:hover { border-color: var(--ui-primary); color: var(--ui-primary); }
.hos-ui-button--ghost { color: var(--ui-muted); }
.hos-ui-button--ghost:hover { background: var(--ui-soft); color: var(--ui-ink); }
.hos-ui-button--danger { border-color: rgba(180, 35, 24, .22); color: var(--ui-danger); }
.hos-ui-button--danger:hover { background: #fef2f2; }

.hos-ui-icon-button {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--ui-muted);
  cursor: pointer;
  transition: background-color 140ms ease, color 140ms ease;
}

.hos-ui-icon-button:hover { background: var(--ui-soft); color: var(--ui-ink); }
.hos-ui-icon-button:focus-visible { outline: 0; box-shadow: var(--ui-focus); }
.hos-ui-icon-button svg { display: block; width: 20px; height: 20px; stroke-width: 1.8; }

.hos-ui-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  margin: 0;
}

.hos-ui-field > :first-child:not(input):not(select):not(textarea),
.hos-ui-field__label {
  color: var(--ui-muted);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.25;
}

.hos-ui-control {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--ui-line-strong);
  border-radius: 6px;
  background: var(--ui-paper);
  color: var(--ui-ink);
  font: inherit;
  font-size: 15px;
  letter-spacing: 0;
  line-height: 1.35;
  box-shadow: none;
  transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
}

textarea.hos-ui-control { min-height: 116px; resize: vertical; }
.hos-ui-control:hover { border-color: rgba(11, 13, 12, .28); }
.hos-ui-control:focus { outline: 0; border-color: var(--ui-primary); box-shadow: var(--ui-focus); }
.hos-ui-control::placeholder { color: #929994; opacity: 1; }
.hos-ui-control:disabled { background: #f1f3f1; color: var(--ui-muted); cursor: not-allowed; }
.hos-ui-field__hint { margin: 0; color: var(--ui-muted); font-size: 12px; line-height: 1.45; }
.hos-ui-field__error { margin: 0; color: var(--ui-danger); font-size: 12px; line-height: 1.45; }
.hos-ui-field.is-invalid .hos-ui-control { border-color: var(--ui-danger); }

.hos-ui-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 28px;
  margin: 0;
  color: var(--ui-muted);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
}

.hos-ui-status::before {
  content: '';
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: currentColor;
}

.hos-ui-status--success { color: var(--product-success, #15704a); }
.hos-ui-status--warning { color: var(--product-warning, #995a12); }
.hos-ui-status--danger { color: var(--ui-danger); }

.hos-ui-overlay {
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(8, 13, 11, .44);
  backdrop-filter: blur(6px);
}

.hos-ui-sheet {
  width: min(920px, calc(100vw - 48px));
  max-height: min(900px, calc(100dvh - 48px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .56);
  border-radius: 8px;
  background: var(--ui-paper);
  box-shadow: 0 28px 80px rgba(8, 13, 11, .24);
}

.hos-ui-actionbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 76px;
  padding: 14px 24px;
  border-top: 1px solid var(--ui-line);
  background: rgba(255, 255, 255, .96);
}

.hos-ui-actionbar > :last-child { margin-left: auto; }

/* First migration adapter: global telephone intake. Existing IDs and JS hooks
   remain untouched while the visual ownership moves to the primitives. */
#modal-call-global.hos-ui-scope.hos-ui-overlay { padding: 24px; }
#modal-call-global .hos-ui-sheet.intake-sheet { border-radius: 8px; box-shadow: 0 28px 80px rgba(8, 13, 11, .24); }
#modal-call-global .hos-ui-icon-button { width: 44px; height: 44px; padding: 0; border-radius: 6px; }
#modal-call-global .hos-ui-field.intake-field { gap: 7px; margin: 0; }
#modal-call-global .hos-ui-field.intake-field > span { color: var(--ui-muted); font-size: 12px; font-weight: 650; letter-spacing: 0; }
#modal-call-global .hos-ui-control.intake-input { min-height: 46px; padding: 10px 12px; border: 1px solid var(--ui-line-strong); border-radius: 6px; background: var(--ui-paper); box-shadow: none; }
#modal-call-global .hos-ui-control.intake-input:focus { border-color: var(--ui-primary); box-shadow: var(--ui-focus); }
#modal-call-global .hos-ui-actionbar.gs-run__bar { min-height: 76px; padding: 14px 24px; border-top: 1px solid var(--ui-line); background: rgba(255, 255, 255, .96); }
#modal-call-global .hos-ui-button.gs-run__btn { min-height: 46px; padding: 11px 18px; border-radius: 6px; font-size: 14px; letter-spacing: 0; transform: none; box-shadow: none; }
#modal-call-global .hos-ui-button svg { width: 18px; height: 18px; flex-basis: 18px; }
#modal-call-global .hos-ui-button.gs-run__btn--ghost { border-color: transparent; background: transparent; color: var(--ui-muted); }
#modal-call-global .hos-ui-button.gs-run__btn--primary { border-color: var(--ui-primary); background: var(--ui-primary); color: #fff; }
#modal-call-global .hos-ui-button.gs-run__btn--primary:hover { border-color: var(--ui-primary-hover); background: var(--ui-primary-hover); }

@media (max-width: 767.98px) {
  .hos-ui-overlay { align-items: flex-end; padding: 0; }
  .hos-ui-sheet {
    width: 100%;
    max-width: none;
    max-height: 100dvh;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 8px 8px 0 0;
  }
  .hos-ui-actionbar { min-height: 72px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); }
  .hos-ui-actionbar .hos-ui-button { flex: 1 1 0; }
  #modal-call-global.hos-ui-scope.hos-ui-overlay { padding: 0; }
  #modal-call-global .hos-ui-sheet.intake-sheet { width: 100%; max-width: none; border-radius: 8px 8px 0 0; }
  #modal-call-global .hos-ui-actionbar.gs-run__bar { min-height: 72px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  .hos-ui-button,
  .hos-ui-icon-button,
  .hos-ui-control { transition: none; }
}
