/* Order detail tab content (production lots, documents, dispatch, history), customer detail and order dialogs.
   Split from order-detail.css (300-line brake); loaded right after it, cascade order unchanged. */
/* Admin tab content (production, documents, dispatch, history). */
.aw-tab-content{gap:var(--space-3)}
[data-screen-id="operations.production-detail"]{display:grid;gap:var(--space-3);min-width:0}
[data-screen-id="operations.production-detail"]>.notice{margin:0}
/* The lot block is its own container: the table needs ~670px, so narrower lots become labelled cards
   at any viewport (tablet content columns included), not only on phones. */
.product-lots{container:product-lots/inline-size}
.product-lots>h3{margin:0 0 2px;font-size:var(--text-lg)}
.product-lots>p{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--ink-2)}
.product-lots>.notice{margin-bottom:var(--space-2)}
.product-lots>.table-wrap{margin-bottom:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-control)}
.product-lots .data-table td{padding-block:6px}
.product-lots .data-table td:last-child{min-width:180px;white-space:normal}
/* Scroll cue if a table ever outgrows its lot block (e.g. a long locale); shadows appear only at a scrollable edge. */
.product-lots>.table-wrap{background:linear-gradient(90deg,var(--surface) 30%,#fff0) left/24px 100% no-repeat local,linear-gradient(270deg,var(--surface) 30%,#fff0) right/24px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,#1735542e,#0000) left/10px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,#1735542e,#0000) right/10px 100% no-repeat scroll}
.product-lots>.empty-state{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:4px 10px;padding:var(--space-2) 0;text-align:left}
.product-lots>.empty-state>.icon{width:20px;height:20px}
.product-lots>form[data-submit=production-add]{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2) var(--space-3)}
.product-lots>form[data-submit=production-add]>.field{flex:0 1 240px}
.product-lots>form[data-submit=production-add]>.form-error{flex-basis:100%;order:3}
.product-lots>.muted{margin:0;font-size:var(--text-sm)}
[data-screen-id="operations.production-detail"] .product-queue-row{gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-sm)}
[data-screen-id="operations.production-detail"] .product-queue-row+form{margin-top:var(--space-3)}
form[data-submit=document-generate]>p.muted{margin:0;font-size:var(--text-xs)}
@media(min-width:700px){
 form[data-submit=task-create]{display:grid;grid-template-columns:minmax(0,2fr) minmax(160px,1fr);gap:var(--space-3) var(--space-4)}
 form[data-submit=task-create]>.field:first-child{grid-column:1;grid-row:1}
 form[data-submit=task-create]>label:has(textarea){grid-column:1/-1;grid-row:2}
 form[data-submit=task-create]>.field:nth-child(3){grid-column:2;grid-row:1}
 form[data-submit=task-create]>:is(.notice,.cluster){grid-column:1/-1}
 form[data-submit=task-create] textarea{min-height:64px}
}
/* Two selects plus the action need ~900px; below that the shipment select would clip (768). */
@media(min-width:900px){
 form[data-submit=document-generate]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:var(--space-2) var(--space-3)}
 form[data-submit=document-generate]>.cluster{grid-column:3;grid-row:1}
 form[data-submit=document-generate]>:is(p,.notice){grid-column:1/-1}
}
/* Narrow lot blocks (tablet content columns and phones): each production lot becomes a labelled card
   with a full-width action, so 'Úprava' is never hidden in an unmarked horizontal scroll. */
@container product-lots (max-width:699px){
 [data-screen-id="operations.production-detail"] .table-wrap{overflow:visible;border:0;border-radius:0;background:none}
 [data-screen-id="operations.production-detail"] .data-table{white-space:normal}
 [data-screen-id="operations.production-detail"] .data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 [data-screen-id="operations.production-detail"] .data-table tbody tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--line)}
 [data-screen-id="operations.production-detail"] .data-table tbody tr:hover{background:none}
 [data-screen-id="operations.production-detail"] .data-table td{display:block;min-width:0;padding:0;border:0;font-size:var(--text-md)}
 [data-screen-id="operations.production-detail"] .data-table td::before{content:attr(data-label);display:block;font-size:var(--text-xs);font-weight:600;color:var(--muted)}
 [data-screen-id="operations.production-detail"] .data-table td:first-child{grid-column:1/-1;font-weight:650;color:var(--ink)}
 [data-screen-id="operations.production-detail"] .data-table td:is(:first-child,:last-child)::before{display:none}
 [data-screen-id="operations.production-detail"] .data-table td:last-child{grid-column:1/-1}
 [data-screen-id="operations.production-detail"] .data-table td:last-child>.btn{width:100%}
}
@container product-lots (max-width:479px){
 [data-screen-id="operations.production-detail"] .data-table tbody tr{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container product-lots (min-width:480px) and (max-width:699px){
 [data-screen-id="operations.production-detail"] .data-table td:last-child>.btn{width:auto;min-width:200px}
}
@media(max-width:699px){
 .product-lots>form[data-submit=production-add]>.field{flex:1 1 100%}
 .product-lots>form[data-submit=production-add]>.cluster{flex:1 1 100%}
 .product-lots>form[data-submit=production-add]>.cluster>.btn{flex:1 1 auto}
}
/* Shipments in the dispatch tab. */
.customer-shipment>.split{flex-wrap:wrap;gap:4px var(--space-3)}
.customer-shipment>.split>h3{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:var(--text-md)}
.customer-shipment>p{margin:4px 0 0;font-size:var(--text-sm);color:var(--ink-2)}
.customer-shipment>.cluster{margin-top:var(--space-2)}
.customer-shipment>.cluster>.btn{margin:0}
.panel-body>.customer-shipment+.customer-shipment{margin-top:var(--space-2)}
[data-screen-id="operations.dispatch-unavailable"]{margin:0}

/* History tab: an aligned list with time and author in their own column. */
.product-history-event{display:grid;grid-template-columns:minmax(140px,180px) minmax(0,1fr);gap:2px var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--line-soft);font-size:var(--text-sm);overflow-wrap:anywhere}
.product-history-event:first-child{padding-top:0}
.product-history-event:last-child{padding-bottom:0;border-bottom:0}
.product-history-event>small{padding-top:1px;font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.product-history-event strong{font-weight:600;color:var(--ink)}
.product-history-event p{margin:2px 0 0;color:var(--ink-2)}
/* Author on its own line under the time in the two-column layout; one '·'-joined line on phones. */
.aw-event-author{display:block}
@media(max-width:699px){
 .product-history-event,.aw-event{grid-template-columns:minmax(0,1fr)}
 .aw-event-author{display:inline}
 .aw-event-author::before{content:" · "}
}

/* Customer order detail: one header card (state, dates, price, four counts), model rows, offer and messages. */
.customer-detail-head{margin-bottom:var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.customer-detail-head>.product-detail-meta{justify-content:flex-start;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:0;padding:var(--space-3) var(--space-4)}
.product-detail-meta>span:not(.badge){font-size:var(--text-sm);color:var(--ink-2)}
.product-detail-meta>.product-price-compact{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:2px var(--space-2);margin-left:auto;text-align:right}
.product-detail-meta>.product-price-compact>strong{font-size:var(--text-xl);font-weight:700}
.product-detail-meta>.product-price-compact>:is(small,span){font-size:var(--text-xs)}
.customer-detail-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-soft)}
.customer-detail-counts>div{display:grid;align-content:space-between;gap:0;min-width:0;padding:var(--space-2) var(--space-4);border-left:1px solid var(--line-soft)}
.customer-detail-counts>div:first-child{border-left:0}
.customer-detail-counts span{font-size:var(--text-xs);font-weight:600;color:var(--muted);overflow-wrap:anywhere}
.customer-detail-counts strong{font-size:var(--text-xl);line-height:1.3;color:var(--ink);font-variant-numeric:tabular-nums}
.customer-detail-counts small{font-size:var(--text-xs);font-weight:400;color:var(--muted)}
.customer-detail-head+.tabs{margin-bottom:var(--space-3)}
/* Phones: the back link starts at the content edge like the heading and the reorder button. */
@media(max-width:699px){.workspace:has(.customer-detail-head)>.page-heading .page-actions>.btn-ghost:first-child{padding-inline:0}}
/* Order detail tabs scroll on phones: open with the selected tab in view where the browser supports it. */
/* The end padding keeps the selected tab clear of the 24px fade mask of the phone tab row. */
:is(.aw-workspace>.tabs,.customer-detail-head+.tabs){scroll-padding-inline:0 24px}
:is(.aw-workspace>.tabs,.customer-detail-head+.tabs)>.tab.active{scroll-initial-target:nearest;scroll-snap-align:none end}
@media(max-width:699px){
 .customer-detail-head>.product-detail-meta{padding:var(--space-3)}
 .product-detail-meta>.product-price-compact{flex:1 1 100%;justify-content:flex-start;margin-left:0;text-align:left}
 .customer-detail-counts>div{padding:var(--space-2)}
 .customer-detail-counts span{overflow-wrap:break-word;hyphens:auto}
}
@media(max-width:379px){
 .customer-detail-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .customer-detail-counts>div:nth-child(odd){border-left:0}
 .customer-detail-counts>div:nth-child(n+3){border-top:1px solid var(--line-soft)}
}
.order-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,312px);gap:var(--space-4);align-items:start}
.order-detail-grid>.stack{gap:var(--space-3)}
.order-detail-grid .panel-body>p{margin-bottom:var(--space-2);font-size:var(--text-sm)}
.order-detail-grid .panel-body>p:last-child{margin-bottom:0}
.order-detail-grid .panel-body>h3{margin:var(--space-3) 0 2px;font-size:var(--text-sm)}
.order-detail-grid .panel-body>.product-price-summary{padding:0;border:0;background:none}
.order-detail-grid .panel-body>.product-price-summary+*{margin-top:var(--space-3)}
.order-detail-grid .panel-body>.split{font-size:var(--text-sm);color:var(--muted)}
.order-detail-grid .panel-body>.order-message{margin-bottom:var(--space-2)}
.order-detail-grid .panel-body>.order-message+form{margin-top:var(--space-3)}
@media(max-width:1199px){.order-detail-grid{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:899px){.order-detail-grid{grid-template-columns:minmax(0,1fr)}}
.order-part{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(120px,auto);align-items:start;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line-soft)}
.order-part:first-child{padding-top:0}
.order-part:last-child{padding-bottom:0;border-bottom:0}
.order-part-preview .model-visual{width:72px;height:72px;aspect-ratio:auto;border-radius:var(--radius-control);background:#f1f5fa}
.order-part-preview .model-visual img{display:block;width:100%;height:100%;object-fit:contain}
.order-part-body{display:grid;gap:4px;min-width:0}
.order-part-body>h3{margin:0;font-size:var(--text-lg);font-weight:650;line-height:1.35;overflow-wrap:anywhere}
.order-part-body>p{margin:0;font-size:var(--text-sm);line-height:1.45;overflow-wrap:anywhere}
.order-part-body>.btn{justify-self:start;margin-top:var(--space-1)}
.order-part-price{display:grid;justify-items:end;gap:2px;text-align:right;font-variant-numeric:tabular-nums}
.order-part-price>strong{font-size:var(--text-lg);font-weight:700;color:var(--ink)}
.order-part-price>small{font-size:var(--text-xs);color:var(--muted)}
.order-part-price:is([data-price-kind=included],[data-price-kind=unknown])>strong{font-size:var(--text-md);font-weight:600;color:var(--muted)}
@media(max-width:699px){
 .order-part{grid-template-columns:64px minmax(0,1fr)}
 .order-part-preview .model-visual{width:64px;height:64px}
 .order-part-price{grid-column:2;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--space-2);text-align:left}
}
/* Documents (admin and customer detail): one row per document, compact lines. */
:is(.aw-tab-content,.customer-detail-head~.stack) .product-queue-row{gap:var(--space-3);padding:var(--space-2) 0}
:is(.aw-tab-content,.customer-detail-head~.stack) .product-queue-row:first-child{padding-top:0}
:is(.aw-tab-content,.customer-detail-head~.stack) .product-queue-row p{margin:2px 0 0;font-size:var(--text-sm);color:var(--ink-2)}

/* Order dialogs: grouped two-column short fields, full-width notes, an always visible sticky action row. */
.portal-modal form[data-submit=offer] .product-manual-line{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2)}
.portal-modal form[data-submit=offer] .product-manual-line>h3{margin:0 0 var(--space-2);font-size:var(--text-md)}
.portal-modal form[data-submit=offer] fieldset>p{margin:0;font-size:var(--text-sm)}
/* U3a: položky ponuky a ich vyradenie stoja pred formulárom; formulár ostáva priamym potomkom tela dialógu (sticky akcie). */
.portal-modal [data-part-exclusion]{margin-bottom:var(--space-4);padding:var(--space-3);gap:var(--space-2);border-color:var(--line);border-radius:var(--radius-control);background:var(--surface-2)}
.portal-modal [data-part-exclusion]>h3,.portal-modal [data-exclusion-panel]>h4{margin:0;font-size:var(--text-md)}
.portal-modal [data-part-exclusion] p{margin:0;font-size:var(--text-sm)}
.portal-modal [data-exclusion-panel]{display:grid;gap:var(--space-2)}
.portal-modal form:is([data-submit=offer],[data-submit=document],[data-submit=payment],[data-submit=payment-correction],[data-submit=case-add-model])>:is(p,.notice){margin:0}
/* Money inputs of the offer stay paired on phones; labels may wrap, inputs align on one line. */
.portal-modal form[data-submit=offer]>.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
@media(min-width:700px){
 .portal-modal form[data-submit=offer]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4)}
 .portal-modal form[data-submit=offer]>:is(.grid-2,fieldset,.notice,p,label:has(textarea),.cluster){grid-column:1/-1}
 .portal-modal form[data-submit=offer]>.grid-2{grid-template-columns:repeat(3,minmax(0,1fr))}
 .portal-modal form[data-submit=offer] .product-manual-line>.grid-2{grid-template-columns:repeat(3,minmax(0,1fr))}
 .portal-modal form:is([data-submit=document],[data-submit=payment],[data-submit=payment-correction],[data-submit=case-add-model]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4)}
 .portal-modal form:is([data-submit=document],[data-submit=payment],[data-submit=payment-correction],[data-submit=case-add-model])>:is(.cluster,.notice,p,label:has(textarea),fieldset){grid-column:1/-1}
 .portal-modal form[data-submit=case-add-model]>.check-row{align-self:center}
}

/* Nearby navigation is independent of quantity writes and provider actions. */
.operation-shortcuts{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding:8px 12px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-control)}
.operation-shortcuts>span{font-size:var(--text-xs);font-weight:600;color:var(--muted)}
.invoice-availability{display:grid;gap:4px;max-width:340px}
.invoice-availability>small{font-size:var(--text-xs);line-height:1.4;color:var(--muted)}
@media(max-width:699px){.operation-shortcuts .btn{min-height:44px}.invoice-availability{max-width:100%}}
/* A2b (REDIZAJN-V6-2 PLAN.md riadok A2b): hlavná záložka Komunikácia (admin-workspace.js renderAdminCommsTab) má ten istý panel
   ako Súhrn, na šírku obsahu do 960 px, aby riadky správ ostali čitateľné. */
.aw-comms-view{min-width:0;max-width:960px}
