/* ============================================================================
   rfq-builder.css — the persistent RFQ line-item tray.
   Signature element (CLAUDE.md §Design direction). Tokens only.
   ========================================================================== */

/* Sits above content, below modals. Hidden until the first line item is added
   so an empty tray never occupies space on a sparse page. */
.rfq-tray {
  position: fixed; inset-inline: 0; bottom: 0;
  z-index: var(--z-tray);
  background: var(--navy-900);
  color: var(--on-navy);
  border-top: 3px solid var(--signal-rule);
  box-shadow: var(--shadow-2);
  transform: translateY(101%);
  transition: transform var(--dur-base) var(--ease);
}
.rfq-tray[data-active="true"] { transform: translateY(0); }

.rfq-tray__bar {
  display: flex; align-items: center; gap: var(--s-4);
  padding-block: var(--s-3);
}

.rfq-tray__count {
  font-family: var(--font-mono); font-size: var(--t-sm);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--on-navy-muted);
  margin-right: auto;
}
.rfq-tray__count b { color: var(--on-navy); font-size: var(--t-lg); }

.rfq-tray__disclose {
  background: transparent; color: var(--on-navy);
  border: var(--rule-w) solid var(--on-navy-muted); border-radius: var(--radius);
  font-family: var(--font-display); font-size: var(--t-sm);
  text-transform: uppercase; letter-spacing: 0.06em;
  padding: var(--s-2) var(--s-4); cursor: pointer;
}
.rfq-tray__disclose:hover { border-color: var(--on-navy); }

.rfq-tray__list { display: none; padding-bottom: var(--s-5); }
.rfq-tray[data-open="true"] .rfq-tray__list { display: block; }

.rfq-line {
  display: grid; gap: var(--s-3) var(--s-4);
  grid-template-columns: 1fr 7rem auto;
  align-items: center;
  padding-block: var(--s-3);
  border-top: var(--hairline) solid var(--navy-600);
}
.rfq-line__name { font-weight: var(--fw-bold); }
.rfq-line__ref {
  display: block;
  font-family: var(--font-mono); font-size: var(--t-xs);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--on-navy-muted);
}
.rfq-line label {
  font-family: var(--font-mono); font-size: var(--t-xs);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--on-navy-muted); display: block; margin-bottom: var(--s-1);
}
.rfq-line input {
  width: 100%; background: var(--navy-700); color: var(--on-navy);
  border: var(--hairline) solid var(--on-navy-muted); border-radius: var(--radius);
  font-family: var(--font-mono); font-size: var(--t-base);
  padding: var(--s-2) var(--s-3);
}
.rfq-line__remove {
  background: transparent; color: var(--on-navy-muted);
  border: var(--hairline) solid var(--on-navy-muted); border-radius: var(--radius);
  font-family: var(--font-mono); font-size: var(--t-xs);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  padding: var(--s-2) var(--s-3); cursor: pointer;
}
.rfq-line__remove:hover { color: var(--on-navy); border-color: var(--on-navy); }

@media (max-width: 44rem) {
  .rfq-line { grid-template-columns: 1fr auto; }
  .rfq-line__qty { grid-column: 1; }
}

/* Add-to-RFQ control used in the spec tables. */
.add-btn {
  display: inline-flex; align-items: center; gap: var(--s-2);
  background: transparent; color: var(--text);
  border: var(--rule-w) solid var(--border-strong); border-radius: var(--radius);
  font-family: var(--font-display); font-size: var(--t-sm);
  text-transform: uppercase; letter-spacing: 0.04em;
  padding: var(--s-2) var(--s-4); cursor: pointer; white-space: nowrap;
  transition: background var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease);
}
.add-btn:hover { border-color: var(--navy); background: var(--paper); }
.add-btn[aria-pressed="true"] {
  background: var(--signal); border-color: var(--signal); color: var(--signal-on);
}

/* Screen-reader-only live region text. */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* Keep page content clear of the docked tray. */
body[data-tray="true"] { padding-bottom: 5rem; }
