/* Užsakymų ir gamybos puslapis `/app/orders/` (OR2/OR3).
   Spalvos — tik temos tokenai (šviesi ir tamsi tema iš tų pačių kintamųjų); lietimo taikiniai ≥ 44 px, gamybos
   mygtukai ≥ 56 px (pirštinės, planšetė dirbtuvėse); užvedimas — tik pelei; perjungimai animuoti 200–240 ms,
   sumažinto judesio režime — be judesio. Spauda (gamybos lapas) — juoda ant balto, be tokenų. */

/* Puslapio karkasas — kaip sąskaitose (`invoices.css`): `#app` — viso ekrano stulpelis, slenka `.ord-page`. Be jo
   trumpame telefono ar planšetės ekrane `#app` baigdavosi ties turiniu, o po juo matėsi kita fono spalva (D2 audito L1). */
body {
  background: var(--bg-base);
  color: var(--text-primary);
  height: 100vh;
  height: 100dvh; /* mobile: įskaito naršyklės chrome */
  overflow: hidden;
}
#app {
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
}

.ord-page {
  width: 100%;
  max-width: 70rem;
  margin: 0 auto;
  padding: 1.25rem 1rem 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  /* `#app` — fiksuoto aukščio stulpelis (kaip sąskaitose), todėl slenka pati sekcija. */
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.ord-crumbs { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; min-height: 24px; font-size: 0.85rem; color: var(--text-muted); }
.ord-crumb { display: inline-flex; align-items: center; min-height: 24px; color: var(--text-muted); text-decoration: none; }
.ord-crumb[aria-current] { color: var(--text-secondary); }
.ord-crumb-sep { color: var(--border-mid); }
@media (pointer: coarse) { .ord-crumbs a.ord-crumb { min-height: 44px; } }
.ord-view-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; flex-wrap: wrap; }
.ord-view-title { margin: 0; font-size: 1.6rem; font-weight: 700; letter-spacing: -0.01em; color: var(--text-primary); }
.ord-view-title:focus, .ord-view-title:focus-visible { outline: none; box-shadow: none; }
.ord-view-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ord-view-actions:empty { display: none; }
.ord-page-status { margin: 0; font-size: 0.9rem; color: var(--text-secondary); }
.ord-page-status:empty { display: none; }
.ord-page-status[data-kind="error"] { color: var(--danger); }
.ord-view { display: flex; flex-direction: column; gap: 1rem; animation: ord-view-in 200ms cubic-bezier(0.215, 0.61, 0.355, 1); }
.ord-view[aria-busy="true"] { opacity: 0.7; transition: opacity 200ms ease-out; }

/* Mygtukai ir laukai */
.ord-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-height: 44px; padding: 0.45rem 0.9rem;
  border: 1px solid var(--border-mid); border-radius: var(--radius-md);
  background: var(--bg-surface); color: var(--text-primary);
  font: inherit; font-size: 0.92rem; font-weight: 500; text-decoration: none; cursor: pointer;
}
.ord-btn.is-primary { background: var(--accent); border-color: var(--accent); color: var(--bg-surface); }
.ord-btn.is-danger { color: var(--danger); border-color: var(--danger); }
.ord-btn.is-primary.is-danger { background: var(--danger); color: var(--bg-surface); }
.ord-btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.ord-big { min-height: 56px; min-width: 56px; font-size: 1.05rem; padding: 0.5rem 1.1rem; }
@media (hover: hover) and (pointer: fine) {
  .ord-btn:not([disabled]):hover { background: var(--bg-overlay); }
  .ord-btn.is-primary:not([disabled]):hover { filter: brightness(1.08); background: var(--accent); }
  .ord-card-link:hover { background: var(--bg-overlay); }
}
.ord-input {
  min-height: 44px; padding: 0.45rem 0.7rem;
  border: 1px solid var(--border-mid); border-radius: var(--radius-md);
  background: var(--bg-surface); color: var(--text-primary); font: inherit; font-size: 0.95rem;
}
.ord-input:focus { outline: none; border-color: var(--accent); }
.ord-input[aria-invalid="true"] { border-color: var(--danger); }
.ord-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 2px var(--danger); }
.ord-field-error { margin: 0.25rem 0 0; color: var(--danger); font-size: 0.82rem; }
.ord-field-error[hidden] { display: none; }
.ord-field { display: flex; flex-direction: column; gap: 0.3rem; }
.ord-field[hidden] { display: none; }
.ord-label { font-size: 0.88rem; font-weight: 500; color: var(--text-primary); }
.ord-hint { margin: 0; font-size: 0.82rem; color: var(--text-muted); }
.ord-muted { font-size: 0.82rem; color: var(--text-muted); }
.ord-empty { margin: 1.5rem 0; color: var(--text-secondary); }
.ord-form { display: flex; flex-direction: column; gap: 0.85rem; }

/* Skirtukai ir filtrai */
.ord-tabs { display: flex; gap: 0.35rem; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }
.ord-tab {
  display: inline-flex; align-items: center; gap: 0.4rem; flex: none;
  min-height: 44px; padding: 0 0.85rem; border: 1px solid var(--border); border-radius: 999px;
  background: var(--bg-surface); color: var(--text-primary); font: inherit; font-size: 0.9rem; font-weight: 500; cursor: pointer;
}
.ord-tab[aria-selected="true"] { border-color: var(--accent); background: var(--bg-overlay); }
.ord-tab-count { min-width: 1.4rem; padding: 0 0.35rem; border-radius: 999px; background: var(--bg-overlay); font-size: 0.78rem; font-variant-numeric: tabular-nums; text-align: center; }
.ord-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: flex-end; }
.ord-filters input[type="search"] { flex: 1 1 16rem; }

/* Kortelės (registras, eilė, gauti) */
.ord-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.ord-card {
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-surface);
  animation: ord-view-in 200ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
.ord-card:not(:has(> .ord-card-link)) { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding: 0.75rem 0.9rem; }
.ord-card-link {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.35rem 0.9rem;
  min-height: 56px; padding: 0.65rem 0.9rem; border-radius: inherit; color: inherit; text-decoration: none;
  transition: background-color 150ms ease-out;
}
.ord-card-num { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.ord-card-main { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; flex: 1 1 14rem; }
.ord-card-title { font-weight: 600; color: var(--text-primary); overflow-wrap: anywhere; }
.ord-card-sub { font-size: 0.85rem; color: var(--text-muted); overflow-wrap: anywhere; }
.ord-card-tags { display: flex; flex-wrap: wrap; gap: 0.35rem; justify-content: flex-end; }
.ord-card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 40rem) {
  .ord-card-link { grid-template-columns: auto 1fr; }
  .ord-card-link .ord-card-tags { grid-column: 1 / -1; justify-content: flex-start; }
}

.ord-state, .ord-kind-chip, .ord-flag, .ord-progress {
  display: inline-flex; align-items: center; min-height: 24px; padding: 0 0.55rem; border-radius: 999px;
  font-size: 0.78rem; font-weight: 600; white-space: nowrap; background: var(--bg-overlay); color: var(--text-primary);
}
.ord-state.is-draft { box-shadow: inset 0 0 0 1px var(--border-mid); background: transparent; }
.ord-state.is-ready, .ord-state.is-pending { box-shadow: inset 0 0 0 1px var(--accent); }
.ord-state.is-in_production { background: var(--accent); color: var(--bg-surface); }
.ord-state.is-produced, .ord-state.is-accepted { box-shadow: inset 0 0 0 1px var(--success); color: var(--success); background: transparent; }
.ord-state.is-closed, .ord-state.is-withdrawn { color: var(--text-muted); }
.ord-state.is-cancelled, .ord-state.is-rejected { color: var(--danger); background: transparent; box-shadow: inset 0 0 0 1px var(--danger); }
.ord-kind-chip.is-internal { box-shadow: inset 0 0 0 1px var(--border-mid); background: transparent; }
.ord-flag.is-danger { color: var(--danger); background: transparent; box-shadow: inset 0 0 0 1px var(--danger); }
.ord-flag.is-warning { color: var(--warning); background: transparent; box-shadow: inset 0 0 0 1px var(--warning); }
.ord-progress { font-variant-numeric: tabular-nums; }
.ord-progress.is-done { color: var(--success); }

/* Kortelė registre */
.ord-detail-head { display: flex; flex-direction: column; gap: 0.6rem; }
.ord-detail-tags { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.ord-facts { display: grid; grid-template-columns: max-content 1fr; gap: 0.35rem 1rem; margin: 0; font-size: 0.92rem; }
.ord-facts dt { color: var(--text-muted); }
.ord-facts dd { margin: 0; color: var(--text-primary); overflow-wrap: anywhere; }
.ord-facts a { color: var(--accent); }
/* Kliento nuoroda kortelėje — pirštui 44 px (D2 audito L2), kaip kelio nuorodos. */
@media (pointer: coarse) { .ord-facts a { display: inline-flex; align-items: center; min-height: 44px; } }
.ord-section { display: flex; flex-direction: column; gap: 0.6rem; padding: 0.9rem 1rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-surface); }
.ord-section-title { margin: 0; font-size: 1.02rem; font-weight: 700; color: var(--text-primary); }
.ord-progress-line { margin: 0; font-weight: 600; color: var(--text-primary); }
.ord-lines { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 0.6rem; }
.ord-line { display: flex; flex-direction: column; gap: 0.35rem; padding: 0.6rem; border: 1px solid var(--border); border-radius: var(--radius-md); }
.ord-line-drawing svg, .ord-work-drawing svg { display: block; width: 100%; height: auto; }
.ord-line-drawing { background: var(--bg-base); border-radius: var(--radius-sm); }
.ord-line-info { display: flex; flex-direction: column; gap: 0.15rem; }
.ord-line-name { font-weight: 600; color: var(--text-primary); }
.ord-line-meta { font-size: 0.85rem; color: var(--text-secondary); }
.ord-line-note, .ord-work-note { margin: 0; font-size: 0.88rem; color: var(--text-primary); font-style: italic; }
.ord-line-progress { font-size: 0.85rem; font-weight: 600; color: var(--text-primary); }
.ord-line-progress.is-done { color: var(--success); }
.ord-diff { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.ord-diff-item { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; padding: 0.35rem 0.55rem; border-left: 3px solid var(--border-mid); font-size: 0.9rem; }
.ord-diff-item.is-added { border-left-color: var(--success); }
.ord-diff-item.is-removed { border-left-color: var(--danger); }
.ord-diff-item.is-changed, .ord-diff-item.is-header { border-left-color: var(--warning); }
.ord-diff-label { font-weight: 600; color: var(--text-primary); }
.ord-diff-change { color: var(--text-primary); font-variant-numeric: tabular-nums; }
.ord-revisions { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.6rem; }
.ord-revision-head { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; align-items: baseline; }
.ord-files { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.ord-file { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.ord-file-thumb { width: 48px; height: 48px; flex: 0 0 48px; object-fit: cover; border-radius: var(--radius-sm); background: var(--bg-overlay); }
.ord-file-icon { display: inline-flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 700; color: var(--text-primary); }
.ord-file-info { display: flex; flex-direction: column; min-width: 0; flex: 1 1 10rem; }
.ord-file-name { font-weight: 500; color: var(--text-primary); overflow-wrap: anywhere; }
.ord-events { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.88rem; }
.ord-event { display: grid; grid-template-columns: 9.5rem 1fr auto; gap: 0.25rem 0.75rem; }
@media (max-width: 40rem) { .ord-event { grid-template-columns: 1fr; } }
.ord-code-new { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.75rem; padding: 0.75rem; border: 1px solid var(--accent); border-radius: var(--radius-md); }
.ord-code { font-size: 1.35rem; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; color: var(--text-primary); }

/* Gamyba */
.ord-queue-card.needs-ack { border-color: var(--warning); }
.ord-work-meta { margin: 0; color: var(--text-secondary); font-size: 0.92rem; }
/* IG1 (P3-16): antraštė pakeista po perdavimo — gamybai svarbus įspėjimas, todėl ryškus. */
.ord-header-changed { margin: 0; color: var(--warning); font-size: 0.92rem; font-weight: 600; }
.ord-ack {
  display: flex; flex-direction: column; gap: 0.6rem; padding: 1rem;
  border: 2px solid var(--warning); border-radius: var(--radius-lg); background: var(--bg-surface);
  animation: ord-view-in 240ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
.ord-ack-title { margin: 0; font-size: 1.1rem; color: var(--text-primary); }
.ord-ack-note { margin: 0; color: var(--text-primary); }
.ord-work-items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 0.75rem; }
.ord-work-item { display: flex; flex-direction: column; gap: 0.45rem; padding: 0.8rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-surface); transition: border-color 200ms ease-out; }
.ord-work-item.is-done { border-color: var(--success); }
.ord-work-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.ord-work-name { font-weight: 700; color: var(--text-primary); overflow-wrap: anywhere; }
.ord-work-count { font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.ord-work-count.is-done { color: var(--success); }
/* Brėžinys — mygtukas „Padidinti" (D2 audito L6): atrodo kaip iki šiol, kampe — ženkliukas. */
.ord-work-drawing {
  position: relative; display: block; width: 100%; padding: 0; border: 0;
  font: inherit; color: inherit; background: var(--bg-base); border-radius: var(--radius-md); cursor: zoom-in;
}
.ord-work-drawing-svg { display: block; }
.ord-work-zoom {
  position: absolute; right: 0.35rem; bottom: 0.35rem; display: grid; place-items: center; width: 1.75rem; height: 1.75rem;
  border: 1px solid var(--border-mid); border-radius: var(--radius-sm); background: var(--bg-surface); color: var(--text-primary);
  pointer-events: none;
}
.ord-dialog.is-wide { width: min(96vw, 64rem); }
.ord-zoom { overflow: auto; max-height: 65dvh; border-radius: var(--radius-md); background: var(--bg-base); overscroll-behavior: contain; }
.ord-zoom svg { display: block; max-width: none; height: auto; }
.ord-work-controls { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ord-work-controls .ord-btn { flex: 1 1 5rem; }
.ord-work-footer { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.5rem; }

/* Langai (ne istorijos įrašai) */
.ord-dialog-backdrop { position: fixed; inset: 0; z-index: 900; background: rgba(0, 0, 0, 0.5); animation: ord-fade 200ms ease-out; }
.ord-dialog {
  position: fixed; z-index: 901; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(92vw, 34rem); max-height: 90dvh; overflow: auto; display: flex; flex-direction: column; gap: 0.75rem;
  padding: 1.1rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-surface);
  animation: ord-pop 200ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
.ord-dialog-title { margin: 0; font-size: 1.1rem; color: var(--text-primary); overflow-wrap: anywhere; }
.ord-dialog-text { margin: 0; color: var(--text-primary); }
.ord-dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 0.5rem; }
.ord-preview-body { display: flex; flex-direction: column; gap: 0.5rem; }
.ord-preview-body img { max-width: 100%; height: auto; border-radius: var(--radius-sm); }

@keyframes ord-view-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes ord-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ord-pop { from { opacity: 0; transform: translate(-50%, -50%) scale(0.98); } to { opacity: 1; transform: translate(-50%, -50%); } }
@media (prefers-reduced-motion: reduce) {
  .ord-view, .ord-card, .ord-ack, .ord-dialog, .ord-dialog-backdrop { animation: none; }
  .ord-card-link, .ord-work-item { transition: none; }
}

/* Gamybos lapas: ekrane nematomas; spausdinant — tik jis. */
.ord-print { display: none; }
@media print {
  /* Ekrano karkasas (fiksuotas aukštis, slenkanti sekcija) popieriuje nukirptų viską po pirmo lapo. */
  body, #app { height: auto; overflow: visible; }
  .ord-page { overflow: visible; }
  body.ord-printing > :not(.ord-print) { display: none !important; }
  body.ord-printing .ord-print { display: block; color: #000; background: #fff; }
  .ps-sheet { font: 11pt/1.35 system-ui, sans-serif; color: #000; }
  .ps-head { border-bottom: 1px solid #000; margin-bottom: 8mm; }
  .ps-title { font-size: 18pt; margin: 0 0 3mm; }
  .ps-facts { display: grid; grid-template-columns: max-content 1fr; gap: 1mm 6mm; margin: 0 0 3mm; }
  .ps-facts dd { margin: 0; }
  .ps-note { font-style: italic; margin: 1mm 0; }
  .ps-item { break-inside: avoid; border: 1px solid #000; padding: 3mm; margin-bottom: 4mm; }
  .ps-item-head { display: flex; align-items: center; gap: 3mm; }
  .ps-check { width: 5mm; height: 5mm; border: 1px solid #000; }
  .ps-drawing svg { width: 100%; max-height: 80mm; }
  .ps-meta { margin: 1mm 0; }
  @page { size: A4 portrait; margin: 12mm; }
}
