/* Ameriteam OS v149 — consolidated UI calibration
   One authoritative presentation layer replacing legacy mobile patch stacking.
   CSS-only: no auth/session/data/AI runtime changes. */

:root {
  --amt-ui-radius: 12px;
  --amt-ui-radius-sm: 9px;
  --amt-ui-shadow: 0 4px 14px rgba(15,30,70,.07);
  --amt-ui-shadow-raised: 0 12px 30px rgba(15,30,70,.10);
  --amt-ui-line: #dce3ed;
  --amt-ui-surface: #fff;
  --amt-ui-soft: #f7f9fc;
}

/* ---------- global stability / crispness ---------- */
html, body, #root { max-width: 100%; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.app, .main, .content { min-width: 0; }
.content { animation: none !important; }
.route-stage,
.route-stage[data-transition="focus"],
.route-stage.leaving,
.route-stage.entering,
.route-stage[data-transition="focus"].leaving,
.route-stage[data-transition="focus"].entering {
  animation: none !important;
  transition: none !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  will-change: auto !important;
}

.card, .record-panel, .record-workspace-head, .metric {
  box-shadow: var(--amt-ui-shadow) !important;
}
.card, .record-panel { border-radius: var(--amt-ui-radius) !important; }

/* ---------- authenticated header: one clear hierarchy ---------- */
.app-header {
  background: rgba(255,255,255,.985) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 2px 10px rgba(15,30,70,.055) !important;
}
.app-header-main { gap: 16px !important; }
.header-search { flex: 1 1 520px !important; max-width: 760px !important; }
.header-search input {
  border-radius: 10px !important;
  background: #f8fafc !important;
  box-shadow: none !important;
  font-size: 13px !important;
}
.header-search input:focus { background: #fff !important; }
.command-launcher {
  min-height: 38px !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #526078 !important;
}
.header-user { border-radius: 10px !important; }

/* ---------- main navigation: deterministic horizontal strip ---------- */
.linear-nav-shell {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  border-top: 1px solid #edf0f5 !important;
  background: #fff !important;
}
.linear-nav {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: contain !important;
  touch-action: pan-x !important;
  scrollbar-width: none !important;
  scroll-behavior: auto !important;
  scroll-snap-type: x proximity;
}
.linear-nav::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
.linear-nav > button,
.linear-nav .linear-more-wrap,
.linear-nav .linear-more,
.linear-nav .bid-room-nav,
.linear-nav .header-menu-wrap {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  scroll-snap-align: start;
}
.linear-nav .linear-more-wrap { margin-left: 0 !important; }
.linear-nav .bid-room-nav { margin-left: 8px !important; margin-right: 8px !important; }
.linear-nav > button, .linear-more { min-height: 44px !important; }

/* ---------- content density / findability ---------- */
.page-head { margin-bottom: 14px !important; gap: 12px !important; }
.title { font-size: clamp(28px, 4vw, 36px) !important; }
.grid { gap: 12px !important; }
.card.pad { padding: 16px !important; }
.card-head { padding: 14px 16px !important; }
.metric { border-radius: var(--amt-ui-radius) !important; padding: 15px !important; }
.btn { border-radius: 10px !important; min-height: 40px; }
.input, .select, textarea, .amt-select-trigger { border-radius: 10px !important; }

/* ---------- data tables: preserve information, never crush columns ---------- */
.card:has(> table.tbl),
.card:has(> table),
.table-wrap,
.table-wrapper,
.data-table-wrap,
.tbl-wrap {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: contain !important;
  touch-action: pan-x pan-y !important;
  scrollbar-width: none !important;
}
.card:has(> table.tbl)::-webkit-scrollbar,
.card:has(> table)::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar,
.table-wrapper::-webkit-scrollbar,
.data-table-wrap::-webkit-scrollbar,
.tbl-wrap::-webkit-scrollbar { display: none !important; }

.tbl { border-collapse: separate !important; border-spacing: 0 !important; }
.tbl th { background: #f8fafc !important; }
.tbl th, .tbl td { vertical-align: middle !important; }
.tbl tbody tr { min-height: 64px; }
.tbl td { line-height: 1.25 !important; }

/* ---------- record detail: remove desktop-sized dead space ---------- */
.record-workspace-head,
.record-head-primary {
  min-height: 0 !important;
  height: auto !important;
  align-items: flex-start !important;
}
.record-workspace-head { padding: 17px 18px !important; gap: 16px !important; }
.record-head-primary { padding: 17px 18px 15px !important; gap: 16px !important; }
.record-title-row h1 { font-size: clamp(23px, 4vw, 29px) !important; }
.record-head-right { gap: 10px !important; }
.record-highlights { padding: 7px 4px !important; }
.record-highlight { min-height: 42px !important; padding: 0 12px !important; }
.record-context-strip { padding: 0 18px !important; }
.record-context-item { padding: 11px 14px 12px 0 !important; margin-right: 14px !important; }
.record-tabs { margin-bottom: 12px !important; }
.record-panel-head { padding: 12px 14px !important; }
.record-panel-body { padding: 14px !important; }
.record-actions-clean { gap: 8px !important; }

/* ---------- touch / interaction ---------- */
button, .btn, [role="button"], .linear-nav button, .linear-more, .record-tabs button {
  -webkit-tap-highlight-color: transparent !important;
}
button:active, .btn:active { transition-duration: 0ms !important; }

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
  .app-header-main { padding: 0 18px !important; gap: 12px !important; }
  .header-brand { width: 190px !important; flex-basis: 190px !important; }
  .linear-nav-shell { padding: 0 max(8px, env(safe-area-inset-right,0px)) 0 max(8px, env(safe-area-inset-left,0px)) !important; }
  .linear-nav { padding-right: 28px !important; }
  .content { padding: 16px max(14px,env(safe-area-inset-right,0px)) calc(22px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px)) !important; }

  .card > table.tbl, table.tbl {
    width: 1180px !important;
    min-width: 1180px !important;
    max-width: none !important;
    table-layout: fixed !important;
  }
  .card > table.tbl th,
  .card > table.tbl td,
  table.tbl th,
  table.tbl td {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .card > table.tbl th:nth-child(1), .card > table.tbl td:nth-child(1) { width: 230px !important; }
  .card > table.tbl th:nth-child(2), .card > table.tbl td:nth-child(2) { width: 210px !important; }
  .card > table.tbl th:nth-child(3), .card > table.tbl td:nth-child(3) { width: 180px !important; }
  .card > table.tbl th:nth-child(4), .card > table.tbl td:nth-child(4) { width: 160px !important; }
  .card > table.tbl th:nth-child(5), .card > table.tbl td:nth-child(5) { width: 135px !important; }
  .card > table.tbl th:nth-child(6), .card > table.tbl td:nth-child(6) { width: 150px !important; }
  .card > table.tbl th:nth-child(7), .card > table.tbl td:nth-child(7) { width: 150px !important; }
  .card > table.tbl th:nth-child(8), .card > table.tbl td:nth-child(8) { width: 180px !important; }

  /* Never let sticky cells cover neighboring columns on touch screens. */
  .card > table.tbl th:first-child,
  .card > table.tbl td:first-child,
  table.tbl th:first-child,
  table.tbl td:first-child {
    position: static !important;
    left: auto !important;
    z-index: auto !important;
    box-shadow: none !important;
  }
  .card > table.tbl td:first-child,
  table.tbl td:first-child {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  .card > table.tbl th:not(:first-child),
  .card > table.tbl td:not(:first-child),
  table.tbl th:not(:first-child),
  table.tbl td:not(:first-child) { white-space: nowrap !important; }
  .tbl .subtitle { display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
}

/* ---------- phone: simplify, don't miniaturize desktop ---------- */
@media (max-width: 760px) {
  .app-header-main {
    min-height: 116px !important;
    height: auto !important;
    padding: 12px max(14px,env(safe-area-inset-right,0px)) 10px max(14px,env(safe-area-inset-left,0px)) !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    grid-template-areas: "brand utilities" "search search" !important;
    align-items: center !important;
    gap: 10px 12px !important;
  }
  .header-brand {
    grid-area: brand !important;
    width: auto !important;
    flex-basis: auto !important;
    min-width: 0 !important;
  }
  .header-brand-mark { font-size: 19px !important; }
  .header-brand-sub { font-size: 7.5px !important; letter-spacing: 2.5px !important; }
  .header-search {
    grid-area: search !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
  .header-search input { height: 46px !important; font-size: 14px !important; }
  .header-utilities { grid-area: utilities !important; margin-left: 0 !important; gap: 5px !important; }
  /* One search surface on phone. The command palette remains available via keyboard on desktop. */
  .command-launcher { display: none !important; }
  .header-user { width: 52px !important; min-width: 52px !important; justify-content: center !important; padding: 4px 6px !important; }
  .header-user-copy { display: none !important; }
  .header-user .uchip { width: 34px !important; height: 34px !important; }

  .linear-nav-shell { height: 48px !important; }
  .linear-nav > button, .linear-more { padding: 0 13px !important; font-size: 12px !important; min-height: 48px !important; }

  .content { padding-top: 12px !important; }
  .page-head { align-items: flex-start !important; margin-bottom: 12px !important; }
  .title { font-size: 30px !important; }
  .subtitle { font-size: 12px !important; }
  .card.pad { padding: 14px !important; }
  .card-head { padding: 13px 14px !important; }
  .metric { padding: 14px !important; }

  .record-back { margin-bottom: 10px !important; }
  .record-head-primary,
  .record-workspace-head {
    padding: 14px !important;
    display: block !important;
    margin-bottom: 10px !important;
  }
  .record-identity { gap: 10px !important; align-items: flex-start !important; }
  .record-identity-mark { width: 42px !important; height: 42px !important; }
  .record-title-row { gap: 7px !important; }
  .record-title-row h1 { font-size: 25px !important; line-height: 1.08 !important; }
  .record-subtitle { font-size: 12px !important; margin-top: 4px !important; }
  .record-head-right { width: 100% !important; min-width: 0 !important; margin-top: 13px !important; align-items: stretch !important; }
  .record-highlights { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 0 !important; width: 100% !important; }
  .record-highlight { min-width: 0 !important; min-height: 50px !important; padding: 8px 10px !important; border-left: 0 !important; border-top: 1px solid #e5eaf1 !important; }
  .record-highlight:nth-child(-n+2) { border-top: 0 !important; }
  .record-owner-actions { width: 100% !important; justify-content: flex-start !important; gap: 8px !important; }
  .record-actions-clean { width: 100% !important; display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px !important; }
  .record-actions-clean > .btn,
  .record-actions-clean > .record-action-menu,
  .record-actions-clean .record-action-menu > .btn { width: 100% !important; min-width: 0 !important; }
  .record-context-strip { padding: 0 14px !important; grid-template-columns: 1fr 1fr !important; }
  .record-context-item { margin: 0 !important; padding: 10px 10px 10px 0 !important; border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
  .record-tabs { overflow-x: auto !important; overflow-y: hidden !important; flex-wrap: nowrap !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none !important; }
  .record-tabs::-webkit-scrollbar { display:none !important; }
  .record-tabs button { flex: 0 0 auto !important; white-space: nowrap !important; }
  .record-panel-head { padding: 11px 13px !important; }
  .record-panel-body { padding: 13px !important; }

  /* prevent accidental giant empty surfaces from minimum heights in legacy cards */
  .record-panel,
  .record-panel-body,
  .record-workspace-head,
  .record-head-primary,
  .page-head,
  .card { min-height: 0; }

  .search-results { max-height: min(58dvh,440px) !important; }
  .user-menu { right: 0 !important; min-width: min(300px, calc(100vw - 24px)) !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
