/* Field uses the phone surface on phones and touch tablets only.
   Fine-pointer desktop styling stays intact. */
@media (min-width:701px) {
  .dock #dockFieldBtn,.dock #dockBookingsBtn { display:none!important }
}

/* Field's item view lives outside #scroller, above both the dock and the
   existing panel. All surfaces inherit the app's light/dark semantic tokens. */
.field-item-overlay { position:fixed;inset:0;z-index:calc(var(--z-modal) + 1);display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-ui);overflow:hidden }
.field-kit-overlay { position:fixed;inset:0;z-index:var(--z-modal);display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-ui);overflow:hidden }
.field-kit-detail { z-index:calc(var(--z-modal) + 1) }
/* Keep the demo's fixed banner from covering the overlay Back buttons. */
body[data-demo] .field-kit-overlay,
body[data-demo]:has(.field-kit-overlay) .field-item-overlay { top:var(--demo-banner-h,44px) }
.field-kit-head { flex:none;display:flex;align-items:center;gap:12px;min-height:64px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;border-bottom:1px solid var(--line);box-sizing:border-box;background:var(--surface) }
.field-kit-head h1 { margin:0;font-family:var(--font-display);font-size:var(--fs-xl);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.field-kit-back { display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer }
.field-kit-back svg { width:22px;height:22px;transform:rotate(180deg) }
.field-kit-search { padding:16px;border-bottom:1px solid var(--line) }
.field-kit-search .field-search-box { min-height:44px;background:var(--surface) }
.field-kit-scroll { flex:1;min-height:0;overflow:auto;overscroll-behavior:contain }
.field-kit-rows,.field-kit-body { max-width:720px;margin:0 auto;padding:8px 16px 24px }
.field-kit-row { display:block;width:100%;min-height:64px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer }
.field-kit-name { display:block;font-weight:650;font-size:var(--fs-base) }
.field-kit-meta { display:block;margin-top:4px;font-size:var(--fs-sm);color:var(--muted) }
.field-kit-ok { color:var(--ok,#398153) }
.field-kit-away { color:var(--warn-ink) }
.field-kit-bad { color:var(--danger-ink) }
.field-kit-warning { margin:12px 0;padding:16px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--danger-ink) }
.field-kit-warning p { margin:8px 0 0;line-height:1.4 }
.field-kit-error { padding:16px;color:var(--danger-ink) }
.field-kit-gear .field-row { min-height:64px }
.field-item-scroll { flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain }
.field-item-hero { position:relative;height:210px;background:var(--surface-2);overflow:hidden }
.field-item-hero-counted { height:170px }
.field-item-hero > img,.field-item-placeholder { display:grid;place-items:center;width:100%;height:100%;object-fit:cover;color:var(--muted) }
.field-item-placeholder svg { width:var(--s-8);height:var(--s-8) }
.field-item-back { position:absolute;top:calc(var(--s-3) + env(safe-area-inset-top));left:var(--s-4);display:grid;place-items:center;width:var(--target-min);height:var(--target-min);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);cursor:pointer }
.field-item-back svg { width:var(--icon-lg);height:var(--icon-lg);transform:rotate(180deg) }
.field-item-body { padding:var(--s-5) var(--s-5) var(--s-7);max-width:720px;margin:auto }
.field-item-eyebrow { margin:0 0 var(--s-2);color:var(--muted);font-size:var(--fs-sm) }
.field-item-body h1 { margin:0 0 var(--s-5);font-family:var(--font-display);font-size:var(--fs-2xl);line-height:var(--lh-tight);letter-spacing:var(--ls-tight) }
.field-item-status { padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface) }
.field-item-status > div { display:flex;align-items:center;font-size:var(--fs-md) }
.field-item-status .field-dot { flex:none }
.field-item-status p { display:flex;align-items:center;gap:var(--s-2);margin:var(--s-2) 0 0;color:var(--muted);font-size:var(--fs-sm) }
.field-item-status p svg { width:var(--icon-sm);height:var(--icon-sm);flex:none }
.field-item-warning { display:flex;align-items:flex-start;gap:var(--s-2);margin-top:var(--s-4);padding:var(--s-3);border-radius:var(--r-sm);background:var(--surface-2);color:var(--danger-ink);font-size:var(--fs-sm) }
.field-item-warning svg { width:var(--icon-md);height:var(--icon-md);flex:none }
.field-item-warning small { display:block;margin-top:var(--s-1);font-size:var(--fs-sm);color:var(--ink) }
/* Faulty: shown before anything else that could send the item out. */
.field-item-faulty { display:flex;align-items:flex-start;gap:var(--s-3);margin-top:var(--s-4);padding:var(--s-3);border:1px solid color-mix(in oklab,var(--danger),transparent 60%);border-radius:var(--r-md);background:color-mix(in oklab,var(--danger),transparent 90%);color:var(--danger-ink);font-size:var(--fs-sm) }
.field-item-faulty strong { display:block;font-size:var(--fs-base) }
.field-item-faulty small { display:block;margin-top:var(--s-1);font-size:var(--fs-sm);color:var(--ink) }
.field-item-main.field-item-main-faulty { background:var(--surface-2);color:var(--danger-ink);border:1px solid color-mix(in oklab,var(--danger),transparent 50%) }
.field-item-history { padding:var(--s-4) 0;margin:0;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh-body) }
.field-item-textlink { display:flex;align-items:center;gap:var(--s-2);width:100%;min-height:var(--target-min);padding:var(--s-2) 0;border:0;background:transparent;color:var(--accent-ink);text-align:left;font:600 var(--fs-base) var(--font-ui);cursor:pointer }
.field-item-textlink svg { width:var(--icon-sm);height:var(--icon-sm) }
.field-item-footer { flex:none;padding:var(--s-3) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--shadow); }
.field-item-main { display:block;width:100%;height:var(--s-8);border:0;border-radius:var(--r-sm);background:var(--accent-strong);color:var(--on-accent);font:700 var(--fs-md) var(--font-ui);cursor:pointer }
.field-item-crew-note { margin:0;min-height:var(--s-8);display:grid;align-items:center;color:var(--muted);font-size:var(--fs-sm) }
.field-item-secondary { display:flex;gap:var(--s-2);margin-top:var(--s-2) }
.field-item-secondary button { display:flex;align-items:center;justify-content:center;gap:var(--s-2);flex:1;min-width:0;height:var(--ctl-lg);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:600 var(--fs-control) var(--font-ui);cursor:pointer }
.field-item-secondary svg { width:var(--icon-md);height:var(--icon-md);flex:none }
.field-counted { padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface) }
.field-counted-total { display:flex;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-3) }
.field-counted-total strong { font-size:40px;line-height:1;font-weight:700 }
.field-counted-total.ok strong { color:var(--ok) }
.field-counted-total.away strong { color:var(--warn) }
.field-counted-total span { color:var(--muted) }
.field-counted-line { display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--line);font-size:var(--fs-sm) }
.field-counted-line > span { display:flex;align-items:center;min-width:0;overflow-wrap:anywhere }
.field-counted-line .field-dot { display:inline-block;flex:none;width:var(--s-2);height:var(--s-2);margin-right:var(--s-2);border-radius:var(--r-pill);background:var(--ok) }
.field-counted-line .field-dot.away { background:var(--warn) }
.field-counted-line output { font-family:var(--font-mono,monospace);font-weight:700 }
.field-counted-checkout { margin-top:var(--s-5) }
.field-counted-step { display:flex;align-items:center;justify-content:space-between;gap:var(--s-2) }
.field-counted-step > div { display:flex;align-items:center;gap:var(--s-3) }
.field-counted-step button { width:56px;height:56px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:24px;cursor:pointer }
.field-counted-step output { min-width:2ch;text-align:center;font:700 var(--fs-lg) var(--font-mono,monospace) }
.field-counted-checkout label { display:block;margin-top:var(--s-4);font-weight:600 }
.field-counted-due { display:block;box-sizing:border-box;width:100%;min-height:var(--target-min);margin-top:var(--s-2);padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit }
.field-counted-return { display:block;width:100%;min-height:var(--target-min);margin-top:var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:700 var(--fs-base) var(--font-ui);cursor:pointer }
.field-item-overlay button:disabled,.field-sheet button:disabled { opacity:.55;cursor:wait }
.field-sheet-layer { position:fixed;inset:0;z-index:calc(var(--z-modal) + 2);display:flex;align-items:flex-end;font-family:var(--font-ui) }
.field-sheet-scrim { position:absolute;inset:0;background:var(--scrim) }
.field-sheet { position:relative;width:100%;max-height:calc(100dvh - var(--s-8));overflow-y:auto;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--surface);color:var(--ink);animation:field-sheet-in var(--t-slow) var(--ease-out) both }
@keyframes field-sheet-in { from { transform:translateY(100%);opacity:.7 } to { transform:translateY(0);opacity:1 } }
.field-sheet-grab { width:var(--s-7);height:var(--s-1);margin:var(--s-2) auto var(--s-3);border-radius:var(--r-pill);background:var(--line) }
.field-sheet-inner { padding:0 var(--s-5) calc(var(--s-5) + env(safe-area-inset-bottom));max-width:720px;margin:auto }
.field-sheet-head { display:flex;align-items:center;justify-content:space-between;gap:var(--s-2) }
.field-sheet-head h2 { font-family:var(--font-display);font-size:var(--fs-xl);margin:0 }
.field-sheet-close { display:grid;place-items:center;min-width:var(--target-min);height:var(--target-min);border:0;background:transparent;color:var(--ink);cursor:pointer }
.field-sheet-close svg { width:var(--icon-lg);height:var(--icon-lg) }
.field-sheet-item { display:flex;align-items:center;gap:var(--s-3);margin:var(--s-4) 0 var(--s-5);min-width:0 }
.field-sheet-item strong,.field-sheet-item small { display:block;overflow-wrap:anywhere }
.field-sheet-item small { margin-top:var(--s-1);color:var(--muted);font-size:var(--fs-sm) }
.field-sheet-thumb { flex:none;width:var(--s-8);height:var(--s-8);overflow:hidden;border-radius:var(--r-sm);background:var(--surface-2) }
.field-sheet-thumb img,.field-sheet-thumb .field-item-placeholder { width:100%;height:100%;object-fit:cover }
.field-problem-chips { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2) }
.field-problem-chips button { min-height:var(--target-min);padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font:600 var(--fs-sm) var(--font-ui);cursor:pointer }
.field-problem-chips button[aria-pressed="true"] { border-color:var(--accent-strong);color:var(--accent-ink);background:var(--surface) }
.field-return-chips { display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-5) }
.field-return-chips button,.field-return-quantity button { min-height:var(--target-min);padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font:600 var(--fs-sm) var(--font-ui);cursor:pointer }
.field-return-chips button[aria-pressed="true"] { border-color:var(--accent-strong);color:var(--accent-ink);background:var(--surface) }
.field-return-quantity { display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin:0 0 var(--s-5) }
.field-return-quantity > div { display:flex;align-items:center;gap:var(--s-3) }
.field-return-quantity output { min-width:2ch;text-align:center;font-weight:700 }
.field-return-home { padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2) }
.field-return-home small { display:block;margin-top:var(--s-1);color:var(--muted) }
.field-return-elsewhere { min-height:var(--target-min);padding:0;border:0;background:none;color:var(--accent-ink);font:600 var(--fs-sm) var(--font-ui);cursor:pointer }
.field-scan-return { width:100%;min-height:var(--s-8);margin-bottom:var(--s-3);border:0;border-radius:var(--r-sm);background:var(--accent-strong);color:var(--on-accent);font:700 var(--fs-base) var(--font-ui);cursor:pointer }
/* Scanner enhancements also apply on desktop, without changing the existing scanner layout. */
#qrTorch { display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid currentColor;border-radius:var(--r-pill);background:transparent;color:#fff;cursor:pointer }
#qrTorch svg { width:24px;height:24px }
#qrTorch[hidden],#qrBatchModes[hidden],#qrBatchFooter[hidden],#qrPrintSession[hidden] { display:none!important }
#qrTorch[aria-pressed="true"] { background:var(--accent-strong);color:var(--on-accent) }
#qrBatchFlash { position:absolute;top:var(--s-3);left:var(--s-3);right:var(--s-3);z-index:2;pointer-events:none;opacity:0;padding:var(--s-2);border-radius:var(--r-sm);background:var(--ok);color:#fff;text-align:center;font-weight:700;transition:opacity .2s }
#qrBatchFlash.visible { opacity:1 }
.qr-scan-toggle { position:absolute;z-index:2;bottom:var(--s-3);left:50%;transform:translateX(-50%);display:flex;padding:3px;border-radius:var(--r-sm);background:rgba(0,0,0,.8);white-space:nowrap }
.qr-scan-toggle button { min-height:44px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:#fff;font-weight:700;cursor:pointer }
.qr-scan-toggle button[aria-pressed="true"] { background:#fff;color:#111 }
.qr-batch-modes { display:flex;gap:var(--s-2);margin-bottom:var(--s-3) }
.qr-batch-modes button,.qr-batch-conditions button { min-height:44px;padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-weight:600;cursor:pointer }
.qr-batch-modes button[aria-pressed="true"],.qr-batch-conditions button[aria-pressed="true"] { border-color:var(--accent-strong);color:var(--accent-ink);background:var(--surface) }
.qr-batch-message { margin:0;padding:var(--s-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-size:var(--fs-sm) }
.qr-batch-message button { display:block;min-height:44px;padding:0;border:0;background:none;color:var(--accent-ink);font-weight:700;cursor:pointer }
.qr-batch-row { display:flex;align-items:center;gap:var(--s-2);height:56px;border-bottom:1px solid var(--line) }
.qr-batch-thumb { display:grid;place-items:center;flex:none;width:40px;height:40px;overflow:hidden;border-radius:var(--r-sm);background:var(--surface-2) }
.qr-batch-thumb img,.qr-batch-thumb .item-thumb,.qr-batch-thumb .ph-cov { width:100%;height:100%;object-fit:cover }
.qr-batch-item { flex:1;min-width:0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer }
.qr-batch-item strong,.qr-batch-item small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.qr-batch-item small { color:var(--muted) }
.qr-batch-remove { flex:none;width:44px;height:44px;border:0;background:none;color:var(--ink);font-size:24px;cursor:pointer }
.qr-batch-conditions { display:flex;flex-wrap:wrap;gap:var(--s-2);padding:var(--s-2) 0 }
.qr-batch-footer { padding-top:var(--s-3) }
.qr-batch-footer small { display:block;margin-bottom:var(--s-2);color:var(--muted) }
.qr-batch-footer small[hidden] { display:none }
.qr-batch-footer button { width:100%;min-height:44px;border:0;border-radius:var(--r-sm);background:var(--accent-strong);color:var(--on-accent);font-weight:700;cursor:pointer }
.qr-batch-footer button:disabled { opacity:.55 }
.field-sheet textarea { display:block;box-sizing:border-box;width:100%;min-height:var(--s-10);margin:var(--s-4) 0;padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font:var(--fs-base) var(--font-ui);resize:vertical }
.field-sheet-submit,.field-sheet-found,.field-sheet-danger { width:100%;min-height:var(--s-8);border-radius:var(--r-sm);font:700 var(--fs-base) var(--font-ui);cursor:pointer }
.field-sheet-submit { border:0;background:var(--accent-strong);color:var(--on-accent) }
.field-sheet-found,.field-sheet-danger { border:1px solid var(--line);background:var(--surface);color:var(--ink) }
.field-sheet-danger { margin-top:var(--s-2);color:var(--danger-ink) }
.field-sheet-error { color:var(--danger-ink);font-size:var(--fs-sm);line-height:var(--lh-body) }
.field-sheet-error:empty { display:none }
.field-label-layer { z-index:calc(var(--z-modal) + 3) }
.field-label-intro { margin:var(--s-4) 0;line-height:var(--lh-body);overflow-wrap:anywhere }
.field-label-create input { box-sizing:border-box;width:100%;min-height:var(--s-8);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font:var(--fs-base) var(--font-ui) }
.field-label-choose h3 { margin:var(--s-5) 0 var(--s-2);font-size:var(--fs-base) }
.field-label-choose [hidden],.field-label-create[hidden] { display:none }
.field-label-results { max-height:30dvh;overflow-y:auto }
.field-label-results button { display:block;width:100%;min-height:var(--target-min);padding:var(--s-2) 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);text-align:left;font:600 var(--fs-base) var(--font-ui);cursor:pointer }
.field-label-new { width:100%;min-height:var(--target-min);margin-top:var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:600 var(--fs-base) var(--font-ui);cursor:pointer }
.field-label-create .field-sheet-submit { margin-top:var(--s-3) }
.field-label-fallback { display:block;min-height:var(--target-min);margin:var(--s-2) auto 0;border:0;background:none;color:var(--accent-ink);font:600 var(--fs-sm) var(--font-ui);cursor:pointer }
.field-sheet-content h3 { margin:0 0 var(--s-3);font-size:var(--fs-base) }
.field-event-list { margin:0 0 var(--s-4);padding:0;list-style:none }
.field-event-list li { padding:var(--s-2) 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm) }
.field-event-list small { display:block;margin-top:var(--s-1);color:var(--muted);font-size:var(--fs-xs) }
.field-scan-hint { padding:var(--s-3);margin:0 0 var(--s-4);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-sm) }
@media (min-width:701px) { .field-item-overlay { left:auto;width:min(100%,720px);box-shadow:0 0 0 100vmax var(--scrim) } .field-sheet { max-width:720px;margin:auto } }
@media (prefers-reduced-motion:reduce) { .field-sheet { animation:none } }
/* Field content styles apply on every screen (Quick also opens from the desktop
   sidebar). The phone-field-view chrome rules only match on touch devices,
   because that class is only set there. */
@media all {
  body.phone-field-view #spacebar,
  body.phone-field-view header.topbar,
  body.phone-field-view #mVFBtn { display:none!important }
  body.phone-field-view #stage { margin-top:env(safe-area-inset-top,0px); }
  body.phone-field-view #scroller { padding-top:0;padding-inline:0; }
  /* The demo's fixed banner is separate from the app chrome. */
  body[data-demo].phone-field-view #stage { margin-top:calc(var(--demo-banner-h,44px) + env(safe-area-inset-top,0px)); }
  #dockHomeBtn,#dockScanBtn,#dockLocBtn,#dockActivityBtn { display:none!important }
  body[data-crew="1"] #dockCaptureBtn { display:none!important }
  .dock .m-dock.on { color:var(--accent-ink);font-weight:600 }
  section.field-view { box-sizing:border-box;width:100%;max-width:100%;padding:8px 16px calc(var(--dock-clear) + var(--s-5));font-family:var(--font-ui);color:var(--ink);overflow-wrap:anywhere }
  .field-head { margin:0 0 16px;font-size:var(--fs-xl);line-height:1.15;font-weight:700 }
  .field-clear { flex:none;min-width:var(--target-min);min-height:var(--target-min);border:0;background:none;color:var(--muted);font:inherit;font-size:var(--fs-xl);cursor:pointer }
  .field-clear[hidden] { display:none }
  .field-content { margin-top:var(--s-5) }
  .field-scan { display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--s-2);width:100%;height:calc(var(--s-10) + var(--s-3));min-height:var(--s-8);border:0;border-radius:var(--r-md);background:var(--accent-strong);color:var(--on-accent);font:700 var(--fs-md) var(--font-ui);cursor:pointer }
  .field-scan svg { width:var(--icon-xl);height:var(--icon-xl) }
  .field-shortcuts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2);margin-top:var(--s-4) }
  .field-shortcut { display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--s-3);min-width:0;min-height:var(--s-10);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);text-align:left;font:600 var(--fs-sm) var(--font-ui);cursor:pointer }
  .field-shortcut svg { width:var(--icon-lg);height:var(--icon-lg);color:var(--accent-ink) }
  .field-today { margin-top:var(--s-7) }
  .field-section-head { display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-2) }
  .field-section-head h2 { margin:0;font-size:var(--fs-lg) }
  .field-link { min-height:var(--target-min);border:0;background:none;color:var(--accent-ink);font:600 var(--fs-control) var(--font-ui);cursor:pointer }
  .field-muted { color:var(--muted);font-size:var(--fs-sm);line-height:1.45 }
  .field-booking { display:block;width:100%;min-height:var(--s-9);padding:var(--s-3) 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);text-align:left;font:600 var(--fs-base) var(--font-ui);cursor:pointer }
  .field-booking small { display:block;margin-top:var(--s-1);color:var(--muted);font:400 var(--fs-sm) var(--font-ui) }
  .field-booking.is-overdue small { color:var(--danger-ink) }
  .field-list-head { display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-4) }
  .field-list-head h2 { margin:0;font-size:var(--fs-lg) }
  .field-back { display:grid;place-items:center;flex:none;width:var(--target-min);height:var(--target-min);border:0;background:none;color:var(--ink);cursor:pointer }
  .field-back svg { width:var(--icon-lg);height:var(--icon-lg);transform:rotate(180deg) }
  .field-row { display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:var(--s-9);padding:var(--s-2) 0;box-sizing:border-box;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer }
  .field-thumb { display:grid;place-items:center;flex:none;width:var(--s-8);height:var(--s-8);overflow:hidden;border-radius:var(--r-sm);background:var(--surface-2);color:var(--muted) }
  .field-thumb img { width:100%;height:100%;object-fit:cover }
  .field-thumb .item-thumb { display:grid;place-items:center;width:100%;height:100%;border:0;border-radius:0 }
  .field-thumb .ph-cov { width:100%;height:100%;object-fit:cover }
  .field-thumb svg { width:var(--icon-lg);height:var(--icon-lg) }
  .field-row-copy { display:block;min-width:0 }
  .field-row-name { display:block;font-size:var(--fs-base);font-weight:600;line-height:1.3 }
  .field-row-state,.field-row-place { display:block;color:var(--muted);font-size:var(--fs-sm);line-height:1.35 }
  .field-dot { display:inline-block;width:var(--s-2);height:var(--s-2);margin-right:var(--s-2);border-radius:var(--r-pill);background:var(--ok) }
  .field-dot.away { background:var(--warn) }
  .field-dot.bad { background:var(--danger) }
}

/* Touch tablets share Field's controls, but keep the phone-width content
   centred. Restore the Field tabs above the existing desktop dock cutoff. */
@media (min-width:701px) and (max-width:1366px) and (pointer:coarse) {
  :root { --dock-clear:calc(var(--dock-h) + var(--safe-b)) }
  #dock { display:flex!important }
  .dock #dockFieldBtn,.dock #dockShelfBtn,.dock #dockBookingsBtn,.dock #dockCaptureBtn { display:flex!important }
  section.field-view { max-width:640px;margin-inline:auto }
}

/* Booking and crew surfaces continue the Field language: warm surfaces, bold
   headings and useful, generously sized controls rather than a second app. */
.field-job-overlay { z-index:calc(var(--z-modal) + 1) }
.field-job-scroll { flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain }
.field-job-inner { width:min(100%,720px);box-sizing:border-box;margin:auto;padding:calc(var(--s-4) + env(safe-area-inset-top)) var(--s-5) var(--s-7) }
.field-job-back { display:grid;place-items:center;width:var(--target-min);height:var(--target-min);margin:0 0 var(--s-7);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);cursor:pointer }
.field-job-back svg { width:var(--icon-lg);height:var(--icon-lg);transform:rotate(180deg) }
.field-job-kicker { margin:0 0 var(--s-2);font:700 var(--fs-xs) var(--font-ui);letter-spacing:.06em;color:var(--accent-ink);text-transform:uppercase }
.field-job-inner h1,.field-crew > header h1 { margin:0;font-family:var(--font-display);font-size:clamp(32px,7vw,52px);line-height:1.08;letter-spacing:var(--ls-tight);overflow-wrap:anywhere }
.field-job-dates { display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3);margin:var(--s-3) 0 var(--s-7);color:var(--muted);font-size:var(--fs-sm) }
.field-job-dates span { padding:var(--s-1) var(--s-2);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink);text-transform:capitalize }
.field-job-tabs { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:var(--r-sm);background:var(--surface-2) }
.field-job-tabs button { min-height:var(--target-min);border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);font:700 var(--fs-sm) var(--font-ui);cursor:pointer }
.field-job-tabs button[aria-selected="true"] { background:var(--surface);color:var(--ink);box-shadow:var(--shadow) }
.field-job-progress { display:flex;justify-content:space-between;margin:var(--s-6) 0 var(--s-2);font-size:var(--fs-sm) }
.field-job-progress span { color:var(--muted);font-family:var(--font-mono,monospace) }
.field-job-track { height:7px;overflow:hidden;border-radius:var(--r-pill);background:var(--surface-2) }
.field-job-track span { display:block;height:100%;border-radius:inherit;background:var(--accent-strong);transition:width .25s ease }
.field-job-list { margin-top:var(--s-5);border-top:1px solid var(--line) }
.field-job-line { display:flex;align-items:center;gap:var(--s-4);width:100%;min-height:64px;padding:var(--s-2) 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer }
.field-job-line > span:last-child { min-width:0 }
.field-job-line strong,.field-job-line small { display:block }
.field-job-line small { margin-top:3px;color:var(--muted);font:var(--fs-xs) var(--font-ui);letter-spacing:.04em;text-transform:uppercase ;font-weight:var(--fw-semi)}
.field-job-check { box-sizing:border-box;display:grid;place-items:center;flex:none;width:30px;height:30px;border:2px solid var(--line);border-radius:var(--r-sm);font-size:20px;font-weight:700 }
.field-job-line[aria-pressed="true"] .field-job-check { border-color:var(--accent-strong);background:var(--accent-strong);color:var(--on-accent) }
.field-job-error { color:var(--danger-ink);font-size:var(--fs-sm) }
.field-job-error:empty { display:none }
.field-job-footer { width:100%;box-sizing:border-box;padding:var(--s-3) max(var(--s-4),calc((100% - 720px)/2)) calc(var(--s-3) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow) }
.field-job-footer > button + button { margin-top:var(--s-2) }
.field-job-scan { margin-top:var(--s-2) }
.field-job-footer .field-job-scan:first-child { margin-top:0 }
.field-job-secondary,.field-job-retry,.field-crew-retry { width:100%;min-height:var(--target-min);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--accent-ink);font:700 var(--fs-sm) var(--font-ui);cursor:pointer }
.field-job-footer p { margin:var(--s-3) 0 0;color:var(--muted);font-size:var(--fs-xs);text-align:center }
.field-job-skeleton { height:70px;margin:var(--s-5) 0;border-radius:var(--r-sm);background:var(--surface-2);animation:field-pulse 1.4s ease-in-out infinite alternate }
.field-job-skeleton.short { width:66%;height:30px }
@keyframes field-pulse { from { opacity:.45 } to { opacity:.9 } }
.field-extra-results { margin-top:var(--s-5) }
.field-extra-row { display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:70px;padding:var(--s-2) 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer }
.field-extra-copy { flex:1;min-width:0 }
.field-extra-copy strong,.field-extra-copy small { display:block;overflow-wrap:anywhere }
.field-extra-copy small { margin-top:2px;color:var(--muted);font-size:var(--fs-xs) }
.field-extra-add { display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:24px }
.field-extra-row[aria-pressed="true"] .field-extra-add { border-color:var(--accent-strong);background:var(--accent-strong);color:var(--on-accent) }
.field-job-footer button:disabled,.field-job-overlay button:disabled { opacity:.55;cursor:wait }
.field-crew > header { margin-bottom:var(--s-6) }
.field-crew-job { padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface) }
.field-crew-job h2 { margin:var(--s-3) 0 var(--s-1);font-family:var(--font-display);font-size:var(--fs-xl) }
.field-crew-job-content > p { color:var(--muted) }
.field-crew-job .field-item-main { margin-top:var(--s-4) }
.field-crew-book-link { display:inline-block;min-height:var(--target-min);color:var(--accent-ink);font-weight:700 }
.field-crew-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);margin:var(--s-4) 0 }
.field-crew-actions button { display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:110px;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink);font:700 var(--fs-base) var(--font-ui);cursor:pointer }
.field-crew-actions button:first-child { background:var(--accent-strong);color:var(--on-accent) }
.field-crew-actions svg { width:25px;height:25px }
.field-crew-with { margin-top:var(--s-7) }
.field-crew-with .field-row { width:100% }
.field-crew-settings { display:block;min-height:var(--target-min);margin:var(--s-7) auto 0;border:0;background:transparent;color:var(--muted);font:600 var(--fs-sm) var(--font-ui);text-decoration:underline;cursor:pointer }
@media (max-width:700px), (min-width:701px) and (max-width:1366px) and (pointer:coarse) {
  body[data-crew="1"] #dockShelfBtn,body[data-crew="1"] #dockCaptureBtn,body[data-crew="1"] #dockMoreBtn { display:none!important }
  body[data-crew="1"] #dockBookingsBtn { display:flex!important }
}
@media (prefers-reduced-motion:reduce) { .field-job-skeleton { animation:none } .field-job-track span { transition:none } }

/* Search geometry is shared across phone, touch tablet and overlay surfaces.
   The input surface/focus reset lives in app.css's wrapped-search contract. */
.field-search,.field-search-box { display:flex;align-items:center;gap:var(--s-2);min-height:var(--s-8);box-sizing:border-box;padding:0 var(--s-3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm) }
.field-search > svg { width:var(--icon-md);height:var(--icon-md);flex:none;color:var(--muted) }
.field-search > input,.field-search-box > input { box-sizing:border-box;flex:1;min-width:0;width:100%;min-height:44px;padding:var(--s-2) 0;color:var(--ink);font:var(--fs-base) var(--font-ui) }
.field-search > input::placeholder,.field-search-box > input::placeholder { color:var(--muted) }

/* Field has its own chrome, regardless of viewport or pointing device. */
body.field-view .topbar,
body.field-view #spacebar,
body.field-view .subbar,
body.field-view .ph-toolbar,
body.field-view .home-views-row,
body.field-view .shelf-card-size-row { display:none!important }
.field-kits-empty { margin:var(--s-6) 0;padding:var(--s-5) var(--s-4);border:1px dashed var(--line-2);border-radius:var(--r-md);text-align:center }
.field-kits-empty strong { display:block;font:var(--fw-bold) var(--fs-md) var(--font-display);color:var(--ink) }
.field-kits-empty p { margin:var(--s-2) 0 var(--s-4);color:var(--ink-2);font-size:var(--fs-sm);line-height:1.5 }

/* No-photo initials (matches .gear-result-ini) */
.field-ini { display:grid;place-items:center;width:100%;height:100%;font:800 var(--fs-md,16px)/1 var(--font-display);color:var(--ink-2,var(--muted));letter-spacing:.02em }
.field-item-placeholder.field-ini { font-size:clamp(40px,14vw,72px);background:var(--surface-2) }

.field-kit-head .field-kit-new { margin-left:auto }
.field-kit-new { flex:none;min-height:var(--target-min);padding:0 var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:600 var(--fs-control)/1 var(--font-ui);white-space:nowrap }
.field-kit-empty { color:var(--muted) }
