/* BOT Signature. Presentation-only layer shared by all performer roles.
   Keep this last: older rollout themes remain available to other surfaces.
   IDs intentionally anchor shell overrides above legacy next/mobile rules. */
body.performer-signature.performer-surface,
html.iphone-installed-auth body.performer-signature {
  --ops-bg: #ffffff;
  --ops-bg-2: #fafbfb;
  --ops-surface: #ffffff;
  --ops-surface-2: #f6f8f9;
  --ops-surface-3: #edf1f3;
  --ops-surface-soft: #fafbfb;
  --ops-panel: #ffffff;
  --ops-panel-strong: #ffffff;
  --ops-text: #17252f;
  --ops-muted: #677780;
  --ops-subtle: #788992;
  --ops-line: #e1e7ea;
  --ops-line-soft: #edf0f2;
  --ops-yellow: #ffd400;
  --ops-yellow-ink: #17252f;
  --ops-cyan: #2c7c98;
  --ops-green: #277b57;
  --ops-red: #c84941;
  --ops-amber: #a36b15;
  --ops-blue: #467bb5;
  --ops-radius: 18px;
  --ops-radius-lg: 24px;
  --ops-font: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", sans-serif;
  --ops-display: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", sans-serif;
  --ops-shadow: 0 4px 18px rgba(23, 37, 47, .05);
  --sig-glass: #ffffff;
  --sig-map-shadow: 0 4px 14px rgba(23, 37, 47, .07);
  --sig-graphite: #17252f;
  --sig-on-graphite: #f5f8fa;
  --sig-yellow-soft: #fff6c7;
  --sig-yellow-line: #eadc94;
  --sig-yellow-muted: #766529;
  --sig-shift-surface: #fff8d9;
  background: var(--ops-bg);
  color: var(--ops-text);
  font-family: var(--ops-font);
  font-feature-settings: "ss01";
  -webkit-text-size-adjust: 100%;
}
html[data-theme="dark"] body.performer-signature.performer-surface,
html.iphone-installed-auth[data-theme="dark"] body.performer-signature {
  --ops-bg: #141c22;
  --ops-bg-2: #18222a;
  --ops-surface: #212c34;
  --ops-surface-2: #2a3741;
  --ops-surface-3: #35444e;
  --ops-surface-soft: #1e2a32;
  --ops-panel: #212c34;
  --ops-panel-strong: #212c34;
  --ops-text: #f1f6f9;
  --ops-muted: #a9bbc5;
  --ops-subtle: #859ca9;
  --ops-line: #3c505d;
  --ops-line-soft: rgba(188, 211, 225, .13);
  --ops-cyan: #88c7df;
  --ops-green: #85cca1;
  --ops-red: #f0897c;
  --ops-amber: #e8bc6f;
  --ops-blue: #91b6ee;
  --ops-shadow: 0 12px 36px rgba(0, 0, 0, .16);
  --sig-glass: #212c34;
  --sig-map-shadow: 0 6px 24px rgba(0, 0, 0, .22), 0 1px 3px rgba(0, 0, 0, .12);
  --sig-graphite: #303f4b;
  --sig-yellow-soft: #4c4429;
  --sig-yellow-line: #736338;
  --sig-yellow-muted: #e8cf87;
  --sig-shift-surface: #332f24;
}
body.performer-signature #performer-app {
  min-height: 0;
  grid-template-rows: calc(66px + env(safe-area-inset-top)) minmax(0, 1fr) calc(84px + env(safe-area-inset-bottom));
  background: var(--ops-bg);
}
body.performer-signature #performer-app .performer-topbar {
  min-height: 0;
  margin: 0;
  padding: env(safe-area-inset-top) max(24px, env(safe-area-inset-right)) 0 max(24px, env(safe-area-inset-left));
  border: 0;
  border-bottom: 1px solid var(--ops-line-soft);
  border-radius: 0;
  background: var(--sig-glass);
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.performer-signature #performer-app .worker-identity { gap: 11px; min-height: 48px; padding: 0; }
body.performer-signature #performer-app .worker-avatar {
  width: 43px; height: 43px; border: 1px solid var(--ops-line-soft); border-radius: 15px;
  background: var(--sig-yellow-soft); color: var(--ops-text); font-size: 13px; font-weight: 760; letter-spacing: -.035em;
}
body.performer-signature #performer-app .worker-copy { gap: 3px; }
body.performer-signature #performer-app .worker-copy b { font-size: 15px; font-weight: 730; letter-spacing: -.025em; }
body.performer-signature #performer-app .worker-copy small { font-size: 11px; color: var(--ops-muted); }
body.performer-signature #performer-app .worker-live-cluster { gap: 8px; }
body.performer-signature #performer-app .worker-live-cluster .ops-status {
  min-height: 34px; padding: 0 11px; border: 1px solid var(--ops-line-soft); border-radius: 999px;
  background: var(--ops-surface-2); font-size: 10px; font-weight: 680;
}
body.performer-signature #performer-app .worker-live-cluster .ops-status.green {
  color: var(--ops-green); background: color-mix(in srgb, var(--ops-green) 9%, var(--ops-surface));
}
body.performer-signature #performer-app .worker-live-cluster .ops-status.amber {
  color: var(--ops-amber); background: color-mix(in srgb, var(--ops-amber) 9%, var(--ops-surface));
}
body.performer-signature #performer-app .performer-nav {
  position: relative; inset: auto; isolation: isolate; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: none;
  width: auto; min-height: 0; margin: 0; gap: 3px;
  padding: 14px max(22px, env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
  border: 0; border-top: 1px solid var(--ops-line-soft); border-radius: 0; background: var(--ops-surface);
  box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none;
}
/* The full-width opaque nav owns its safe area; map labels cannot show through. */
body.performer-signature #performer-app .performer-nav::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  inset: 7px max(15px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(15px, env(safe-area-inset-left));
  border: 1px solid var(--ops-line); border-radius: 21px; background: var(--ops-surface);
  box-shadow: 0 3px 15px rgba(23, 37, 47, .035);
}
body.performer-signature.object-shift-workspace #performer-app .performer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.performer-signature #performer-app .performer-nav button {
  min-height: 54px; min-width: 0; margin: 0; padding: 6px 5px; gap: 7px; border-radius: 14px;
  color: var(--ops-muted); font-size: 12px; font-weight: 550; background: transparent;
  transition: background-color .12s ease, color .12s ease;
}
body.performer-signature #performer-app .performer-nav button.active { color: var(--ops-text); background: var(--sig-yellow-soft); font-weight: 750; }
body.performer-signature #performer-app .performer-nav button.active::after { content: none; }
body.performer-signature #performer-app .performer-nav .nav-icon {
  width: 26px; height: 24px; display: inline-grid; place-items: center; border-radius: 0; flex: 0 0 auto;
}
body.performer-signature #performer-app .performer-nav button.active .nav-icon { color: var(--ops-text); background: transparent; }
body.performer-signature #performer-app .performer-nav .ops-icon { width: 22px; height: 22px; stroke-width: 1.8; }
body.performer-signature #performer-app .performer-nav button:active { transform: none; opacity: .7; }

/* Shared controls: all role-specific operations remain present. */
body.performer-signature #performer-app .ops-panel {
  border-color: var(--ops-line); border-radius: 18px; background: var(--ops-surface); box-shadow: none;
}
body.performer-signature :is(#performer-app, #task-action-modal, #performer-bike-detail-screen) .ops-btn {
  min-height: 46px; gap: 8px; padding: 10px 15px; border: 1px solid var(--ops-line); border-radius: 14px;
  background: var(--ops-surface-soft); color: var(--ops-text); font-size: 13px; font-weight: 680; line-height: 1.3;
  transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}
body.performer-signature :is(#performer-app, #task-action-modal, #performer-bike-detail-screen) .ops-btn.primary {
  border-color: var(--ops-yellow); background: var(--ops-yellow); color: var(--ops-yellow-ink); box-shadow: none;
}
body.performer-signature :is(#performer-app, #task-action-modal, #performer-bike-detail-screen) .ops-btn.danger {
  border-color: color-mix(in srgb, var(--ops-red) 28%, var(--ops-line));
  color: var(--ops-red); background: color-mix(in srgb, var(--ops-red) 7%, var(--ops-surface));
}
body.performer-signature :is(#performer-app, #task-action-modal, #performer-bike-detail-screen) .ops-icon-btn {
  width: 44px; min-height: 44px; flex: 0 0 auto; border: 1px solid var(--ops-line-soft); border-radius: 14px;
  background: var(--ops-surface); color: var(--ops-text);
}
body.performer-signature :is(#performer-app, #task-action-modal, #performer-bike-detail-screen) :is(.ops-input, .ops-select, .ops-textarea) {
  min-height: 48px; border-radius: 13px; border-color: var(--ops-line); background: var(--ops-surface-2); color: var(--ops-text); font-size: 16px;
}
body.performer-signature :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--ops-blue); outline-offset: 3px;
}
body.performer-signature #performer-app .ops-kicker { color: var(--ops-muted); font-size: 10px; font-weight: 680; letter-spacing: .095em; }
body.performer-signature #performer-app .ops-status { font-weight: 650; }

/* Map surfaces. Field data and authorization still come from the shared JS. */
body.performer-signature #performer-app :is(.map-status-strip, .b2b-zone-console, .b2b-zone-compact, .bike-energizer-glance, .next-task-banner, .map-layer-panel, .bike-track-summary, .map-fleet-summary),
body.performer-signature #performer-map .maplibregl-ctrl-group {
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
body.performer-signature #performer-app :is(.bike-detail-loading, .bike-rental-loading) { animation: none; }
body.performer-signature #performer-app .work-layout { gap: 12px; padding: 12px; }
body.performer-signature #performer-app .work-map-shell {
  border-color: var(--ops-line-soft); border-radius: 22px; background: var(--ops-surface-2); box-shadow: none;
}
body.performer-signature #performer-map { background: var(--ops-surface-2); }
body.performer-signature #performer-app .task-rail { border-radius: 22px; }
body.performer-signature #performer-app .rail-head { padding: 20px 18px 14px; }
body.performer-signature #performer-app .rail-head h2 { font-size: 24px; letter-spacing: -.04em; }
body.performer-signature #performer-app :is(.rail-tabs, .schedule-tabs) { gap: 4px; padding: 4px; border-radius: 13px; background: var(--ops-surface-2); }
body.performer-signature #performer-app :is(.rail-tabs, .schedule-tabs) button {
  min-height: 44px; border-radius: 10px; color: var(--ops-muted); background: transparent; font-size: 12px; font-weight: 650;
}
body.performer-signature #performer-app :is(.rail-tabs, .schedule-tabs) button.active {
  background: var(--ops-surface); color: var(--ops-text); box-shadow: 0 1px 5px rgba(0, 0, 0, .06);
}
body.performer-signature #performer-app .task-row { min-height: 74px; padding: 12px; border-radius: 15px; border-color: var(--ops-line-soft); }
body.performer-signature #performer-app .task-row.selected { border-color: var(--ops-yellow); background: color-mix(in srgb, var(--ops-yellow) 10%, var(--ops-surface)); }
body.performer-signature #route-map-toolbar { gap: 9px; }
body.performer-signature #route-map-toolbar .route-map-search {
  min-height: 48px; gap: 10px; padding: 0 14px; border: 1px solid var(--ops-line-soft); border-radius: 15px;
  background: var(--sig-glass); color: var(--ops-muted); box-shadow: var(--sig-map-shadow); font-size: 13px;
}
body.performer-signature #route-map-toolbar .route-map-search .ops-icon { width: 20px; height: 20px; color: var(--ops-text); }
body.performer-signature #route-map-toolbar .route-map-chips {
  gap: 4px; padding: 4px; border: 1px solid var(--ops-line-soft); border-radius: 14px;
  background: var(--sig-glass); box-shadow: var(--sig-map-shadow);
}
body.performer-signature #route-map-toolbar .route-map-chips button {
  min-height: 44px; padding: 0 11px; border: 0; border-radius: 10px; background: transparent;
  color: var(--ops-muted); box-shadow: none; font-size: 11px; font-weight: 660;
}
body.performer-signature #route-map-toolbar .route-map-chips button.active { background: var(--sig-yellow-soft); color: var(--ops-text); box-shadow: none; }
body.performer-signature #performer-app .map-controls { gap: 8px; }
body.performer-signature #performer-app .map-controls .ops-icon-btn {
  width: 46px; min-height: 46px; border-radius: 15px; background: var(--sig-glass); box-shadow: var(--sig-map-shadow);
}
body.performer-signature #performer-app .map-controls .ops-icon { width: 22px; height: 22px; }
body.performer-signature #mission-inspector { border-radius: 22px; background: var(--sig-glass); }
body.performer-signature #mission-inspector .mission-card { gap: 14px; }
body.performer-signature #mission-inspector .mission-card h2 { font-size: 26px; font-weight: 740; letter-spacing: -.045em; color: var(--ops-text); }
body.performer-signature #mission-inspector .mission-card p { font-size: 13px; line-height: 1.5; color: var(--ops-muted); }
body.performer-signature #mission-inspector .mission-fact b { overflow-wrap: anywhere; }
body.performer-signature #performer-bike-popover { background: transparent; border: 0; border-radius: 23px; }
body.performer-signature #performer-bike-popover .performer-bike-card {
  position: relative; padding: 17px; gap: 13px; border: 1px solid var(--ops-line-soft); border-radius: 22px;
  background: var(--sig-glass); color: var(--ops-text); box-shadow: var(--sig-map-shadow); -webkit-backdrop-filter: none; backdrop-filter: none;
}
body.performer-signature #performer-bike-popover .performer-bike-card::after { content: none; }
body.performer-signature #performer-bike-popover .performer-bike-card header h2 { color: var(--ops-text); font-size: 25px; font-weight: 740; letter-spacing: -.045em; }
body.performer-signature #performer-bike-popover .performer-bike-card .ops-icon-btn { width: 44px; min-height: 44px; color: var(--ops-muted); background: var(--ops-surface-2); border: 0; border-radius: 13px; }
body.performer-signature #performer-bike-popover :is(.performer-bike-quick-facts p, .performer-parking-line b, .performer-parking-title h2) { color: var(--ops-text); }
body.performer-signature #performer-bike-popover :is(.performer-bike-quick-facts span, .performer-parking-title small, .performer-parking-line, .performer-parking-sla) { color: var(--ops-muted); }
body.performer-signature #performer-bike-popover .performer-bike-quick-facts p { font-size: 12px; }
body.performer-signature #performer-bike-popover .performer-bike-quick-facts b { white-space: normal; overflow-wrap: anywhere; }
body.performer-signature #performer-bike-popover .performer-bike-card footer .ops-btn { min-height: 47px; padding: 9px 10px; font-size: 12px; border-radius: 13px; }
body.performer-signature #performer-bike-popover .performer-bike-card.expanded footer { background: var(--ops-surface); }
body.performer-signature #performer-bike-popover .bike-quick-chip { background: color-mix(in srgb, var(--ops-green) 10%, var(--ops-surface)); color: var(--ops-green); }
body.performer-signature #performer-bike-popover .bike-quick-chip.offline { background: color-mix(in srgb, var(--ops-red) 10%, var(--ops-surface)); color: var(--ops-red); }
body.performer-signature #performer-bike-popover .bike-quick-chip.rental { background: color-mix(in srgb, var(--ops-blue) 10%, var(--ops-surface)); color: var(--ops-blue); }
body.performer-signature #b2b-zone-console { border-radius: 22px; background: var(--sig-glass); border-color: var(--ops-line-soft); box-shadow: var(--sig-map-shadow); }
body.performer-signature #b2b-zone-console.claimed { background: transparent; border: 0; box-shadow: none; }
body.performer-signature #b2b-zone-console .b2b-zone-compact { padding: 12px 14px; border-radius: 19px; background: var(--sig-glass); border-color: var(--ops-line-soft); box-shadow: var(--sig-map-shadow); }
body.performer-signature #b2b-zone-console .b2b-zone-compact b { font-size: 15px; }
body.performer-signature #b2b-zone-console :is(.b2b-zone-compact small, .b2b-zone-compact em) { font-size: 10px; }
body.performer-signature #b2b-zone-console .b2b-zone-option { min-height: 70px; padding: 12px; border-radius: 14px; }
body.performer-signature #b2b-zone-console .b2b-zone-option b { font-size: 13px; }
body.performer-signature #b2b-zone-console .b2b-zone-option :is(small, em) { font-size: 10px; white-space: normal; }
body.performer-signature #b2b-zone-console .b2b-zone-confirm { min-height: 48px; }
body.performer-signature #map-layer-panel { border-color: var(--ops-line-soft); border-radius: 22px; background: var(--ops-surface); }
body.performer-signature #map-layer-panel .map-filter-chips button { min-height: 44px; }
body.performer-signature #map-layer-panel .map-filter-chips button.active { color: var(--ops-yellow-ink); background: var(--ops-yellow); border-color: var(--ops-yellow); }
body.performer-signature #map-work-gate { -webkit-backdrop-filter: none; backdrop-filter: none; }
body.performer-signature #map-work-gate .map-work-gate-card { border-color: var(--ops-line-soft); border-radius: 24px; background: var(--sig-glass); box-shadow: var(--sig-map-shadow); }
body.performer-signature #map-work-gate .map-work-gate-copy p { font-size: 12px; line-height: 1.45; }
body.performer-signature #map-work-gate .map-work-gate-copy h2 { font-size: 24px; letter-spacing: -.04em; }

/* Tasks, shift, profile, statistics. Readability is retained on narrow phones. */
body.performer-signature #performer-app .performer-route:not([data-route-panel="work"]) { background: var(--ops-bg); }
body.performer-signature #performer-app .performer-page-head { padding-top: 26px; padding-bottom: 18px; }
body.performer-signature #performer-app .performer-page-head h1 { font-size: clamp(30px, 4vw, 38px); line-height: 1.12; letter-spacing: -.04em; font-weight: 730; }
body.performer-signature #performer-app .performer-page-head p { font-size: 13px; line-height: 1.5; }
body.performer-signature #performer-app .inwork-summary { background: var(--ops-surface-soft); border-color: var(--ops-line-soft); border-radius: 15px; box-shadow: none; }
body.performer-signature #performer-app .inwork-summary b { font-size: 30px; font-weight: 720; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .inwork-summary span { font-size: 11px; }
body.performer-signature #performer-app :is(.inwork-card, .route-task-card) { padding: 19px; gap: 16px; border-radius: 18px; border-color: var(--ops-line); background: var(--ops-surface); box-shadow: none; }
body.performer-signature #performer-app :is(.inwork-card h2, .route-task-card h2) { font-size: 22px; font-weight: 730; letter-spacing: -.025em; }
body.performer-signature #performer-app .inwork-card-meta { gap: 7px; line-height: 1.45; }
body.performer-signature #performer-app .inwork-card-meta span { min-height: 28px; font-size: 11px; color: var(--ops-muted); background: var(--ops-surface-2); }
body.performer-signature #performer-app .route-task-problem { padding: 12px; border-radius: 12px; background: var(--ops-surface-2); border-color: var(--ops-line-soft); }
body.performer-signature #performer-app .route-task-problem b { font-size: 13px; font-weight: 580; line-height: 1.55; color: var(--ops-text); }
body.performer-signature #performer-app .route-task-problem :is(span, small) { font-size: 10px; }
body.performer-signature #performer-app .route-task-sla { border-radius: 14px; }
body.performer-signature #performer-app .route-task-sla b { font-size: 13px; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .route-task-sla small { font-size: 10px; }
body.performer-signature #performer-app .route-task-card::before { width: 3px; inset: 20px auto 20px 0; border-radius: 0 3px 3px 0; }
body.performer-signature #performer-app .b2b-address-group { padding: 16px; border-radius: 19px; border-color: var(--ops-line); background: var(--ops-surface); }
body.performer-signature #performer-app .b2b-address-group h2 { font-size: 18px; letter-spacing: -.025em; }
body.performer-signature #performer-app .b2b-address-group .route-task-card { padding: 18px 0; border: 0; border-top: 1px solid var(--ops-line-soft); border-radius: 0; }
body.performer-signature #performer-app .b2b-address-group .route-task-card::before { content: none; }
body.performer-signature #performer-app .route-task-toolbar { border-radius: 18px; border-color: var(--ops-line-soft); background: var(--ops-surface); box-shadow: none; }
body.performer-signature #performer-app .route-task-filters button { min-height: 44px; font-size: 12px; }
body.performer-signature #performer-app .route-task-filters button.active { color: var(--ops-text); background: var(--sig-yellow-soft); border-color: var(--sig-yellow-line); }
body.performer-signature #performer-app .b2b-cargo-banner { padding: 17px; min-height: 88px; border: 1px solid var(--ops-line); border-radius: 16px; background: var(--ops-surface-2); color: var(--ops-text); box-shadow: none; }
body.performer-signature #performer-app .b2b-cargo-banner .b2b-cargo-symbol { background: var(--sig-yellow-soft); color: var(--sig-yellow-muted); }
body.performer-signature #performer-app .b2b-cargo-banner small { color: var(--ops-muted); font-size: 11px; }
body.performer-signature #performer-app .b2b-cargo-banner > .ops-icon { color: var(--sig-yellow-muted); }
body.performer-signature #performer-app .b2b-cargo-panel { padding: 19px; border-radius: 23px; background: var(--ops-surface); }
body.performer-signature #performer-app .b2b-cargo-list label { min-height: 72px; border-color: var(--ops-line-soft); border-radius: 15px; }
body.performer-signature #performer-app .route-task-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; padding: 5px; border: 1px solid var(--ops-line-soft); border-radius: 17px; background: var(--ops-surface-2); overflow-x: auto; }
body.performer-signature #performer-app .route-task-tabs button { min-width: 0; min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 8px; border: 0; border-radius: 12px; background: transparent; color: var(--ops-muted); font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; white-space: nowrap; }
body.performer-signature #performer-app .route-task-tabs button b { min-width: 22px; padding: 3px 6px; border-radius: 999px; background: var(--ops-surface); color: var(--ops-text); font-size: 10px; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .route-task-tabs button.active { background: var(--sig-yellow-soft); color: var(--ops-text); box-shadow: inset 0 0 0 1px var(--sig-yellow-line); }
body.performer-signature #performer-app .b2b-leg-label { display: inline-grid; place-items: center; min-height: 29px; margin-right: 7px; padding: 5px 10px; border-radius: 9px; background: var(--ops-text); color: var(--ops-surface); font-size: 12px; font-weight: 900; letter-spacing: .07em; }
body.performer-signature #performer-app .b2b-history-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 14px; border: 1px solid var(--ops-line-soft); border-radius: 17px; background: var(--ops-surface); }
body.performer-signature #performer-app .b2b-history-toolbar .ops-field { flex: 1; max-width: 260px; }
body.performer-signature #performer-app .b2b-history-timezone { padding-bottom: 13px; color: var(--ops-muted); font-size: 11px; }
body.performer-signature #performer-app .b2b-history-card time { color: var(--ops-text); font-size: 18px; font-weight: 760; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .b2b-history-sync { color: var(--ops-amber); font-weight: 700; }
body.performer-signature #performer-app .b2b-history-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
body.performer-signature #performer-app .b2b-history-photos figure { min-width: 0; margin: 0; padding: 7px; border: 1px solid var(--ops-line-soft); border-radius: 13px; background: var(--ops-surface-2); }
body.performer-signature #performer-app .b2b-history-photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 9px; }
body.performer-signature #performer-app .b2b-history-photos figcaption { padding-top: 6px; color: var(--ops-muted); font-size: 10px; }
body.performer-signature #performer-app .b2b-cargo-list label.cargo-delivery { display: flex; align-items: center; gap: 10px; }
body.performer-signature #performer-app .b2b-cargo-list label.cargo-delivery > span { flex: 1; min-width: 0; }
body.performer-signature #performer-app .b2b-cargo-list label.cargo-delivery .ops-btn { flex: none; min-height: 42px; }
@media (max-width: 520px) {
  body.performer-signature #performer-app .route-task-tabs { grid-template-columns: repeat(4, minmax(92px, 1fr)); }
  body.performer-signature.mobile-repair-workspace #performer-app .route-task-tabs { grid-template-columns: repeat(3, minmax(104px, 1fr)); }
  body.performer-signature #performer-app .b2b-history-toolbar { align-items: stretch; flex-direction: column; }
  body.performer-signature #performer-app .b2b-history-toolbar .ops-field { max-width: none; }
  body.performer-signature #performer-app .b2b-history-timezone { padding: 0; }
  body.performer-signature #performer-app .b2b-cargo-list label.cargo-delivery { align-items: stretch; flex-direction: column; }
  body.performer-signature #performer-app .b2b-cargo-list label.cargo-delivery .ops-btn { width: 100%; }
}
body.performer-signature #performer-app .shift-card { min-height: 290px; padding: 24px; gap: 22px; border-color: var(--sig-yellow-line); border-radius: 20px; background: var(--sig-shift-surface); box-shadow: none; }
body.performer-signature #performer-app .shift-card h2 { font-size: 27px; letter-spacing: -.035em; font-weight: 720; }
body.performer-signature #performer-app .shift-time { color: var(--ops-text); }
body.performer-signature #performer-app .shift-countdown { color: var(--ops-text); font-size: 36px; font-weight: 720; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
body.performer-signature #performer-app .schedule-panel { padding: 20px; background: var(--ops-surface-soft); }
body.performer-signature #performer-app .schedule-row { padding-block: 14px; border-color: var(--ops-line-soft); }
body.performer-signature #performer-app :is(.energizer-inwork, .repair-workspace-card, .duty-console-head, .duty-console-batteries, .duty-console-grid > .ops-panel) { border-radius: 22px; background: var(--ops-surface); border-color: var(--ops-line-soft); box-shadow: none; }
body.performer-signature #performer-app .result-metric { padding: 20px; border-radius: 22px; background: var(--ops-surface); border-color: var(--ops-line-soft); box-shadow: none; }
body.performer-signature #performer-app .result-metric b { font-size: 36px; font-weight: 720; letter-spacing: -.045em; }
body.performer-signature #performer-app .profile-hero { border: 0; background: transparent; box-shadow: none; }
body.performer-signature #performer-app .profile-next-hero { padding: 16px 10px 22px; }
body.performer-signature #performer-app :is(.profile-next-avatar, .profile-big-avatar) { width: 76px; height: 76px; border-radius: 25px; background: var(--sig-yellow-soft); color: var(--ops-text); font-size: 27px; font-weight: 710; }
body.performer-signature #performer-app .profile-next-hero h2 { font-size: 27px; letter-spacing: -.04em; color: var(--ops-text); }
body.performer-signature #performer-app .profile-next-hero > p { font-size: 14px; color: var(--ops-muted); }
body.performer-signature #performer-app :is(.profile-next-meta, .profile-bell, .profile-setting-row, .profile-next-slot-main b, .profile-next-slot-main small, .profile-next-stats b, .profile-next-stats em) { color: var(--ops-text); }
body.performer-signature #performer-app :is(.profile-next-slot, .profile-next-stats, .profile-settings, .profile-actions) { border: 1px solid var(--ops-line-soft); border-radius: 16px; background: var(--ops-surface); box-shadow: none; }
body.performer-signature #performer-app .profile-next-stats { background: var(--ops-surface-soft); }
body.performer-signature #performer-app .profile-settings { border: 0; border-radius: 0; padding-inline: 7px; }
body.performer-signature #performer-app .profile-setting-row b { min-width: 0; font-size: 14px; line-height: 1.4; white-space: normal; }
body.performer-signature #performer-app .profile-setting-row small { font-size: 11px; font-weight: 450; }
body.performer-signature #performer-app :is(.profile-next-meta b, .profile-next-icon) { color: var(--ops-muted); background: var(--ops-surface-2); }
body.performer-signature #performer-app .profile-next-meta b.active { color: var(--ops-green); background: color-mix(in srgb, var(--ops-green) 10%, var(--ops-surface)); }
body.performer-signature #performer-app :is(.profile-next-stats > small, .profile-setting-row small, .profile-next-slot-main em) { color: var(--ops-muted); }
body.performer-signature #performer-app :is(.profile-setting-row, .profile-next-photo, .profile-next-stats span, .profile-row) { border-color: var(--ops-line-soft); }
body.performer-signature #performer-app .profile-setting-row { min-height: 72px; }
body.performer-signature #performer-app .profile-next-icon.yellow { background: color-mix(in srgb, var(--ops-yellow) 22%, var(--ops-surface)); color: var(--ops-amber); }
body.performer-signature #performer-app .profile-next-icon.green { background: color-mix(in srgb, var(--ops-green) 11%, var(--ops-surface)); color: var(--ops-green); }
body.performer-signature #performer-app .profile-next-icon.blue { background: color-mix(in srgb, var(--ops-blue) 11%, var(--ops-surface)); color: var(--ops-blue); }
body.performer-signature #performer-app .profile-next-logout { color: var(--ops-red); font-size: 15px; }
body.performer-signature #performer-app .theme-choice { border-color: var(--ops-line-soft); background: var(--ops-surface-2); border-radius: 12px; }
body.performer-signature #performer-app .theme-choice button { min-height: 44px; }
body.performer-signature #performer-app .theme-choice button.active { color: var(--ops-yellow-ink); background: var(--ops-yellow); }

/* Object attendance evidence: recorded hours and each photograph stay explicit. */
/* Results use real, explicitly scoped counts; the whole profile card is a link. */
body.performer-signature #performer-app .profile-results-summary {
  display: grid; gap: 17px; width: 100%; margin-top: 12px; padding: 18px;
  border: 1px solid var(--sig-yellow-line); border-radius: 19px; background: var(--sig-shift-surface);
  color: var(--ops-text); font: inherit; text-align: left; cursor: pointer;
}
body.performer-signature #performer-app .profile-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.performer-signature #performer-app .profile-results-heading > span { display: grid; gap: 4px; }
body.performer-signature #performer-app .profile-results-heading b { font-size: 16px; font-weight: 720; }
body.performer-signature #performer-app .profile-results-heading small { font-size: 11px; color: var(--ops-muted); }
body.performer-signature #performer-app .profile-results-values { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
body.performer-signature #performer-app .profile-results-values > span { display: grid; align-content: start; gap: 5px; }
body.performer-signature #performer-app .profile-results-values > span + span { border-left: 1px solid var(--sig-yellow-line); padding-left: 16px; }
body.performer-signature #performer-app .profile-results-values b { font-size: 30px; line-height: 1.15; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .profile-results-values small { font-size: 12px; line-height: 1.45; }
body.performer-signature #performer-app .profile-results-link { font-size: 12px; padding-top: 12px; border-top: 1px solid var(--sig-yellow-line); }
body.performer-signature #performer-app .profile-actions { border: 0; background: transparent; padding: 0; }
body.performer-signature #performer-app .profile-next-logout { min-height: 48px; width: 100%; border: 1px solid var(--ops-line-soft); border-radius: 13px; background: var(--ops-surface-soft); }
body.performer-signature #performer-app .results-period { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin: 0 0 16px; background: var(--ops-surface-2); border-radius: 13px; max-width: 440px; }
body.performer-signature #performer-app .results-period button { min-height: 44px; padding: 10px; border: 0; border-radius: 10px; font: inherit; font-size: 13px; font-weight: 650; background: transparent; color: var(--ops-muted); cursor: pointer; }
body.performer-signature #performer-app .results-period button.active { background: var(--ops-surface); color: var(--ops-text); box-shadow: 0 1px 4px #1425320d; }
body.performer-signature #performer-app #result-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
body.performer-signature #performer-app #result-metrics .result-metric { padding: 18px; border-radius: 16px; display: grid; align-content: start; gap: 9px; min-width: 0; }
body.performer-signature #performer-app #result-metrics .result-metric > span { font-size: 13px; line-height: 1.4; color: var(--ops-text); }
body.performer-signature #performer-app #result-metrics .result-metric b { font-size: 35px; line-height: 1.1; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app #result-metrics .result-metric small { font-size: 11px; line-height: 1.45; color: var(--ops-muted); }
body.performer-signature #performer-app .results-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
body.performer-signature #performer-app #result-focus { padding: 20px; border: 1px solid var(--sig-yellow-line); border-radius: 18px; background: var(--sig-shift-surface); }
body.performer-signature #performer-app .result-hours-heading { display: flex; align-items: center; gap: 10px; }
body.performer-signature #performer-app .result-hours-heading h2 { font-size: 16px; line-height: 1.4; }
body.performer-signature #performer-app .result-hours-value { display: block; font-size: 30px; line-height: 1.2; margin-top: 15px; letter-spacing: -.03em; }
body.performer-signature #performer-app #result-focus p { font-size: 12px; line-height: 1.5; color: var(--ops-text); margin: 9px 0 6px; }
body.performer-signature #performer-app #result-focus > small { color: var(--ops-muted); font-size: 11px; line-height: 1.45; display: block; }
body.performer-signature #performer-app .result-history { padding: 0; border: 0; background: transparent; box-shadow: none; }
body.performer-signature #performer-app .result-history .ops-section-head { padding: 8px 4px; }
body.performer-signature #performer-app .result-history .ops-section-head h2 { font-size: 20px; }
body.performer-signature #performer-app .result-history .ops-section-head p { font-size: 12px; line-height: 1.5; }
body.performer-signature #performer-app #result-history-list { display: grid; gap: 10px; }
body.performer-signature #performer-app .result-history-card { padding: 15px; border: 1px solid var(--ops-line-soft); border-radius: 16px; background: var(--ops-surface); min-width: 0; }
body.performer-signature #performer-app .result-history-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 9px; }
body.performer-signature #performer-app .result-history-top > b { font-size: 15px; }
body.performer-signature #performer-app .result-history-card > p { margin: 10px 0 14px; font-size: 12px; color: var(--ops-muted); line-height: 1.45; }
body.performer-signature #performer-app .result-history-time { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-top: 12px; border-top: 1px solid var(--ops-line-soft); font-size: 12px; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .result-history-time > b { font-size: 14px; }
body.performer-signature #performer-app .schedule-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body.performer-signature #performer-app .schedule-row-actions .ops-status,
body.performer-signature #performer-app .result-history-top .ops-status { white-space: normal; max-width: 100%; text-align: left; line-height: 1.35; padding: 7px 10px; }
body.performer-signature #performer-app .schedule-selfies { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 6px; }
body.performer-signature #performer-app .schedule-selfies a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 10px; font-size: 12px; border: 1px solid var(--ops-line-soft); border-radius: 10px; color: var(--ops-cyan); }
@media (min-width: 1000px) {
  body.performer-signature #performer-app [data-route-panel="results"] { max-width: 900px; width: 100%; margin-inline: auto; }
}
body.performer-signature #performer-app .shift-evidence { min-width: 0; display: grid; gap: 16px; }
body.performer-signature #performer-app .shift-evidence-hours {
  display: grid; gap: 9px; padding: 18px; border: 1px solid var(--ops-line-soft); border-radius: 15px; background: var(--ops-surface);
}
body.performer-signature #performer-app .shift-evidence-hours > div { min-width: 0; display: grid; gap: 7px; }
body.performer-signature #performer-app .shift-evidence-hours strong {
  font-size: clamp(25px, 5vw, 32px); font-weight: 730; line-height: 1.15; letter-spacing: -.035em; font-variant-numeric: tabular-nums; color: var(--ops-text);
}
body.performer-signature #performer-app .shift-evidence-hours p { margin: 0; font-size: 12px; line-height: 1.5; color: var(--ops-muted); }
body.performer-signature #performer-app .shift-evidence-photos { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
body.performer-signature #performer-app .shift-evidence-photo { min-width: 0; overflow: hidden; border: 1px solid var(--ops-line); border-radius: 15px; background: var(--ops-surface); }
body.performer-signature #performer-app .shift-evidence-photo-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px; padding: 12px; }
body.performer-signature #performer-app .shift-evidence-photo-head b { font-size: 12px; font-weight: 680; line-height: 1.4; }
body.performer-signature #performer-app .shift-evidence-photo-head time { color: var(--ops-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
body.performer-signature #performer-app .shift-evidence-photo-link { display: grid; min-width: 0; color: var(--ops-text); text-decoration: none; }
body.performer-signature #performer-app .shift-evidence-photo-link img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--ops-surface-2); }
body.performer-signature #performer-app .shift-evidence-photo-link > span { display: grid; place-items: center; min-height: 44px; padding: 8px; font-size: 11px; font-weight: 650; }
body.performer-signature #performer-app .shift-evidence-photo-empty { display: grid; align-content: center; gap: 8px; min-height: 133px; padding: 14px 12px; border-top: 1px solid var(--ops-line-soft); background: var(--ops-surface-soft); }
body.performer-signature #performer-app .shift-evidence-photo-empty > span { font-size: 12px; font-weight: 650; color: var(--ops-muted); }
body.performer-signature #performer-app .shift-evidence-photo-empty small { font-size: 11px; line-height: 1.5; color: var(--ops-muted); overflow-wrap: anywhere; }
body.performer-signature #performer-app .shift-evidence-photo.is-missing { border-color: var(--sig-yellow-line); }
body.performer-signature #performer-app .shift-evidence-photo.is-missing .shift-evidence-photo-empty > span { color: var(--sig-yellow-muted); }
body.performer-signature #performer-app .shift-evidence-photo.is-manual .shift-evidence-photo-empty { background: var(--ops-surface-2); }

/* Attendance workers reach the hours and photos directly after a compact slot. */
body.performer-signature.object-shift-workspace #performer-app .shift-primary { display: grid; align-content: start; gap: 12px; }
body.performer-signature.object-shift-workspace #performer-app .shift-card { min-height: 0; justify-content: flex-start; gap: 14px; padding: 18px; }
body.performer-signature.object-shift-workspace #performer-app .shift-card-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
body.performer-signature.object-shift-workspace #performer-app .shift-card h2 { margin-top: 10px; font-size: 21px; line-height: 1.25; letter-spacing: -.025em; }
body.performer-signature.object-shift-workspace #performer-app .shift-card p { margin-top: 6px; font-size: 12px; line-height: 1.4; }
body.performer-signature.object-shift-workspace #performer-app .shift-time { gap: 10px; font-size: 12px; line-height: 1.4; }
body.performer-signature.object-shift-workspace #performer-app .shift-card-action { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: end; gap: 10px; }
body.performer-signature.object-shift-workspace #performer-app .shift-countdown { margin-top: 4px; font-size: 22px; line-height: 1.2; }
body.performer-signature.object-shift-workspace #performer-app .shift-card-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
body.performer-signature.object-shift-workspace #performer-app .shift-card-buttons .ops-btn { min-height: 44px; padding: 9px 10px; font-size: 12px; line-height: 1.3; }
body.performer-signature.object-shift-workspace #performer-app .shift-evidence { gap: 12px; }
body.performer-signature.object-shift-workspace #performer-app .shift-evidence-hours { gap: 7px; padding: 14px; }
body.performer-signature.object-shift-workspace #performer-app .shift-evidence-hours > div { gap: 5px; }
body.performer-signature.object-shift-workspace #performer-app .shift-evidence-hours strong { font-size: 26px; }
body.performer-signature.object-shift-workspace #performer-app .shift-evidence-hours p { font-size: 11px; line-height: 1.45; }
body.performer-signature.object-shift-workspace #performer-app .shift-evidence-photo-empty { min-height: 112px; }

/* One compact transfer indicator, including real browser upload progress. */
body.performer-signature .performer-upload-status {
  position: fixed; z-index: 900; top: calc(10px + env(safe-area-inset-top)); left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right));
  width: auto; max-width: 460px; margin-inline: auto; display: grid; gap: 6px; padding: 12px 14px;
  border: 1px solid var(--ops-line); border-radius: 15px; background: var(--ops-surface); color: var(--ops-text); box-shadow: var(--sig-map-shadow);
}
body.performer-signature .performer-upload-status[hidden] { display: none; }
body.performer-signature .performer-upload-label { margin: 0; font-size: 13px; font-weight: 680; line-height: 1.3; }
body.performer-signature .performer-upload-note { margin: 0; font-size: 11px; line-height: 1.35; color: var(--ops-muted); }
body.performer-signature .performer-upload-progress { display: block; width: 100%; height: 6px; overflow: hidden; border: 0; border-radius: 4px; accent-color: var(--ops-yellow); background: var(--ops-surface-3); }
body.performer-signature .performer-upload-progress::-webkit-progress-bar { border-radius: 4px; background: var(--ops-surface-3); }
body.performer-signature .performer-upload-progress::-webkit-progress-value { border-radius: 4px; background: var(--ops-yellow); }
body.performer-signature .performer-upload-progress::-moz-progress-bar { border-radius: 4px; background: var(--ops-yellow); }
body.performer-signature .performer-upload-progress[hidden] { display: none; }

/* Authentication is self-contained: no webfont, map, or external hero request. */
body.performer-signature #performer-auth {
  align-items: center; padding: 30px; overflow-y: auto; overscroll-behavior: contain;
  background: var(--ops-bg); color: var(--ops-text); -webkit-backdrop-filter: none; backdrop-filter: none;
}
body.performer-signature #performer-auth .performer-auth-shell {
  width: min(1040px, 100%); min-height: 680px; grid-template-columns: minmax(0, 1fr) minmax(370px, 1fr);
  border: 1px solid var(--ops-line-soft); border-radius: 30px; background: var(--ops-surface); box-shadow: var(--ops-shadow);
}
body.performer-signature #performer-auth .performer-auth-intro {
  padding: 40px; background: var(--ops-surface-soft); color: var(--ops-text);
}
body.performer-signature #performer-auth .performer-auth-intro::before,
body.performer-signature #performer-auth .performer-auth-intro::after { content: none; }
body.performer-signature #performer-auth .performer-auth-logo > span { width: 48px; height: 48px; border-radius: 15px; background: var(--sig-yellow-soft); color: var(--ops-text); font-size: 16px; font-weight: 800; letter-spacing: -.05em; }
body.performer-signature #performer-auth .performer-auth-logo small { font-size: 11px; font-weight: 500; }
body.performer-signature #performer-auth .performer-auth-intro-copy .ops-kicker { color: var(--ops-muted); }
body.performer-signature #performer-auth .performer-auth-intro-copy h1 { max-width: 8ch; font-size: 56px; font-weight: 690; letter-spacing: -.06em; line-height: 1.04; }
body.performer-signature #performer-auth .performer-auth-intro-copy p { color: var(--ops-muted); font-size: 14px; }
body.performer-signature #performer-auth .performer-auth-benefits { grid-template-columns: 1fr; gap: 0; }
body.performer-signature #performer-auth .performer-auth-benefits span { display: flex; align-items: center; gap: 15px; border: 0; border-bottom: 1px solid var(--ops-line); border-radius: 0; background: transparent; padding: 13px 0; font-size: 11px; font-weight: 450; }
body.performer-signature #performer-auth .performer-auth-benefits b { color: var(--sig-yellow-muted); }
body.performer-signature #performer-auth .performer-auth-card { margin: 0; justify-content: flex-start; gap: 13px; padding: 28px 38px 30px; overflow: visible; background: var(--ops-surface); }
body.performer-signature #performer-auth .performer-signature-auth-art {
  position: relative; isolation: isolate; flex: 0 0 auto; height: 166px; margin: 0 -12px 2px; overflow: hidden;
}
body.performer-signature #performer-auth .performer-signature-auth-art::before {
  content: ""; position: absolute; z-index: -1; inset: 4% 4% 11%; border: 1px solid var(--sig-yellow-line); border-radius: 18px;
  background: var(--sig-shift-surface);
}
body.performer-signature #performer-auth .performer-signature-auth-art img {
  display: block; width: 100%; height: calc(100% - 13px); object-fit: contain; object-position: center;
}
body.performer-signature #performer-auth .performer-signature-auth-art > span { position: absolute; right: 0; bottom: 1px; left: 0; color: var(--ops-muted); text-align: center; font-size: 8px; font-weight: 600; letter-spacing: .17em; }
body.performer-signature #performer-auth .performer-auth-head .performer-mark { display: none; }
body.performer-signature #performer-auth .performer-auth-head .ops-kicker { color: var(--ops-muted); font-size: 9px; font-weight: 600; }
body.performer-signature #performer-auth .performer-auth-head h2 { font-size: 32px; font-weight: 710; letter-spacing: -.055em; line-height: 1.08; }
body.performer-signature #performer-auth .performer-auth-lead { font-size: 13px; line-height: 1.45; }
body.performer-signature #performer-auth .performer-auth-connectivity { min-height: 26px; padding: 0 2px; border-radius: 0; background: transparent; font-size: 10px; font-weight: 600; }
body.performer-signature #performer-auth .performer-auth-connectivity i { width: 6px; height: 6px; box-shadow: none; animation: none; }
body.performer-signature #performer-auth .performer-auth-connectivity[data-state="offline"] { color: var(--ops-red); }
body.performer-signature #performer-auth .performer-login-form { gap: 13px; }
body.performer-signature #performer-auth .performer-auth-field { gap: 6px; }
body.performer-signature #performer-auth .performer-auth-field > span:first-child { font-size: 11px; font-weight: 650; color: var(--ops-text); }
body.performer-signature #performer-auth .performer-auth-field .ops-input { min-height: 52px; border: 1px solid var(--ops-line); border-radius: 13px; background: var(--ops-surface-2); color: var(--ops-text); font-size: 16px; }
body.performer-signature #performer-auth .performer-auth-field .ops-input:focus { border-color: var(--ops-text); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ops-yellow) 25%, transparent); }
body.performer-signature #performer-auth .performer-password-control button { background: transparent; color: var(--ops-muted); min-width: 73px; min-height: 44px; font-size: 10px; font-weight: 650; }
body.performer-signature #performer-auth .performer-auth-submit { min-height: 54px; border-radius: 14px; background: var(--ops-yellow); border-color: var(--ops-yellow); color: var(--ops-yellow-ink); font-size: 14px; font-weight: 750; box-shadow: none; }
body.performer-signature #performer-auth .performer-auth-submit i { margin-left: auto; }
body.performer-signature #performer-auth .performer-auth-submit > span { margin-left: auto; }
body.performer-signature #performer-auth .performer-auth-session-note { gap: 7px; font-size: 10px; line-height: 1.45; }
body.performer-signature #performer-auth .performer-auth-session-note i { background: transparent; color: var(--ops-green); }
body.performer-signature #performer-auth .performer-auth-help { padding-top: 11px; font-size: 12px; }
body.performer-signature #performer-auth .performer-auth-help summary { min-height: 44px; display: flex; align-items: center; font-size: 12px; font-weight: 650; }
body.performer-signature #performer-auth .install-help-link { min-height: 44px; display: flex; align-items: center; color: var(--ops-muted); font-size: 11px; }

/* Full-screen detail and action sheet retain existing photo/upload controls. */
body.performer-signature #task-action-modal { background: rgba(17, 25, 18, .43); -webkit-backdrop-filter: none; backdrop-filter: none; }
body.performer-signature #task-action-modal .ops-modal-card { border-color: var(--ops-line-soft); border-radius: 25px; background: var(--ops-surface); box-shadow: 0 18px 64px rgba(0, 0, 0, .18); }
body.performer-signature #task-action-modal .ops-modal-head { background: var(--ops-surface); border-color: var(--ops-line-soft); }
body.performer-signature #task-action-modal .ops-modal-head h2 { font-size: 24px; font-weight: 720; letter-spacing: -.04em; }
body.performer-signature #task-action-modal .ops-modal-body { color: var(--ops-text); }
body.performer-signature #performer-bike-detail-screen { background: var(--ops-bg); color: var(--ops-text); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-screen-shell, .bike-detail-screen-head, .bike-detail-screen-body, .bike-detail-screen-actions) { background: var(--ops-bg); color: var(--ops-text); border-color: var(--ops-line-soft); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-hero, .bike-detail-info-card, .bike-detail-info-section) { background: var(--ops-surface); color: var(--ops-text); border-color: var(--ops-line-soft); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-screen-head h1, .bike-detail-charge > strong, .bike-detail-accordion summary, .bike-detail-row b) { color: var(--ops-text); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-empty, .bike-detail-coordinates, .bike-detail-row, .bike-detail-screen-actions > small) { color: var(--ops-muted); border-color: var(--ops-line-soft); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-round, .bike-detail-accordion) { color: var(--ops-text); background: var(--ops-surface); border-color: var(--ops-line-soft); }
body.performer-signature #performer-bike-detail-screen .bike-detail-screen-loading { color: var(--ops-muted); background: var(--ops-surface-2); animation: none; }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-pill, .bike-detail-tags span.good) { color: var(--ops-green); border-color: color-mix(in srgb, var(--ops-green) 30%, var(--ops-line)); background: color-mix(in srgb, var(--ops-green) 9%, var(--ops-surface)); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-pill.offline, .bike-detail-tags span.danger) { color: var(--ops-red); border-color: color-mix(in srgb, var(--ops-red) 30%, var(--ops-line)); background: color-mix(in srgb, var(--ops-red) 9%, var(--ops-surface)); }
body.performer-signature #performer-bike-detail-screen :is(.bike-detail-pill.rental, .rental-chip) { color: var(--ops-blue); border-color: color-mix(in srgb, var(--ops-blue) 30%, var(--ops-line)); background: color-mix(in srgb, var(--ops-blue) 9%, var(--ops-surface)); }
body.performer-signature #performer-bike-detail-screen .bike-detail-tags span.warning { color: var(--ops-amber); border-color: color-mix(in srgb, var(--ops-amber) 30%, var(--ops-line)); background: color-mix(in srgb, var(--ops-amber) 9%, var(--ops-surface)); }
body.performer-signature #performer-bike-detail-screen .bike-detail-row b.good { color: var(--ops-green); }
body.performer-signature #performer-bike-detail-screen .bike-detail-row b.warning { color: var(--ops-amber); }
body.performer-signature #performer-bike-detail-screen .bike-detail-row b.danger { color: var(--ops-red); }
body.performer-signature #performer-bike-detail-screen .bike-detail-row b.muted { color: var(--ops-muted); }
body.performer-signature #performer-toasts .ops-toast { border-radius: 16px; background: var(--sig-graphite); color: var(--sig-on-graphite); box-shadow: var(--sig-map-shadow); }

/* Installed-iPhone entry point only; Safari's installation guide is unchanged. */
html.iphone-installed-auth body.performer-signature { --ink: var(--ops-text); --muted: var(--ops-muted); --line: var(--ops-line); --yellow: var(--ops-yellow); }
html.iphone-installed-auth body.performer-signature .iphone-guide-shell {
  width: min(460px, 100%); min-height: 100svh; margin-inline: auto; display: block;
  padding: max(14px, env(safe-area-inset-top)) 24px max(22px, env(safe-area-inset-bottom));
}
html.iphone-installed-auth body.performer-signature .install-head { display: none; }
html.iphone-installed-auth body.performer-signature #iphone-auth { width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ops-text); text-align: left; box-shadow: none; }
html.iphone-installed-auth body.performer-signature #iphone-auth .iphone-auth-mark { width: 43px; height: 43px; margin: 0 0 10px; border-radius: 14px; background: var(--sig-yellow-soft); color: var(--ops-text); font-size: 14px; font-weight: 800; box-shadow: none; }
html.iphone-installed-auth body.performer-signature #iphone-auth .performer-signature-auth-art { position: relative; isolation: isolate; height: clamp(155px, 27svh, 220px); margin: 0 -12px 18px; overflow: hidden; }
html.iphone-installed-auth body.performer-signature #iphone-auth .performer-signature-auth-art::before { content: ""; position: absolute; z-index: -1; inset: 4% 4% 11%; border: 1px solid var(--sig-yellow-line); border-radius: 18px; background: var(--sig-shift-surface); }
html.iphone-installed-auth body.performer-signature #iphone-auth .performer-signature-auth-art img { display: block; width: 100%; height: calc(100% - 13px); object-fit: contain; }
html.iphone-installed-auth body.performer-signature #iphone-auth .performer-signature-auth-art > span { position: absolute; right: 0; bottom: 1px; left: 0; text-align: center; font-size: 8px; font-weight: 600; letter-spacing: .17em; color: var(--ops-muted); }
html.iphone-installed-auth body.performer-signature #iphone-auth .install-kicker { color: var(--ops-muted); font-size: 9px; font-weight: 650; }
html.iphone-installed-auth body.performer-signature #iphone-auth h1 { margin: 10px 0; font-size: 34px; font-weight: 710; line-height: 1.08; letter-spacing: -.055em; }
html.iphone-installed-auth body.performer-signature #iphone-auth > p { margin: 0 0 22px; color: var(--ops-muted); font-size: 13px; line-height: 1.45; }
html.iphone-installed-auth body.performer-signature #iphone-auth label > span { color: var(--ops-text); font-size: 11px; font-weight: 650; }
html.iphone-installed-auth body.performer-signature #iphone-auth input { min-height: 52px; border-radius: 13px; background: var(--ops-surface-2); color: var(--ops-text); border-color: var(--ops-line); font-size: 16px; }
html.iphone-installed-auth body.performer-signature #iphone-auth input:focus { border-color: var(--ops-text); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ops-yellow) 25%, transparent); }
html.iphone-installed-auth body.performer-signature #iphone-auth button[type="submit"] { min-height: 54px; margin-top: 8px; border-radius: 14px; background: var(--ops-yellow); color: var(--ops-yellow-ink); font-size: 14px; font-weight: 750; }
html.iphone-installed-auth body.performer-signature #iphone-auth .iphone-password-control button { background: transparent; color: var(--ops-muted); min-height: 44px; font-size: 10px; font-weight: 650; }
html.iphone-installed-auth body.performer-signature #iphone-auth .iphone-auth-note { color: var(--ops-green); line-height: 1.45; }
html.iphone-installed-auth body.performer-signature #iphone-auth .iphone-auth-note.error { color: var(--ops-red); }
@media (max-height: 620px) {
  html.iphone-installed-auth body.performer-signature #iphone-auth .performer-signature-auth-art { height: 100px; margin-bottom: 10px; }
  html.iphone-installed-auth body.performer-signature #iphone-auth h1 { font-size: 28px; }
}

@media (max-width: 900px) {
  body.performer-signature #performer-app { grid-template-rows: calc(62px + env(safe-area-inset-top)) minmax(0, 1fr) calc(84px + env(safe-area-inset-bottom)); }
  body.performer-signature #performer-app .performer-topbar { gap: 8px; padding: env(safe-area-inset-top) max(14px, env(safe-area-inset-right)) 0 max(14px, env(safe-area-inset-left)); }
  body.performer-signature #performer-app .worker-avatar { width: 40px; height: 40px; border-radius: 14px; }
  body.performer-signature #performer-app .worker-copy b { max-width: min(43vw, 220px); font-size: 14px; }
  body.performer-signature #performer-app .worker-copy small { max-width: min(44vw, 225px); font-size: 10px; }
  body.performer-signature #performer-app .worker-live-cluster .ops-status { max-width: 31vw; min-height: 32px; font-size: 10px; padding-inline: 9px; }
  body.performer-signature #performer-app .performer-nav { padding-inline: max(22px, env(safe-area-inset-left)) max(22px, env(safe-area-inset-right)); }
  body.performer-signature #performer-app .performer-nav button { min-height: 54px; flex-direction: column; padding: 5px 1px 6px; gap: 4px; font-size: 10px; font-weight: 550; line-height: 1.15; }
  body.performer-signature #performer-app .performer-nav button.active { font-weight: 750; }
  body.performer-signature #performer-app .performer-nav button > span:last-child { min-height: 13px; white-space: normal; }
  body.performer-signature #performer-app .performer-nav .nav-icon { width: 26px; height: 24px; }
  body.performer-signature #performer-app .work-layout { padding: 0; }
  body.performer-signature #performer-app .work-map-shell { border: 0; border-radius: 0; }
  body.performer-signature #route-map-toolbar { top: 12px; left: max(12px, env(safe-area-inset-left)); right: max(70px, env(safe-area-inset-right)); }
  body.performer-signature #performer-app .map-controls { top: 12px; right: max(12px, env(safe-area-inset-right)); bottom: auto; }
  body.performer-signature #performer-app .work-layout.zone-console-open .map-controls { top: 12px; }
  body.performer-signature #mission-inspector {
    left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right)); bottom: 12px;
    max-height: min(60%, 480px); padding: 18px; border-radius: 24px; overflow-y: auto; overscroll-behavior: contain; box-shadow: var(--sig-map-shadow);
  }
  body.performer-signature #mission-inspector::before { width: 34px; height: 3px; margin: -7px auto 14px; background: var(--ops-line); }
  body.performer-signature #mission-inspector .mission-card h2 { font-size: 25px; }
  body.performer-signature #mission-inspector .mission-actions .ops-btn { min-height: 49px; }
  body.performer-signature #performer-bike-popover {
    left: max(12px, env(safe-area-inset-left)) !important; right: max(12px, env(safe-area-inset-right)); top: auto !important; bottom: 12px;
    width: auto; max-width: 520px; max-height: min(60%, 480px); margin-inline: auto; transform: none; overflow-x: hidden; overflow-y: auto;
    overscroll-behavior: contain; border-radius: 23px; box-shadow: var(--sig-map-shadow); transition: opacity .12s ease;
  }
  body.performer-signature #performer-bike-popover.visible { transform: none; }
  body.performer-signature #performer-bike-popover .performer-bike-card { box-shadow: none; }
  body.performer-signature #performer-bike-popover .performer-bike-card.expanded { max-height: none; overflow: visible; }
  body.performer-signature #performer-app .bike-track-summary { top: auto; bottom: 12px; max-width: 500px; border-radius: 16px; background: var(--sig-glass); }
  body.performer-signature #map-layer-panel { inset: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) calc(78px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); width: auto; }
  body.performer-signature #map-work-gate { padding: 12px; background: linear-gradient(180deg, transparent 35%, color-mix(in srgb, var(--ops-bg) 60%, transparent)); }
  body.performer-signature #map-work-gate .map-work-gate-card { padding: 24px 18px 18px; }
  body.performer-signature #b2b-zone-console { left: 12px; right: 12px; bottom: 12px; max-height: min(62%, 450px); }
  body.performer-signature #b2b-zone-console.claimed { left: 12px; right: 12px; width: auto; max-width: 430px; max-height: none; }
  body.performer-signature #performer-app .bike-energizer-glance { top: 121px; left: 12px; width: calc(100% - 82px); border-radius: 17px; background: var(--sig-glass); }
  body.performer-signature #performer-app .performer-route:not([data-route-panel="work"]) { overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; padding-bottom: 20px; }
  body.performer-signature #performer-app .performer-page-head { width: min(100% - 36px, 640px); padding: 25px 0 17px; }
  body.performer-signature #performer-app .performer-page-head h1 { font-size: 32px; }
  body.performer-signature #performer-app .performer-page-head p { display: block; max-width: 48ch; font-size: 12px; line-height: 1.45; }
  body.performer-signature #performer-app :is(.inwork-layout, .shift-layout, .result-metrics, .results-grid, .profile-layout) { width: min(100% - 24px, 640px); }
  body.performer-signature #performer-app .inwork-layout { max-width: 640px; }
  body.performer-signature #performer-app .shift-layout { grid-template-columns: minmax(0, 1fr); }
  body.performer-signature #performer-app .inwork-card-actions .ops-btn { min-height: 48px; }
  body.performer-signature #performer-app .shift-card { min-height: 280px; padding: 21px; }
  body.performer-signature #performer-app .shift-card h2 { font-size: 27px; }
  body.performer-signature #performer-app .shift-card-buttons .ops-btn { min-width: 0; white-space: normal; }
  body.performer-signature #performer-app .result-metric { padding: 18px; }
  body.performer-signature #performer-app .result-metric b { font-size: 31px; }
  /* Keep the same compact identity header and navigation on Profile. */
  body.performer-signature[data-performer-route="profile"] #performer-app { grid-template-rows: calc(62px + env(safe-area-inset-top)) minmax(0, 1fr) calc(84px + env(safe-area-inset-bottom)); }
  body.performer-signature[data-performer-route="profile"] #performer-app .performer-topbar { display: flex; grid-row: 1; }
  body.performer-signature[data-performer-route="profile"] #performer-app .performer-route[data-route-panel="profile"] { display: block; grid-row: 2; min-height: 0; padding-top: 0; background: var(--ops-bg); }
  body.performer-signature[data-performer-route="profile"] #performer-app .performer-nav { grid-row: 3; }
  body.performer-signature #performer-app .profile-layout { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-content: start; padding-bottom: 22px; }
  body.performer-signature #performer-app .profile-next-hero { padding-top: 5px; }
  body.performer-signature #performer-app .profile-data { padding: 0; border: 0; background: transparent; box-shadow: none; }
  body.performer-signature #task-action-modal { padding: max(8px, env(safe-area-inset-top)) 8px 0; }
  body.performer-signature #task-action-modal .ops-modal-card { width: 100%; max-width: 620px; max-height: calc(100dvh - max(8px, env(safe-area-inset-top))); border-radius: 24px 24px 0 0; }
  body.performer-signature #task-action-modal .ops-modal-body { padding: 18px 17px max(24px, env(safe-area-inset-bottom)); }
}
@media (max-width: 720px) {
  body.performer-signature #performer-auth { padding: 0; align-items: stretch; background: var(--ops-surface); }
  body.performer-signature #performer-auth .performer-auth-shell { width: 100%; min-height: 100%; display: flex; border: 0; border-radius: 0; box-shadow: none; }
  body.performer-signature #performer-auth .performer-auth-intro { min-height: calc(62px + env(safe-area-inset-top)); max-height: calc(62px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 24px 0; background: var(--ops-surface); color: var(--ops-text); }
  body.performer-signature #performer-auth .performer-auth-intro::before,
  body.performer-signature #performer-auth .performer-auth-intro::after { content: none; }
  body.performer-signature #performer-auth .performer-auth-logo > span { width: 41px; height: 41px; border-radius: 13px; background: var(--sig-yellow-soft); color: var(--ops-text); font-size: 14px; }
  body.performer-signature #performer-auth .performer-auth-logo small { max-width: 112px; font-size: 10px; line-height: 1.3; }
  body.performer-signature #performer-auth .performer-auth-card { flex: 1 0 auto; width: min(460px, 100%); margin: 0 auto; padding: 4px 24px max(22px, env(safe-area-inset-bottom)); gap: 12px; border-radius: 0; }
  body.performer-signature #performer-auth .performer-signature-auth-art { height: clamp(150px, 24svh, 215px); margin: 0 -12px 5px; }
  body.performer-signature #performer-auth .performer-auth-head h2 { font-size: clamp(29px, 8vw, 35px); }
  body.performer-signature #performer-auth .performer-auth-head .ops-kicker { display: none; }
  body.performer-signature #performer-auth .performer-auth-lead { font-size: 13px; }
  body.performer-signature #performer-auth .performer-auth-connectivity { min-height: 22px; }
  body.performer-signature #performer-auth .performer-auth-session-note { font-size: 10px; }
  body.performer-signature #performer-auth.keyboard-open .performer-auth-intro,
  body.performer-signature #performer-auth.keyboard-open .performer-signature-auth-art { display: none; }
  body.performer-signature #performer-auth.keyboard-open .performer-auth-shell { min-height: 100%; }
  body.performer-signature #performer-auth.keyboard-open .performer-auth-card { min-height: 100%; padding: max(10px, env(safe-area-inset-top)) 20px max(12px, env(safe-area-inset-bottom)); justify-content: flex-start; gap: 9px; }
  body.performer-signature #performer-auth.keyboard-open .performer-auth-head h2 { font-size: 24px; }
  body.performer-signature #performer-auth.keyboard-open .performer-login-form { gap: 9px; }
  body.performer-signature #performer-auth.keyboard-open .performer-auth-field .ops-input { min-height: 48px; }
  body.performer-signature #performer-auth.keyboard-open .performer-auth-submit { min-height: 48px; }
  body.performer-signature #performer-auth.keyboard-open :is(.performer-auth-lead, .performer-auth-connectivity, .performer-auth-session-note, .performer-auth-help, .install-help-link) { display: none; }
}
@media (max-width: 720px) and (max-height: 720px) {
  body.performer-signature #performer-auth .performer-signature-auth-art { height: 134px; }
  body.performer-signature #performer-auth .performer-auth-card { gap: 9px; }
}
@media (max-width: 380px) {
  body.performer-signature #performer-app .worker-identity { gap: 8px; }
  body.performer-signature #performer-app .worker-copy b { max-width: 37vw; }
  body.performer-signature #performer-app .worker-copy small { max-width: 38vw; }
  body.performer-signature #performer-app .worker-live-cluster .ops-status { max-width: 29vw; font-size: 9px; padding-inline: 7px; }
  body.performer-signature #route-map-toolbar .route-map-chips button { padding-inline: 9px; font-size: 10px; }
  body.performer-signature #performer-auth .performer-auth-card { padding-inline: 20px; }
  body.performer-signature #performer-app .performer-nav button { font-size: 9px; }
  body.performer-signature #performer-app .performer-page-head h1 { font-size: 30px; }
  body.performer-signature #performer-app .shift-evidence-photos { gap: 8px; }
  body.performer-signature #performer-app .shift-evidence-photo-head { padding: 10px; }
  body.performer-signature #performer-app .shift-evidence-photo-empty { padding-inline: 10px; }
}
@media (max-height: 480px) and (orientation: landscape) {
  body.performer-signature #performer-app { grid-template-rows: 54px minmax(0, 1fr) calc(56px + env(safe-area-inset-bottom)); }
  body.performer-signature #performer-app .performer-nav { padding-block: 5px calc(5px + env(safe-area-inset-bottom)); }
  body.performer-signature #performer-app .performer-nav::before { top: 1px; bottom: calc(1px + env(safe-area-inset-bottom)); border-radius: 17px; }
  body.performer-signature #performer-app .performer-nav button { min-height: 44px; flex-direction: row; }
  body.performer-signature[data-performer-route="profile"] #performer-app { grid-template-rows: 54px minmax(0, 1fr) calc(56px + env(safe-area-inset-bottom)); }
  body.performer-signature #mission-inspector { max-height: calc(100% - 16px); width: min(420px, 58%); left: auto; }
  body.performer-signature #performer-bike-popover { max-height: calc(100% - 16px); width: min(420px, 58%); margin-left: auto; }
  body.performer-signature #performer-auth .performer-signature-auth-art { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.performer-signature #performer-bike-popover,
  body.performer-signature #performer-app :is(.ops-btn, .ops-icon-btn, .performer-nav button, .route-task-sla > i > span) { transition: none; }
}

/* Map-first mobile refinement preserves existing rich card geometry. */
@media (max-width: 900px) {
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app {
    grid-template-rows: calc(56px + env(safe-area-inset-top)) minmax(0, 1fr) calc(84px + env(safe-area-inset-bottom));
  }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .performer-topbar {
    min-height: 0; gap: 10px; padding: env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));
    background: var(--ops-surface); border-bottom-color: var(--ops-line-soft);
  }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .worker-identity { min-height: 44px; gap: 9px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .worker-avatar {
    width: 35px; height: 35px; border-radius: 12px; font-size: 11px; color: var(--ops-text);
  }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .worker-copy { gap: 1px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .worker-copy b { max-width: min(42vw, 225px); font-size: 13px; line-height: 1.25; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .worker-copy small { max-width: min(43vw, 230px); font-size: 10px; line-height: 1.3; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .worker-live-cluster .ops-status { min-height: 29px; padding-inline: 9px; font-size: 9px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .performer-nav button { min-height: 54px; padding-block: 4px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #route-map-toolbar { top: 10px; left: max(12px, env(safe-area-inset-left)); right: max(70px, env(safe-area-inset-right)); gap: 7px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #route-map-toolbar .route-map-search { min-height: 46px; border-radius: 14px; padding-inline: 15px; background: var(--ops-surface); }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #route-map-toolbar .route-map-chips { gap: 6px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #route-map-toolbar .route-map-chips button { min-height: 44px; border: 1px solid var(--ops-line); border-radius: 10px; background: var(--ops-surface); }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #route-map-toolbar .route-map-chips button.active { border-color: var(--sig-yellow-line); background: var(--sig-yellow-soft); }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .map-controls { top: 10px; right: max(12px, env(safe-area-inset-right)); gap: 9px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .map-controls .ops-icon-btn {
    width: 45px; min-height: 45px; border: 1px solid var(--ops-line-soft); border-radius: 50%; background: var(--ops-surface);
    box-shadow: var(--sig-map-shadow); color: var(--ops-text);
  }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .map-controls .ops-icon { width: 22px; height: 22px; stroke-width: 1.9; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .bike-energizer-glance { top: 120px; }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #mission-inspector { border-radius: 24px; background: var(--ops-surface); }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-bike-popover .performer-bike-card { background: var(--ops-surface); }
}
@media (max-width: 900px) and (max-height: 480px) and (orientation: landscape) {
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app { grid-template-rows: calc(48px + env(safe-area-inset-top)) minmax(0, 1fr) calc(56px + env(safe-area-inset-bottom)); }
  body.performer-signature.field-app-workspace[data-performer-route="work"] #performer-app .performer-nav button { min-height: 44px; flex-direction: row; }
}
/* City workflows: factual parking inventory and real report receipts. */
body.performer-signature .city-segments{display:flex;gap:4px;padding:4px;background:var(--ops-surface-2);border-radius:15px;min-width:0;overflow:auto;scrollbar-width:none}
body.performer-signature .city-segments button{flex:1;min-width:0;min-height:44px;padding:9px;border:0;border-radius:11px;color:var(--ops-muted);background:transparent;font:inherit;font-size:12px;font-weight:750;cursor:pointer}
body.performer-signature .city-segments button.active{background:var(--sig-yellow-soft,var(--ops-yellow-soft,#fff6ca));color:var(--ops-text)}
body.performer-signature .city-mechanic-categories{grid-column:1/-1;width:100%;pointer-events:auto}
body.performer-signature .city-work-list{display:grid;gap:12px;min-width:0}
body.performer-signature .city-parking-row{display:flex;align-items:center;gap:12px;min-height:88px;min-width:0;width:100%;padding:14px;border:1px solid var(--ops-line-soft);border-radius:19px;background:var(--ops-surface);color:var(--ops-text);font:inherit;text-align:left}
body.performer-signature .city-parking-row>span:not(.profile-next-icon){display:grid;gap:5px;flex:1;min-width:0}
body.performer-signature .city-parking-row b{font-size:15px;overflow-wrap:anywhere}
body.performer-signature .city-parking-row small{font-size:11px;color:var(--ops-muted);line-height:1.45;overflow-wrap:anywhere}
body.performer-signature .city-parking-row>span>span{font-size:12px}
body.performer-signature .city-parking-row>.ops-icon{flex:none;width:18px}
body.performer-signature .city-rebalance,.city-trip{padding:18px;display:grid;gap:12px}
body.performer-signature .city-rebalance :is(h2,h3,p),.city-trip p{margin:0;line-height:1.5}
body.performer-signature .city-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
body.performer-signature .city-stats>span{display:grid;gap:4px;font-size:11px;color:var(--ops-muted)}
body.performer-signature .city-stats b{font-size:17px;color:var(--ops-text)}
body.performer-signature .city-inline-actions{display:flex;gap:8px;flex-wrap:wrap}
body.performer-signature .city-inline-actions>*{flex:1}
body.performer-signature .city-inspection-form{display:grid;gap:16px}
body.performer-signature .city-inspection-form fieldset{border:0;margin:0;padding:0;display:grid;gap:16px;min-width:0}
body.performer-signature .city-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.performer-signature .city-photo-field{display:grid;gap:8px;padding:12px;border:1px solid var(--ops-line);border-radius:17px;min-width:0;background:var(--ops-surface-2);font-size:12px;font-weight:700}
body.performer-signature .city-photo-field:focus-within{outline:2px solid var(--ops-text);outline-offset:3px}
body.performer-signature .city-photo-field input{max-width:100%;font-size:10px}
body.performer-signature .city-photo-empty{display:grid;place-items:center;gap:8px;min-height:100px;color:var(--ops-muted)}
body.performer-signature :is(.city-photo-field,.city-finding,.city-inspection-history,.city-repair-source) img{display:block;width:100%;max-height:230px;object-fit:contain;border-radius:12px;background:var(--ops-surface-2)}
body.performer-signature .city-finding{display:grid;gap:12px;padding:16px;border:1px solid var(--ops-line);border-radius:18px;margin:0}
body.performer-signature :is(.city-inspection-note,.city-report-state){font-size:12px;line-height:1.5;color:var(--ops-muted)}
body.performer-signature .city-inspection-history{display:grid;gap:16px}
body.performer-signature .city-photo-pair figure{margin:0;min-width:0}
body.performer-signature .city-repair-source{padding:14px;display:grid;gap:10px;border:1px solid var(--ops-line-soft);border-radius:18px;background:var(--ops-surface)}
body.performer-signature .city-repair-source article{display:grid;gap:8px}
body.performer-signature .city-repair-source img{max-height:130px}
body.performer-signature .city-repair-source a{color:var(--ops-text);font-size:12px}
@media(max-width:360px){body.performer-signature .city-parking-row{padding:11px;gap:8px}body.performer-signature .city-parking-row>.profile-next-icon{display:none}body.performer-signature .city-segments button{font-size:11px;padding:7px}body.performer-signature .city-stats b{font-size:15px}}
