/* 흐름 스텝(.admin-flow-steps / .flow-step*)은 base.css 단일 정의. 여기 중복 제거됨. */

/* 검색/필터 */
.order-filter-bar {
  display:flex; gap:8px; align-items:center; margin-bottom:10px;
}
.filter-search {
  display:flex; align-items:center; gap:8px; flex:1; min-width:0;
  padding:6px 12px; border:1px solid var(--border-subtle); border-radius:8px; background:var(--bg-surface);
  transition:border-color .15s;
}
.filter-search:focus-within { border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.12); }
.filter-search input { border:none!important; outline:none; flex:1; font-size:var(--fs-control); background:transparent; box-shadow:none!important; padding:2px 0; min-width:0; }
.filter-more-btn {
  display:flex; align-items:center; gap:4px; padding:7px 12px;
  font-size:var(--fs-label); color:var(--fg-muted); background:var(--bg-surface); border:1px solid var(--border-subtle);
  border-radius:8px; cursor:pointer; white-space:nowrap; transition:all .15s;
}
.filter-more-btn:hover { border-color:#94a3b8; color:var(--fg-default); }
.filter-more-btn.has-filter { border-color:#2563eb; color:#2563eb; position:relative; }
.filter-count-badge { display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:8px;background:#2563eb;color:var(--bg-surface);font-size:var(--fs-nano);font-weight:700;margin-left:4px;padding:0 4px; }
.filter-reset-btn { font-size:var(--fs-label); color:var(--fg-faint); text-decoration:none; white-space:nowrap; }
.filter-reset-btn:hover { color:var(--fg-muted); text-decoration:underline; }
.order-filter-extra { margin-bottom:10px; }
.filter-row {
  display:flex; gap:8px; flex-wrap:wrap;
}
.filter-row select, .filter-row input[type=date] {
  padding:6px 10px; border:1px solid var(--border-subtle); border-radius:6px;
  font-size:var(--fs-label); color:var(--fg-default); background:var(--bg-surface); outline:none; box-shadow: var(--ring-focus); }
.filter-row select:focus, .filter-row input:focus { border-color:#3b82f6; }

/* 운송장 드롭존 */
.drop-zone {
  display:flex; align-items:center; gap:12px; padding:10px 16px;
  border:2px dashed #93c5fd; border-radius:8px; background:#f0f7ff;
  cursor:pointer; margin-bottom:8px; transition:all .15s; font-size:var(--fs-label); color:#1e40af;
}
.drop-zone:hover, .drop-zone.drop-active { border-color:#2563eb; background:var(--accent-100); }

@keyframes fadeSlideUp {
  from { opacity:0; transform:translateX(-50%) translateY(8px); }
  to { opacity:1; transform:translateX(-50%) translateY(0); }
}

@media (max-width:768px) {
  /* 흐름 스텝 모바일 규칙은 base.css 가 담당 */
  .order-filter-bar { flex-wrap:wrap; }
  .filter-row { display:grid !important; grid-template-columns:1fr 1fr; gap:6px !important; }
  .filter-row select, .filter-row input[type=date] { width:100%; }
  .drop-zone { display:none; }
  .bulk-bar { top:48px; border-radius:0; margin:0 -10px 8px; padding:8px 10px; }
}

/* 아코디언 */
.accordion-detail-row td { padding:0!important; border:none; background:var(--bg-app); }
.accordion-open { background:var(--accent-50)!important; }
.accordion-open td { background:var(--accent-50)!important; }
.mobile-order-card.accordion-open { border-color:#3b82f6; background:var(--accent-50); }

/* ⚠️ 이 .acc-* 한 벌은 **일부러 남긴 중복**이다(2026-08-30).
   정본은 components_core.css 로 옮겼고 반품 목록이 그걸 읽는다. 여기 것을 지우면
   주문 목록에서 order_list.css 의 .acc-* 정의(토큰판)가 이겨 **모양이 바뀐다** —
   지금 화면에 보이는 건 이 파일 것이다(extra_css 중 마지막에 실린다).
   ⭐ 걷으려면 order_list.css·이 파일 두 벌을 같이 지우고 렌더로 대조해라. 셋을 한 번에. */
@keyframes accSlide { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }
/* 아코디언 패널 */
.acc-panel { padding:16px 18px; border-top:2px solid #3b82f6; animation:accSlide .2s ease; }
.acc-header { margin-bottom:12px; }
.acc-info-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:6px 16px; }
/* 긴 주소가 grid 칸(minmax 200px)을 넘쳐 옆 칸 글자 위에 겹쳐 그려지던 것을 막는다(2026-08-20).
   범인은 base.css 의 `table.data-table td { white-space:nowrap }` — 아코디언 패널이 td 안에
   있어 상속받는다. 그 전역 규약은 표 전체가 쓰므로 건드리지 말고 여기서만 되돌린다.
   min-width:0 도 함께 필요하다 — grid·flex 아이템의 기본값 auto 는 안 줄어든다.
   같은 규칙이 order_list.css 에도 있다(두 파일이 화면마다 따로 실린다). */
.acc-info-item { display:flex; align-items:baseline; gap:6px; font-size:var(--fs-label); min-width:0; }
.acc-info-label { color:var(--fg-faint); flex-shrink:0; min-width:40px; }
.acc-info-val { color:var(--fg-default); min-width:0; white-space:normal; overflow-wrap:anywhere; }

.acc-items { background:var(--bg-surface); border:1px solid var(--border-subtle); border-radius:8px; overflow:hidden; margin-bottom:12px; }
.acc-item-row { display:grid; grid-template-columns:1fr auto 50px 80px; align-items:center; padding:8px 14px; border-bottom:1px solid #f1f5f9; font-size:var(--fs-control); }
.acc-item-row:last-of-type { border-bottom:none; }
.acc-item-name { font-weight:500; color:var(--fg-default); }
.acc-item-pub { color:var(--fg-faint); font-size:var(--fs-micro); text-align:right; padding-right:12px; }
.acc-item-qty { text-align:center; color:var(--fg-muted); font-size:var(--fs-label); }
.acc-item-amt { text-align:right; font-weight:600; color:var(--fg-default); }
.acc-total-row { display:flex; justify-content:space-between; padding:10px 14px; background:var(--bg-app); border-top:1px solid var(--border-subtle); font-size:var(--fs-control); font-weight:600; color:var(--fg-muted); }
.acc-total-val { font-size:var(--fs-body-lg); font-weight:700; color:#2563eb; }

.acc-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.acc-btn-muted { color:var(--fg-faint)!important; font-size:var(--fs-micro)!important; }
.acc-tracking-input { padding:5px 10px; border:1px solid #d1d5db; border-radius:5px; font-size:var(--fs-label); width:140px; outline:none; transition:border-color .15s; }
.acc-tracking-input:focus { border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.12); }

@media (max-width:768px) {
  .acc-info-grid { grid-template-columns:1fr; }
  .acc-item-row { grid-template-columns:1fr 50px 70px; }
  .acc-item-pub { display:none; }
  .acc-actions { gap:4px; }
  .acc-tracking-input { width:120px; }
}

