/* Shipping engine. From scratch, so it uses the host's --shy-* tokens
   directly (no :root alias block). Every stylesheet loads on every page:
   every class is prefixed shp-. */

.shp-muted { color: var(--shy-text-muted); font-size: 0.9rem; }
.shp-nowrap { white-space: nowrap; }

.shp-reprint { display: flex; gap: 0.75rem; align-items: flex-end; flex-wrap: wrap; }
.shp-reprint .field { margin: 0; }
.shp-reprint input[type="text"] { width: 10rem; font-size: 1.1rem; }

.shp-scroll { overflow-x: auto; }
.shp-table { width: 100%; }
.shy-admin .shp-table td { vertical-align: top; }

.shp-create { display: grid; gap: 0.5rem 0.75rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); align-items: end; }
.shp-create .field { margin: 0; }
.shp-weight span { display: flex; gap: 0.35rem; }
.shp-weight input { min-width: 0; flex: 1; }
.shp-weight select { flex: 0 0 4.5rem; min-width: 0; }
.shp-band { display: flex; gap: 0.35rem; align-items: center; max-width: 24rem; }
.shp-band input { min-width: 0; flex: 1; }
.shp-inline-form { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.shp-inline-form input[type="number"] { width: 7rem; }
.shp-label { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.shp-days { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; }
.shy-admin .field label.shp-day { display: inline-flex; gap: 0.35rem; align-items: center; margin: 0; font-weight: normal; font-size: 0.95rem; }
.shy-admin .field .shp-day input { width: auto; padding: 0; }
.shp-ship-date { display: grid; gap: 0.4rem; justify-items: start; padding-top: 0.75rem; border-top: 1px solid var(--shy-border); width: 100%; }
.shp-quote { margin: 0 0 1rem; padding-left: 1.1rem; line-height: 1.6; }

.shp-find { display: flex; gap: 0.75rem; align-items: flex-end; flex-wrap: wrap; margin-bottom: 1rem; }
.shp-find .field { margin: 0; flex: 1 1 16rem; }
.shp-find input[type="text"] { width: 100%; }
.shp-found { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.shp-found li { display: flex; gap: 0.75rem; align-items: baseline; }
.shp-candidate { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 0.25rem; }
.shp-label { font-weight: 600; font-size: 0.9rem; }

/* Print a PDF */
.shp-form input[type="file"] { max-width: 100%; }
.shp-form input[type="number"] { width: 7rem; }
.shp-progress { display: grid; gap: 1rem; }
.shp-progress__state { margin: 0; display: flex; gap: 0.6rem; align-items: baseline; flex-wrap: wrap; font-size: 1.05rem; }
.shp-warning { margin: 0; padding: 0.75rem 1rem; border-radius: var(--shy-radius); background: var(--shy-warning-tint); color: var(--shy-warning); }
.shp-facts { display: grid; grid-template-columns: max-content 1fr; gap: 0.35rem 1rem; margin: 0; }
.shp-facts dt { color: var(--shy-text-muted); }
.shp-facts dd { margin: 0; overflow-wrap: anywhere; }
.shp-recent { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.shp-recent li { display: flex; gap: 0.25rem 0.75rem; align-items: baseline; flex-wrap: wrap; }
.shp-recent a { overflow-wrap: anywhere; }

/* Batches (#82) */
.shp-batches__top { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); align-items: start; }
.shp-batches__synced { margin: -0.75rem 0 1rem; }
.shp-next, .shp-credit, .shp-sorting { display: grid; gap: 0.75rem; justify-items: start; }
.shp-next p, .shp-credit p, .shp-sorting p { margin: 0; }
.shp-next__button { white-space: normal; text-align: left; font-size: 1.05rem; }
.shp-next__button:disabled { opacity: 0.45; cursor: not-allowed; }
.shp-credit__line { line-height: 1.6; }
.shp-credit__add { color: var(--shy-warning); font-weight: 600; }
.shp-credit__actions { display: flex; gap: 0.5rem 0.75rem; align-items: center; flex-wrap: wrap; }
.shp-batches .shp-batch__name { display: block; font-weight: 600; }
.shp-batches small { display: block; }
.shp-batch__message { color: var(--shy-text-muted); max-width: 32rem; }
@media (max-width: 640px) {
  /* One batch a block: its name and message, then state, orders, cost and button on one wrapping line. */
  .shp-batches thead { display: none; }
  .shp-batches tr { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; align-items: center; padding: 0.6rem 0; border-bottom: 1px solid var(--shy-border); }
  .shy-admin .shp-batches td { display: block; padding: 0; border: 0; }
  .shp-batches td:first-child { flex: 1 1 100%; }
  .shp-batches td:last-child:not(:empty) { margin-left: auto; }
}
