/* orders.css — 全物品下单页（复用 warehouse.css 的外壳与卡片风格） */

.heading-links { display: flex; gap: .6rem; flex-wrap: wrap; }

.order-panel {
  margin: 1rem 0;
  padding: 1rem 1.1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .08);
}
.order-panel h2 { margin: 0 0 .8rem; font-size: 1.05rem; }
.panel-head { display: flex; align-items: center; justify-content: space-between; }
.panel-head h2 { margin: 0; }

.order-row { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; flex-wrap: wrap; }
.order-row label { min-width: 3rem; opacity: .8; font-size: .9rem; }
.order-row input[type="text"], .order-row input[type="number"] {
  flex: 1 1 16rem; min-width: 10rem;
  padding: .5rem .6rem; border-radius: 9px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(0, 0, 0, .25); color: inherit; font: inherit;
}
.order-row.actions { gap: .5rem; }
.mode-switch { display: flex; gap: .8rem; font-size: .9rem; }
.mode-switch label { display: flex; align-items: center; gap: .3rem; min-width: auto; opacity: 1; cursor: pointer; }

button {
  padding: .45rem .9rem; border-radius: 9px; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .06); color: inherit; font: inherit;
}
button:hover { background: rgba(255, 255, 255, .12); }
button.primary { background: rgba(90, 170, 255, .22); border-color: rgba(90, 170, 255, .5); }
button:disabled { opacity: .45; cursor: not-allowed; }

.preview-box {
  margin: .4rem 0 .8rem; padding: .7rem .8rem;
  border-radius: 10px; font-size: .88rem; line-height: 1.55;
  background: rgba(0, 0, 0, .22); border: 1px dashed rgba(255, 255, 255, .14);
  white-space: pre-wrap;
}
.preview-box.ok { border-color: rgba(90, 210, 140, .55); }
.preview-box.warn { border-color: rgba(255, 190, 90, .6); }
.preview-box.bad { border-color: rgba(255, 110, 110, .6); }

.order-message { font-size: .85rem; }
.order-message.error { color: #ff9a9a; }
.order-message.ok { color: #8be0a8; }

.order-table { width: 100%; border-collapse: collapse; margin-top: .8rem; font-size: .88rem; }
.order-table th, .order-table td { padding: .35rem .45rem; text-align: left; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.order-table th { opacity: .7; font-weight: 500; }

.badge {
  display: inline-block; padding: .1rem .45rem; border-radius: 999px;
  font-size: .74rem; border: 1px solid currentColor; opacity: .95; margin-left: .3rem;
}
.badge.blocked { color: #ffb45e; }
.badge.short { color: #ff8f8f; }
.badge.ok { color: #8be0a8; }
.badge.warnb { color: #ffd479; }
.badge.info { color: #8fb6ff; }

.order-list { display: flex; flex-direction: column; gap: .6rem; }
.order-card {
  padding: .7rem .85rem; border-radius: 11px;
  background: rgba(0, 0, 0, .2); border: 1px solid rgba(255, 255, 255, .09);
  font-size: .88rem;
}
.order-card .oc-head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.order-card .oc-body { margin-top: .35rem; opacity: .85; line-height: 1.5; }
.order-card .oc-actions { margin-top: .5rem; display: flex; gap: .5rem; }
.state-chip { padding: .1rem .5rem; border-radius: 999px; border: 1px solid currentColor; font-size: .76rem; }
.state-QUEUED { color: #9fb6d6; }
.state-RESERVED { color: #7fd0ff; }
.state-DELIVERING { color: #ffd479; }
.state-COMPLETE { color: #8be0a8; }
.state-CANCELLED { color: #b9a0d0; }
.state-FAILED, .state-BLOCKED_MISMATCH, .state-PROTOCOL_FAULT { color: #ff8f8f; }

/* ---- 物品搜索候选（中文/英文都能搜；点一个就选中）---- */
.candidate-list { display: flex; flex-direction: column; gap: .35rem; margin: .1rem 0 .6rem; }
.candidate {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  text-align: left; padding: .45rem .6rem; border-radius: 10px; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .14); background: rgba(0, 0, 0, .18); color: inherit; font: inherit;
}
.candidate:hover { background: rgba(90, 170, 255, .14); border-color: rgba(90, 170, 255, .45); }
.candidate.empty { opacity: .6; }
.candidate .cand-id { opacity: .6; font-size: .8rem; }
.candidate .cand-stock { font-size: .82rem; color: #9fd8b0; }
.candidate .cand-loc { font-size: .78rem; opacity: .6; }
.selected-item {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  margin: .1rem 0 .6rem; padding: .5rem .65rem; border-radius: 10px;
  background: rgba(90, 170, 255, .12); border: 1px solid rgba(90, 170, 255, .4);
  font-size: .9rem;
}
.selected-item .cand-stock { color: #9fd8b0; }
.hidden { display: none !important; }
