/* One action-layer contract. Navigation, dock, popovers and modal editors use
   named layers; mobile controls keep their purposes and clear the fixed dock. */
:root { --action-layer-dock:50; --action-layer-popover:70; --action-layer-backdrop:1090; --action-layer-dialog:1101; --action-touch-size:44px; --action-safe-bottom:env(safe-area-inset-bottom,0px); }
.costing-field-label { display:flex; flex-direction:column; gap:4px; font-size:11px; font-weight:600; }
.costing-field-label input,.costing-field-label select { font-weight:400; }
body .shared-status-action-footer { z-index:var(--action-layer-dock); }
.invoice-review-more-actions > div { z-index:var(--action-layer-popover); }
[data-compact-backdrop] { z-index:var(--action-layer-backdrop); }
/* Canonical shared dock: desktop, tablet and phone declarations live together. */
body .shared-status-action-footer { display:flex; align-items:center; flex-wrap:nowrap; gap:12px; right:12px; border:1px solid #d6ddd8; border-radius:16px; padding:9px 14px; background:#fbfcfa; box-shadow:0 5px 24px #183d2420; width:auto; min-height:54px; grid-template-columns:minmax(0,1fr) auto; }
body .shared-status-action-footer .invoice-review-dock-status { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; min-width:0; flex:1; order:3; }
body .shared-status-action-footer #invoiceReviewSaveState { font-size:11px; font-weight:400; }
body .shared-status-action-footer .invoice-review-dock-actions button { min-height:38px; padding:8px 14px; border-radius:8px; font-size:13px; }
body .shared-status-action-footer .status-chip { display:inline-flex; align-items:center; background:transparent; border:0; padding:0; min-height:20px; white-space:nowrap; font-size:11px; line-height:16px; border-radius:6px; box-sizing:border-box; }
body #invoicePresenceChip { display:flex; width:126px!important; max-width:100%; box-sizing:border-box; justify-content:center; overflow:hidden; text-overflow:ellipsis; }
@media(max-width:760px) { body #invoicePresenceChip { width:100%!important; } }
body .shared-status-action-footer .deployment-status { display:flex; flex-wrap:nowrap; align-items:center; gap:10px; }
body .shared-status-action-footer #invoiceReviewConnectionDetails { display:none; max-width:min(700px,90vw); max-height:45vh; overflow:auto; }
body .shared-status-action-footer #refreshStatus[hidden],body .shared-status-action-footer [hidden] { display:none!important; }
body .shared-status-action-footer .universal-save-indicator,
body .shared-status-action-footer .universal-large-save-backdrop { position:static; inset:auto; min-width:0; width:auto; background:transparent; box-shadow:none; padding:8px 0; z-index:auto; }
body .shared-status-action-footer .universal-large-save-card { min-width:0; width:auto; max-width:100%; padding:10px; }
body .shared-status-action-footer .status-chip::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:#c3a13a; margin-right:5px; }
body .shared-status-action-footer .status-chip.is-good::before { background:#43855b; }
body .shared-status-action-footer .status-chip.is-bad::before,body .shared-status-action-footer .status-chip.is-disabled::before { background:#b84949; }
body .shared-status-action-footer #buildVersionChip,body .shared-status-action-footer #invoiceLabChip,body .shared-status-action-footer #markSupportProblem,body .shared-status-action-footer #loginStatusChip { display:none; }
body .shared-status-action-footer .reporting-period-control { min-width:170px; width:auto; margin:0; }
body .shared-status-action-footer .reporting-period-button { min-height:36px; padding:5px 9px; }
body .shared-status-action-footer .reporting-period-button small,body .shared-status-action-footer #monthPeriodStatusBadge { display:none; }
body .shared-status-action-footer .reporting-period-menu { top:auto; bottom:calc(100% + 12px); max-height:60vh; overflow:auto; }
body .shared-status-action-footer .invoice-review-dock-actions { margin-left:auto; order:4; flex-wrap:nowrap; }
body .shared-status-action-footer button { min-height:36px; }
body .shared-status-action-footer .dock-exit-button { color:#a33a3a; border:1px solid #cc9494; background:#fff; }
html body #invoice #invoiceQueueReviewPanel .invoice-stage-footer button { min-height:36px; padding:7px 12px; font-size:12px; }
html body #invoice #invoiceQueueReviewPanel #invoiceReviewFooter { position:fixed!important; bottom:12px!important; left:94px; right:22px; width:auto; z-index:var(--action-layer-dock); box-sizing:border-box; }
/* Item costing retains its established desktop/tablet control height. */
body:has(#menus.is-visible) #invoiceReviewDock :is(#monthPeriodButton,#globalSearchToggle,#saveMenuItem) { height:40px; min-height:40px; box-sizing:border-box; }
@media(max-width:1000px) {
 body .shared-status-action-footer { flex-wrap:wrap; gap:8px; }
 body .shared-status-action-footer .invoice-review-dock-status { display:none; }
 body:has(#menus.is-visible) #invoiceReviewDock :is(#monthPeriodButton,#globalSearchToggle,#saveMenuItem) { height:44px; min-height:44px; }
}
@media(max-width:700px) {
 body #invoiceReviewDock .deployment-status #invoicePresenceChip { flex:0 0 auto; width:auto!important; }
 html { scroll-padding-bottom:calc(var(--invoice-review-dock-height,120px) + var(--invoice-review-nav-height,64px) + var(--action-safe-bottom) + 20px); }
 body .main { padding-bottom:calc(var(--invoice-review-dock-height,120px) + var(--invoice-review-nav-height,64px) + var(--action-safe-bottom) + 24px); }
 body #invoiceReviewDock.shared-status-action-footer { border-radius:12px; padding:8px; right:8px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px 10px; padding-bottom:calc(8px + var(--action-safe-bottom)); }
 body #invoiceReviewDock .deployment-status { display:flex!important; flex-direction:row; flex-wrap:nowrap; flex-basis:auto; grid-column:1; grid-row:1; justify-content:flex-start; }
 body #invoiceReviewDock #sharedSaveState { grid-column:2; grid-row:1; }
 body #invoiceReviewDock .reporting-period-control { grid-column:1; grid-row:2; min-width:0; width:100%; }
 body #invoiceReviewDock #globalSearchToggle { grid-column:2; grid-row:2; }
 body #invoiceReviewDock .invoice-review-dock-actions { grid-column:1/-1; margin:0; justify-content:flex-end; flex-wrap:wrap; }
 body #invoiceReviewDock .invoice-review-dock-actions button { padding:8px 10px; }
 body #invoiceReviewDock .reporting-period-control { flex:1; }
 #dockSearchOverlay { margin:0; width:100vw; height:100dvh; max-height:100dvh; max-width:100vw; border-radius:0; box-sizing:border-box; padding:18px; }
 body #invoiceReviewDock .invoice-review-dock-status,body #invoiceReviewDock #dockStatusHelp { grid-column:1/-1; }
 html body #invoice #invoiceQueueReviewPanel #invoiceReviewFooter { bottom:calc(72px + var(--action-safe-bottom))!important; left:10px; right:10px; display:flex!important; flex-direction:row; align-items:center; gap:8px; padding:8px!important; min-height:var(--action-touch-size); z-index:var(--action-layer-dock); }
 html body #invoice #invoiceQueueReviewPanel #invoiceReviewFooter .invoice-stage-footer-actions,
 html body #invoice #invoiceQueueReviewPanel #invoiceReviewFooter .invoice-flow-footer-actions { display:flex!important; flex-direction:row!important; flex-wrap:nowrap!important; gap:6px!important; }
 html body #invoice #invoiceQueueReviewPanel #invoiceReviewFooter #invoiceFlowCancel { display:none!important; }
 html body #invoice #invoiceQueueReviewPanel #invoiceReviewFooter button,
 body #invoiceReviewDock button,.invoice-details-frame button,.invoice-editor-footer button { min-height:var(--action-touch-size)!important; min-width:var(--action-touch-size); }
 html body #invoice #invoiceQueueReviewPanel #invoiceLineRows .invoice-compact-row .invoice-definition-disclosure:not([hidden]) { z-index:var(--action-layer-dialog); bottom:calc(var(--compact-panel-bottom,160px) + var(--action-safe-bottom))!important; }
 .invoice-details-frame { scroll-padding-bottom:calc(var(--action-touch-size) + var(--action-safe-bottom)); }
}

#siAskForm { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
#siAskForm label,#siAskForm small { grid-column:1/-1; }
#siAskForm input { min-width:0; }
.costing-format-help { display:block; font-size:11px; font-weight:400; }
