/*
 * M15 공사/장치 옥션 화면(SCR-26/27/29) 공통 스타일.
 * 토큰은 styles/tokens.css(§1)만 참조 — 하드코딩 색 금지. shared.css 프리미티브 선반영.
 */
@import '../shared.css';

/* ── 페이지 헤드(제목 + 샘플 배지) ── */
.kx-auc__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
}
.kx-auc__title {
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
  color: var(--color-neutral-900);
  font-weight: var(--fw-bold);
}
.kx-auc__subtitle {
  font-size: var(--fs-body);
  color: var(--color-neutral-500);
  margin-top: 2px;
}
.kx-auc__head-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

/* 샘플 데이터 배지 */
.kx-auc__sample {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-micro);
  font-weight: var(--fw-semibold);
  color: var(--color-warning);
  background: #fff4e5;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}

/* 등록업체 게이트 고지 배너 */
.kx-auc__gate {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-caption);
  color: var(--color-primary-700);
  background: var(--color-primary-050);
  border: 1px solid var(--color-primary-100);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
}
.kx-auc__gate--seal {
  color: var(--color-neutral-700);
  background: var(--color-neutral-050);
  border-color: var(--color-neutral-200);
}

/* ── SCR-26 목록 레이아웃(좌 목록 + 우 개설 패널) ── */
.kx-auc__split {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
  gap: var(--space-5);
  align-items: start;
}
@media (max-width: 1080px) {
  .kx-auc__split {
    grid-template-columns: 1fr;
  }
}

.kx-auc__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

/* 옥션 카드 */
.kx-auc-card {
  border: var(--border-card);
  border-left: 4px solid var(--color-primary-600);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  padding: var(--space-4);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.kx-auc-card:hover {
  box-shadow: var(--shadow-level2);
  transform: translateY(-1px);
}
.kx-auc-card--secondary {
  border-left-color: var(--color-ai-accent);
}
.kx-auc-card--tertiary {
  border-left-color: var(--color-success);
}
.kx-auc-card--closed {
  opacity: 0.85;
}
.kx-auc-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.kx-auc-card__tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.kx-auc-card__name {
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-auc-card__status {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.kx-auc-card__metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-top: 1px dashed var(--color-neutral-200);
  border-bottom: 1px dashed var(--color-neutral-200);
  margin-bottom: var(--space-3);
}
.kx-auc-card__metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.kx-auc-card__metric--end {
  align-items: flex-end;
  text-align: right;
}
.kx-auc-card__metric-label {
  font-size: var(--fs-caption);
  color: var(--color-neutral-500);
}
.kx-auc-card__metric-value {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-auc-card__metric-value--price {
  color: var(--color-primary-700);
}
.kx-auc-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.kx-auc-card__mats {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.kx-auc-card__mat {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--fs-caption);
  color: var(--color-ai-accent);
  font-weight: var(--fw-semibold);
}

/* 카테고리·유형 태그 */
.kx-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  background: var(--color-primary-100);
  color: var(--color-primary-700);
}
.kx-tag--type {
  background: var(--color-ai-surface);
  color: var(--color-ai-accent);
}
.kx-tag--muted {
  background: var(--color-neutral-100);
  color: var(--color-neutral-700);
}

/* 옥션 상태 pill */
.kx-auc-pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--radius-sm);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
}
.kx-auc-pill--live {
  background: #e6f4ee;
  color: var(--color-success);
}
.kx-auc-pill--closed {
  background: var(--color-neutral-100);
  color: var(--color-neutral-700);
}
.kx-auc-pill--settle {
  background: var(--color-primary-050);
  color: var(--color-primary-700);
}

/* ── 개설 패널 ── */
.kx-auc-open {
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  overflow: hidden;
  position: sticky;
  top: var(--space-4);
}
.kx-auc-open__head {
  background: var(--color-primary-700);
  color: var(--color-on-accent);
  padding: var(--space-4);
}
.kx-auc-open__head h2 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  display: flex;
  align-items: center;
  gap: 8px;
}
.kx-auc-open__head p {
  font-size: var(--fs-caption);
  opacity: 0.9;
  margin-top: 4px;
}
.kx-auc-open__body {
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-height: 720px;
  overflow-y: auto;
}
/* ★ 폼 유틸(kx-field*/kx-input/kx-grid-2)은 .kx-auc 로 스코프 격리(QA: 전역 재정의 방지).
   옥션/낙찰 화면 루트에 .kx-auc 를 부여하므로 타 화면의 동명 클래스에 영향을 주지 않는다. */
.kx-auc .kx-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kx-auc .kx-field__label {
  font-size: var(--fs-caption);
  color: var(--color-neutral-700);
  font-weight: var(--fw-semibold);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.kx-auc .kx-field__label-note {
  font-size: var(--fs-micro);
  color: var(--color-error);
  font-weight: var(--fw-medium);
}
.kx-auc .kx-input {
  height: 36px;
  padding: 0 var(--space-3);
  border: var(--border-card);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  font-size: var(--fs-body);
  color: var(--color-neutral-900);
  width: 100%;
}
.kx-auc .kx-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}
/* 비교표 컬럼 선택 버튼(낙찰 대상 선택) — 헤더 텍스트 스택을 버튼으로 감싼다. */
.kx-compare__co-select {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
}
.kx-compare__co-select[aria-pressed='true'] .kx-compare__co-name {
  color: var(--color-primary, var(--color-ai-accent));
}

/* 가중치 슬라이더 카드 */
.kx-weights {
  padding: var(--space-3);
  background: var(--color-ai-surface);
  border: 1px solid var(--color-ai-accent);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.kx-weight__top {
  display: flex;
  justify-content: space-between;
  font-size: var(--fs-caption);
  color: var(--color-ai-accent);
  font-weight: var(--fw-semibold);
  margin-bottom: 4px;
}
.kx-weight input[type='range'] {
  width: 100%;
  accent-color: var(--color-ai-accent);
  cursor: pointer;
}

/* AI 자료 첨부 dropzone */
.kx-auc-attach {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: var(--space-5);
  border: 2px dashed var(--color-ai-accent);
  background: var(--color-ai-surface);
  border-radius: var(--radius-lg);
  color: var(--color-ai-accent);
  cursor: pointer;
  font-weight: var(--fw-semibold);
}
.kx-auc-attach small {
  color: var(--color-neutral-500);
  font-weight: var(--fw-regular);
  font-size: var(--fs-micro);
}

/* 초대 업체 리스트 */
.kx-invite {
  max-height: 160px;
  overflow-y: auto;
  border: var(--border-card);
  border-radius: var(--radius-sm);
}
.kx-invite__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: 8px 12px;
  border-bottom: 1px solid var(--color-neutral-100);
  font-size: var(--fs-body);
}
.kx-invite__row:last-child {
  border-bottom: none;
}
.kx-invite__row--blocked {
  color: var(--color-neutral-500);
}
.kx-invite__blocked-tag {
  font-size: var(--fs-micro);
  color: var(--color-error);
  font-weight: var(--fw-semibold);
}

/* ── SCR-27 상세 레이아웃 ── */
.kx-aucd__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  padding: var(--space-3) var(--space-4);
  flex-wrap: wrap;
}
.kx-aucd__bar-left {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.kx-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fef3f2;
  color: var(--color-error);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  padding: 3px 10px;
  border-radius: var(--radius-sm);
}
.kx-live__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-error);
  animation: kx-pulse 1.4s ease-in-out infinite;
}
@keyframes kx-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
.kx-aucd__bar-metrics {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}
.kx-aucd__metric {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.kx-aucd__metric-label {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-neutral-500);
}
.kx-aucd__metric-value {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  color: var(--color-primary-700);
}
.kx-aucd__metric-value--ok {
  color: var(--color-success);
}

.kx-aucd__grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
  gap: var(--space-5);
  align-items: start;
}
@media (max-width: 1080px) {
  .kx-aucd__grid {
    grid-template-columns: 1fr;
  }
}

/* 자료 뷰어 */
.kx-viewer {
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  overflow: hidden;
}
.kx-viewer__tabs {
  display: flex;
  gap: var(--space-4);
  padding: 0 var(--space-4);
  border-bottom: var(--border-card);
  background: var(--color-neutral-050);
}
.kx-viewer__tab {
  position: relative;
  height: 44px;
  border: none;
  background: transparent;
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  color: var(--color-neutral-500);
  cursor: pointer;
}
.kx-viewer__tab.is-active {
  color: var(--color-primary-700);
}
.kx-viewer__tab.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--color-primary-700);
}
.kx-viewer__stage {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--color-canvas-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  overflow: hidden;
}
.kx-viewer__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  text-align: center;
  padding: var(--space-5);
}
.kx-viewer__placeholder-title {
  font-size: var(--fs-h3);
  color: rgba(255, 255, 255, 0.85);
  font-weight: var(--fw-semibold);
}
.kx-viewer__placeholder-desc {
  font-size: var(--fs-caption);
  color: rgba(255, 255, 255, 0.55);
  max-width: 380px;
}
.kx-viewer__watermark {
  position: absolute;
  right: 16px;
  bottom: 12px;
  font-size: var(--fs-micro);
  font-style: italic;
  color: rgba(255, 255, 255, 0.4);
  pointer-events: none;
}

/* 실시간 순위 패널 */
.kx-rank {
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.kx-rank__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4);
  border-bottom: var(--border-card);
}
.kx-rank__head h2 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-caption);
  color: var(--color-neutral-500);
  background: none;
  border: none;
  cursor: pointer;
}
.kx-toggle__track {
  width: 38px;
  height: 20px;
  border-radius: var(--radius-pill);
  background: var(--color-neutral-200);
  position: relative;
  transition: background 0.15s ease;
}
.kx-toggle__track.is-on {
  background: var(--color-primary-600);
}
.kx-toggle__knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-white);
  transition: transform 0.15s ease;
}
.kx-toggle__track.is-on .kx-toggle__knob {
  transform: translateX(18px);
}

.kx-rank__list {
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  overflow-y: auto;
}
.kx-rank__row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}
.kx-rank__row--lowest {
  border-left: 4px solid var(--color-primary-600);
}
.kx-rank__row--me {
  background: var(--color-ai-surface);
  border: 2px solid var(--color-ai-accent);
}
.kx-rank__badge {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--fw-bold);
  background: var(--color-primary-100);
  color: var(--color-primary-700);
  flex-shrink: 0;
}
.kx-rank__row--me .kx-rank__badge {
  background: var(--color-ai-accent);
  color: var(--color-on-accent);
}
.kx-rank__main {
  flex: 1;
  min-width: 0;
}
.kx-rank__alias {
  font-size: var(--fs-body);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-rank__row--me .kx-rank__alias {
  color: var(--color-ai-accent);
}
.kx-rank__price {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  color: var(--color-primary-700);
}
.kx-rank__price--masked {
  font-size: var(--fs-body);
  color: var(--color-neutral-500);
  font-weight: var(--fw-semibold);
}
.kx-rank__tag {
  font-size: var(--fs-micro);
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  background: #e6f4ee;
  color: var(--color-success);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}

.kx-rank__foot {
  border-top: var(--border-card);
  padding: var(--space-4);
  background: var(--color-neutral-050);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.kx-countdown {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--space-3);
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}
.kx-countdown__label {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-neutral-500);
  font-weight: var(--fw-bold);
}
.kx-countdown__value {
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  font-weight: var(--fw-bold);
  color: var(--color-primary-700);
  font-variant-numeric: tabular-nums;
}
.kx-rank__note {
  font-size: var(--fs-micro);
  color: var(--color-neutral-500);
  text-align: center;
  line-height: 1.5;
}

/* ── SCR-29 낙찰 비교 ── */
.kx-award__summary {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.kx-award__chip {
  padding: 8px 14px;
  background: var(--color-white);
  border: var(--border-card);
  border-left: 4px solid var(--color-primary-600);
  border-radius: var(--radius-sm);
}
.kx-award__chip:nth-child(2) {
  border-left-color: var(--color-ai-accent);
}
.kx-award__chip:nth-child(3) {
  border-left-color: var(--color-success);
}
.kx-award__chip-label {
  font-size: var(--fs-micro);
  color: var(--color-neutral-500);
}
.kx-award__chip-value {
  font-size: var(--fs-body);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}

.kx-award__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 380px);
  gap: var(--space-5);
  align-items: start;
}
@media (max-width: 1200px) {
  .kx-award__grid {
    grid-template-columns: 1fr;
  }
}
.kx-award__main {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  min-width: 0;
}

/* 비교 매트릭스 */
.kx-compare {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-body);
}
.kx-compare th,
.kx-compare td {
  padding: var(--space-4);
  border-bottom: var(--border-card);
  text-align: center;
}
.kx-compare thead th {
  background: var(--color-neutral-050);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-compare thead th.kx-compare__metric-col,
.kx-compare td.kx-compare__metric-col {
  text-align: left;
  width: 22%;
  font-weight: var(--fw-semibold);
  color: var(--color-neutral-700);
}
.kx-compare__co {
  position: relative;
}
.kx-compare__co-name {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-compare__co--rec .kx-compare__co-name {
  color: var(--color-primary-700);
}
.kx-compare__co-sub {
  display: block;
  font-size: var(--fs-micro);
  font-weight: var(--fw-regular);
  color: var(--color-neutral-500);
  margin-top: 2px;
}
.kx-compare__rec-tag {
  display: inline-block;
  margin-bottom: 6px;
  font-size: var(--fs-nano);
  font-weight: var(--fw-bold);
  color: var(--color-on-accent);
  background: var(--color-primary-700);
  padding: 2px 8px;
  border-radius: var(--radius-pill);
}
.kx-compare__best {
  background: #f0fbf6;
  color: var(--color-success);
  font-weight: var(--fw-bold);
}
.kx-compare__val-strong {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
}
.kx-compare__note {
  display: block;
  font-size: var(--fs-micro);
  color: var(--color-neutral-500);
  margin-top: 2px;
}
.kx-compare__note--best {
  color: var(--color-success);
}
.kx-compare__score {
  background: var(--color-ai-surface);
}
.kx-compare__score-val {
  font-size: var(--fs-display);
  font-weight: var(--fw-bold);
  color: var(--color-ai-accent);
}
.kx-compare__star {
  color: var(--color-warning);
}

/* 리스크 카드 */
.kx-risk {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--space-4);
  align-items: center;
}
@media (max-width: 720px) {
  .kx-risk {
    grid-template-columns: 1fr;
  }
}
.kx-risk__grade {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: var(--space-4);
  background: var(--color-ai-surface);
  border: 1px solid var(--color-ai-accent);
  border-radius: var(--radius-lg);
}
.kx-risk__grade-value {
  font-size: 40px;
  font-weight: var(--fw-bold);
  color: var(--color-ai-accent);
  line-height: 1.1;
}
.kx-barlist__fill--success {
  background: var(--color-success);
}
.kx-barlist__fill--ai {
  background: var(--color-ai-accent);
}

/* 낙찰 선정 패널 */
.kx-award__panel {
  border: var(--border-card);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  padding: var(--space-4);
  position: sticky;
  top: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.kx-award__panel h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  color: var(--color-primary-700);
}
.kx-award__rec {
  border: 1px solid var(--color-primary-600);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  position: relative;
}
.kx-award__rec-top {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.kx-award__rec-avatar {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-lg);
  background: var(--color-primary-700);
  color: var(--color-on-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
}
.kx-award__rec-name {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
}
.kx-award__rec-ai {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--fs-caption);
  color: var(--color-ai-accent);
}
.kx-award__rec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
  padding-top: var(--space-3);
  border-top: var(--border-card);
}
.kx-award__rec-cell span {
  display: block;
}
.kx-award__rec-cell-label {
  font-size: var(--fs-micro);
  color: var(--color-neutral-500);
}
.kx-award__rec-cell-value {
  font-size: var(--fs-body);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
}
.kx-award__textarea {
  width: 100%;
  min-height: 110px;
  padding: var(--space-3);
  border: var(--border-card);
  border-radius: var(--radius-lg);
  font-size: var(--fs-body);
  font-family: var(--font-sans);
  resize: vertical;
}
.kx-award__warn {
  display: flex;
  gap: var(--space-2);
  padding: var(--space-3);
  background: #fef3f2;
  border-radius: var(--radius-sm);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--color-error);
}
.kx-award__steps {
  border-top: var(--border-card);
  padding-top: var(--space-4);
}
.kx-award__steps-title {
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-700);
  margin-bottom: var(--space-3);
}
.kx-award__steps ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.kx-award__steps li {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--fs-caption);
  color: var(--color-neutral-700);
}
.kx-award__steps li span {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-neutral-100);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-micro);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
}

/* 토스트 */
.kx-auc__toast {
  position: fixed;
  bottom: var(--space-5);
  right: var(--space-5);
  z-index: 100;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 12px 16px;
  background: var(--color-neutral-900);
  color: var(--color-on-accent);
  border-radius: var(--radius-lg);
  font-size: var(--fs-body);
  box-shadow: var(--shadow-level2);
}

/* F035 물량서(BOQ) 패널 — 자료 뷰어 스테이지 내부(밝은 카드·내부 스크롤) */
.kx-boq {
  position: absolute;
  inset: 0;
  background: var(--color-white);
  color: var(--color-text-strong);
  display: flex;
  flex-direction: column;
  padding: var(--space-4);
  gap: var(--space-3);
  overflow: auto;
  text-align: left;
}
.kx-boq__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
}
.kx-boq__title {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  color: var(--color-text-strong);
}
.kx-boq__scope {
  font-size: var(--fs-caption);
  color: var(--color-text-muted);
}
.kx-boq__scroll {
  overflow: auto;
  border: var(--border-card);
  border-radius: var(--radius-lg);
}
/* BOQ 표는 정본 .kx-table 로 수렴. 셀 상단정렬(다행 항목)만 스코프 유지. */
.kx-boq__scroll .kx-table td {
  vertical-align: top;
}
.kx-boq__trade {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--color-primary-surface, #eef2ff);
  color: var(--color-primary-600, #2f42fc);
  font-size: var(--fs-micro);
  font-weight: var(--fw-semibold);
}
.kx-boq__basis {
  color: var(--color-text-muted);
  font-size: var(--fs-micro);
}
.kx-boq__note {
  font-size: var(--fs-caption);
  color: var(--color-text-muted);
}
