:root {
  --bg: #061424;
  --bg2: #0b2440;
  --panel: rgba(255,255,255,.96);
  --panelDark: rgba(9, 28, 50, .82);
  --line: rgba(255,255,255,.14);
  --text: #102033;
  --muted: #66758a;
  --green: #38c86b;
  --green2: #8ee45f;
  --blue: #1d7fe6;
  --cyan: #2dd4bf;
  --amber: #f8b84e;
  --red: #f05d5e;
  --purple: #8b5cf6;
  --shadow: 0 24px 70px rgba(0,0,0,.30);
  --radius: 22px;
  --radius2: 14px;
}

* { box-sizing: border-box; }
.srOnly {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 12% 4%, rgba(56,200,107,.30), transparent 28%),
    radial-gradient(circle at 88% 0%, rgba(29,127,230,.28), transparent 32%),
    linear-gradient(135deg, var(--bg), var(--bg2) 54%, #050d18);
  min-height: 100vh;
  color: #fff;
}

.shell { max-width: 1480px; margin: 0 auto; padding: 22px; }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.045));
  box-shadow: var(--shadow);
  position: sticky;
  top: 10px;
  z-index: 50;
  backdrop-filter: blur(16px);
}

.brand { display: flex; align-items: center; gap: 16px; min-width: 0; }
.logo {
  width: 76px;
  height: 76px;
  object-fit: contain;
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  padding: 4px;
  flex: 0 0 auto;
}
.brand h1 { margin: 0; font-size: clamp(1.45rem, 2.5vw, 2.45rem); line-height: 1; letter-spacing: -.04em; }
.brand h1 span { color: var(--green2); }
.brand p { margin: 6px 0 0; color: rgba(255,255,255,.72); font-size: .95rem; }
.brand small { display: block; margin-top: 4px; color: rgba(255,255,255,.54); }

.statusBox {
  display: grid;
  grid-template-columns: auto auto;
  gap: 10px;
  justify-content: end;
  align-items: center;
}
.headerOperatorAction {
  grid-column: 1 / 2;
  grid-row: 1;
}
.statusBox #syncPill {
  grid-column: 2 / 3;
  grid-row: 1;
}
.statusBox .recordPill {
  grid-column: 1 / 2;
  grid-row: 2;
}
.statusBox .photoPill {
  grid-column: 2 / 3;
  grid-row: 2;
  justify-self: start;
}
.statusBox .demoAction {
  grid-column: 1 / 3;
  grid-row: 3;
  width: 100%;
  min-height: 38px;
  border-radius: 12px;
  box-shadow: none;
}
.statusBox .demoAction[hidden], .buyerDemoBtn[hidden] { display: none !important; }
.headerOperatorAction,
.syncPill,
.countPill {
  min-width: 118px;
  min-height: 38px;
  border-radius: 12px;
  padding: 9px 12px;
  box-shadow: none;
  justify-content: center;
}
.syncPill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255,255,255,.20);
  background: rgba(255,255,255,.08);
  color: #fff;
  font-weight: 800;
  white-space: nowrap;
}
.syncDot { width: 11px; height: 11px; border-radius: 999px; background: var(--red); box-shadow: 0 0 18px var(--red); }
.syncPill.synced .syncDot { background: var(--green); box-shadow: 0 0 18px var(--green); }
.countPill {
  color: #cce6ff;
  border: 1px solid rgba(45,212,191,.26);
  background: rgba(45,212,191,.10);
  font-weight: 750;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
}

.actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-start;
}
button, .btn {
  appearance: none;
  border: 0;
  cursor: pointer;
  border-radius: 14px;
  padding: 11px 14px;
  font-weight: 850;
  color: #071426;
  background: linear-gradient(135deg, var(--green2), var(--green));
  box-shadow: 0 12px 30px rgba(56,200,107,.25);
  transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
}
button:hover { transform: translateY(-1px); }
button.secondary { background: rgba(255,255,255,.11); color: #fff; border: 1px solid rgba(255,255,255,.18); box-shadow: none; }
button.blue { background: linear-gradient(135deg, #48b5ff, var(--blue)); color: #fff; }
button.green { background: linear-gradient(135deg, #8ee45f, #38c86b); color: #052915; }
button.warn { background: rgba(248,184,78,.16); color: #fff; border: 1px solid rgba(248,184,78,.32); box-shadow: none; }
button.danger { background: rgba(240,93,94,.16); color: #fff; border: 1px solid rgba(240,93,94,.34); box-shadow: none; }
button.small { padding: 9px 11px; border-radius: 12px; font-size: .86rem; }


.gpsNotice {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(72, 181, 255, .30);
  background: linear-gradient(135deg, rgba(72,181,255,.15), rgba(56,200,107,.10));
  color: rgba(255,255,255,.88);
  font-size: .9rem;
  line-height: 1.45;
}
.gpsNotice strong { color: #bff6d1; }
.gpsNotice code { color: #d6ecff; background: rgba(255,255,255,.10); padding: 1px 5px; border-radius: 6px; }
.locationActions button.secondary { color: #102033; background: #ffffff; border: 1px solid #cfe0ef; box-shadow: 0 8px 20px rgba(10,37,64,.08); }
.locationActions button.secondary:hover { background: #f0f7ff; }
.gpsFallback { color: #0b315b; background: #fff8e8; border: 1px solid #f4d38e; border-radius: 14px; padding: 10px 12px; margin-top: 10px; font-size: .84rem; line-height: 1.35; display: none; }
.locationBlock.gps-blocked .gpsFallback { display: block; }

.main { display: grid; grid-template-columns: 310px 1fr; gap: 18px; margin-top: 18px; }
.sidebar {
  position: sticky;
  top: 130px;
  align-self: start;
  border-radius: 24px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.08);
  padding: 14px;
  backdrop-filter: blur(16px);
  max-height: calc(100vh - 150px);
  overflow: auto;
}
.tabs { display: grid; gap: 9px; }
.tab-group-label {
  margin: 6px 4px 2px;
  color: rgba(255,255,255,.78);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.tab-group-note {
  margin: -2px 4px 4px;
  color: rgba(255,255,255,.56);
  font-size: .76rem;
  line-height: 1.25;
}
.tab-btn {
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  text-align: left;
  color: #fff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: none;
  border-radius: 16px;
  padding: 12px;
  gap: 12px;
  min-height: 64px;
}
.tab-btn.active { background: linear-gradient(135deg, rgba(56,200,107,.28), rgba(29,127,230,.20)); border-color: rgba(142,228,95,.45); }
.tab-btn .ico {
  flex: 0 0 48px;
  max-width: 48px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
  font-size: .76rem;
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: .01em;
  text-align: center;
  overflow: hidden;
  overflow-wrap: anywhere;
}
.tab-btn > span:not(.ico) { display: block; min-width: 0; flex: 1 1 auto; line-height: 1.12; }
.tab-btn small { display: block; color: rgba(255,255,255,.58); font-size: .73rem; font-weight: 650; margin-top: 2px; }

.content { min-width: 0; }
.section { display: none; animation: fadeIn .2s ease; }
.section.active { display: block; }
@keyframes fadeIn { from { opacity: .55; transform: translateY(3px); } to { opacity: 1; transform: none; } }

.card {
  background: var(--panel);
  color: var(--text);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,.50);
  overflow: hidden;
}
.section-head { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.section-head h2 { margin: 0; font-size: clamp(1.3rem, 2.2vw, 1.9rem); letter-spacing: -.025em; color: #092341; }
.section-head p { margin: 7px 0 0; color: var(--muted); max-width: 860px; line-height: 1.45; }
.tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  padding: 8px 11px;
  background: #e9f8ef;
  color: #14733a;
  font-weight: 850;
  white-space: nowrap;
  border: 1px solid #cef0d9;
  font-size: .86rem;
}

.grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.field { grid-column: span 4; min-width: 0; }
.field.wide { grid-column: span 8; }
.field.full { grid-column: 1 / -1; }
.field.half { grid-column: span 6; }
.field.third { grid-column: span 4; }
.field.quarter { grid-column: span 3; }
label { display: block; font-weight: 850; font-size: .87rem; margin: 0 0 8px; color: #0f2947; }
input, select, textarea {
  width: 100%;
  border: 1px solid #d7e1ec;
  border-radius: 14px;
  padding: 12px 13px;
  font: inherit;
  color: #11233a;
  background: #fff;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(29,127,230,.12); }
textarea { min-height: 88px; resize: vertical; }
.hint { margin-top: 7px; color: var(--muted); font-size: .80rem; line-height: 1.35; }
.otherField { display: none; margin-top: 8px; }
.otherField.show { display: block; }

.group {
  grid-column: 1 / -1;
  border-radius: 18px;
  border: 1px solid #e0e9f2;
  background: #f8fbff;
  padding: 14px;
}
.group h3 { margin: 0 0 8px; color: #0a294b; font-size: 1rem; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #d8e5ef;
  background: #fff;
  border-radius: 999px;
  padding: 9px 11px;
  color: #123250;
  font-weight: 700;
  user-select: none;
}
.chip input { width: auto; accent-color: var(--green); }

.locationBlock {
  grid-column: 1 / -1;
  border: 1px solid rgba(29,127,230,.20);
  background: linear-gradient(135deg, #f4faff, #f8fffa);
  border-radius: 18px;
  padding: 14px;
}
.locationTop { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.locationTop h3 { margin: 0; color: #0b315b; font-size: 1rem; }
.locationActions { display: flex; gap: 8px; flex-wrap: wrap; }
.miniGrid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px; }

.photoBox {
  grid-column: 1 / -1;
  border: 1px dashed #b9cada;
  border-radius: 18px;
  padding: 14px;
  background: #fbfdff;
}
.photoTop { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.photoPreview { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.guidedPhotoBox {
  margin-top: 12px;
  border-color: rgba(91, 224, 139, .35);
  background: linear-gradient(135deg, rgba(16, 48, 76, .96), rgba(16, 77, 68, .88));
  color: #eaf7ff;
}
.guidedPhotoBox label { color: #fff; }
.guidedPhotoBox .hint { color: rgba(234, 247, 255, .74); }
.guidedPhotoBox input[type="file"] {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .18);
  color: #fff;
}
.thumb {
  width: 86px;
  height: 86px;
  border-radius: 14px;
  object-fit: cover;
  border: 1px solid #d9e3ec;
  background: #eef4fa;
}

.sectionActions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
  padding-top: 16px;
  border-top: 1px solid #e0e8f0;
}
.sectionActions .left, .sectionActions .right { display: flex; gap: 9px; flex-wrap: wrap; }
#review .sectionActions button.secondary {
  color: #0b2d61;
  background: #ffffff;
  border: 1px solid #cfe0ef;
  box-shadow: 0 8px 18px rgba(10,37,64,.08);
}
#review .sectionActions button.secondary:hover { background: #f0f7ff; }
#review .sectionActions button.danger {
  color: #b4232a;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  box-shadow: none;
}
#review .sectionActions button.danger:hover { background: #ffe4e6; }
#review .sectionActions button.blue {
  color: #fff;
  background: linear-gradient(135deg, #48b5ff, var(--blue));
  border: 1px solid rgba(29,127,230,.18);
  box-shadow: 0 10px 24px rgba(29,127,230,.22);
}
.finishFarmerIntakeBtn, #finishFarmerIntakeBtn, #treeGuidedFinishBtn, #doctorGuidedFinishBtn { background: linear-gradient(135deg, #b6f36d, #38c86b) !important; color: #052915 !important; border: 1px solid rgba(255,255,255,.18) !important; box-shadow: 0 12px 26px rgba(56,200,107,.24) !important; font-weight: 950 !important; }
.finishFarmerIntakeBtn:hover, #finishFarmerIntakeBtn:hover { transform: translateY(-1px); filter: brightness(1.04); }
.shortcutVisibilityPanel {
  margin: 16px 0 0;
  padding: 14px;
  border: 1px solid #d8e4f0;
  border-radius: 18px;
  background: #f8fbff;
}
.shortcutVisibilityPanel h3 {
  margin: 0 0 4px;
  color: #0b315b;
  font-size: 1rem;
}
.shortcutVisibilityPanel p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.35;
}
.shortcutVisibilityGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.visibilityGroupTitle {
  margin: 16px 0 8px;
  color: #0b315b;
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.shortcutToggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #d7e4ef;
  border-radius: 14px;
  background: #fff;
  color: #102033;
  font-weight: 850;
}
.shortcutToggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.shortcutToggleText {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.shortcutToggleText small {
  color: #63738a;
  font-size: .73rem;
  font-weight: 750;
}
.shortcutSwitch {
  flex: 0 0 auto;
  width: 48px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid #c6d7e8;
  background: #dce6f0;
  position: relative;
  transition: background .16s ease, border-color .16s ease;
}
.shortcutSwitch:after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 35, 60, .20);
  transition: transform .16s ease;
}
.shortcutToggle input:checked + .shortcutSwitch {
  background: linear-gradient(135deg, #8ee45f, #38c86b);
  border-color: #38c86b;
}
.shortcutToggle input:checked + .shortcutSwitch:after {
  transform: translateX(22px);
}
.tab-btn.shortcut-hidden { display: none !important; }

.guidedShell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  gap: 18px;
  align-items: start;
}
.guidedShell.summary-panel-hidden {
  grid-template-columns: minmax(0, 1fr);
}
.guidedWheel {
  position: sticky;
  top: 150px;
  border-radius: 26px;
  background: linear-gradient(180deg, #071426, #102f50);
  color: #fff;
  padding: 18px;
  box-shadow: 0 18px 42px rgba(5, 19, 36, .20);
  overflow: hidden;
}
.farmerWheelTop {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.farmerWheelTitleBlock {
  min-width: 0;
  flex: 1 1 auto;
}
.farmerWheelTop h3 {
  margin: 0;
  font-size: clamp(1.25rem, 3.8vw, 1.9rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}
.farmerWheelTop p {
  margin: 5px 0 0;
  color: rgba(255,255,255,.68);
  line-height: 1.32;
  font-size: .92rem;
}
.farmerWheelMeta {
  flex: 0 0 auto;
  color: #b9d7f1;
  font-size: .82rem;
  font-weight: 850;
  white-space: nowrap;
  padding-top: 3px;
  text-align: right;
}
.guidedMainAppBtn {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border-radius: 999px;
  padding: 0;
  font-size: 1.24rem;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 10px 24px rgba(0,0,0,.18);
}
.guidedMainAppBtn .backIcon {
  display: inline-block;
  transform: translateX(-1px);
}
.farmerWheelSetNav {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 10px;
  margin-bottom: 12px;
  scrollbar-width: thin;
}
.farmerWheelSetBtn {
  flex: 0 0 auto;
  padding: 8px 10px;
  border-radius: 999px;
  color: #ffe5a8;
  background: rgba(248,184,78,.12);
  border: 1px solid rgba(248,184,78,.28);
  box-shadow: none;
  font-size: .66rem;
  line-height: 1.05;
}
.farmerWheelSetBtn.active {
  color: #231504;
  background: linear-gradient(135deg, #ffd36b, #f8b84e);
  border-color: rgba(255,255,255,.26);
}
.farmerWheelSectionNav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: -4px 0 10px;
}
.farmerWheelSectionBtn {
  min-height: 34px;
  padding: 7px 8px;
  border-radius: 12px;
  color: rgba(255,255,255,.80);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: none;
  font-size: .78rem;
  line-height: 1.05;
  overflow-wrap: anywhere;
}
.farmerWheelSectionBtn.active {
  color: #052915;
  background: linear-gradient(135deg, #8ee45f, #38c86b);
  border-color: rgba(255,255,255,.20);
}
.farmerWheelLabels {
  display: grid;
  gap: 8px;
  margin-bottom: 8px;
}
.farmerWheelLabel {
  min-width: 0;
  border-radius: 11px;
  padding: 6px 7px;
  color: rgba(255,255,255,.72);
  background: rgba(255,255,255,.07);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .07em;
  line-height: 1.1;
  text-transform: uppercase;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: all .16s ease;
}
.farmerWheelLabel.active {
  color: #fff;
  background: rgba(72,181,255,.24);
  border: 1px solid rgba(72,181,255,.28);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  font-size: .76rem;
}
.farmerWheelGrid {
  --wheel-row-height: 54px;
  --wheel-height: clamp(360px, 60vh, 720px);
  position: relative;
  display: grid;
  gap: 8px;
  min-height: var(--wheel-height);
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(3, 10, 20, .82);
}
.farmerWheelGrid:before,
.farmerWheelGrid:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 24%;
  pointer-events: none;
  z-index: 3;
}
.farmerWheelGrid:before { top: 0; background: linear-gradient(180deg, rgba(3,10,20,.98), rgba(3,10,20,0)); }
.farmerWheelGrid:after { bottom: 0; background: linear-gradient(0deg, rgba(3,10,20,.98), rgba(3,10,20,0)); }
.farmerWheelFocus {
  position: absolute;
  left: 9px;
  right: 9px;
  top: 50%;
  height: var(--wheel-row-height);
  transform: translateY(-50%);
  z-index: 1;
  border-radius: 16px;
  border: 1px solid rgba(142,228,95,.46);
  background: linear-gradient(135deg, rgba(72,181,255,.20), rgba(142,228,95,.16));
  pointer-events: none;
}
.farmerWheelColumn {
  position: relative;
  z-index: 2;
  height: var(--wheel-height);
  overflow-y: auto;
  scroll-snap-type: y proximity;
  scrollbar-width: none;
  padding: calc((var(--wheel-height) - var(--wheel-row-height)) / 2) 0;
  border-left: 1px solid rgba(255,255,255,.07);
  overscroll-behavior-y: contain;
}
.farmerWheelColumn:first-of-type { border-left: 0; }
.farmerWheelColumn::-webkit-scrollbar { display: none; }
.farmerWheelItem {
  height: var(--wheel-row-height);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  scroll-snap-align: center;
  color: rgba(255,255,255,.48);
  font-weight: 850;
  font-size: clamp(.84rem, 2.2vw, 1.16rem);
  line-height: 1.08;
  text-align: center;
  cursor: pointer;
  user-select: none;
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}
.farmerWheelItem.near { color: rgba(255,255,255,.72); }
.farmerWheelItem.selected { color: #fff; text-shadow: 0 0 18px rgba(72,181,255,.35); }
.farmerWheelItem.multi-selected {
  color: #bff6d1;
  background: rgba(56,200,107,.13);
  box-shadow: inset 0 0 0 1px rgba(142,228,95,.22);
}
.farmerWheelItem.multi-selected:before {
  content: "✓";
  margin-right: 5px;
  color: #8ee45f;
}
.farmerWheelItem.geo-action {
  color: #d9f2ff;
  background: rgba(72,181,255,.09);
}
.farmerWheelItem.text-entry { font-style: italic; color: rgba(255,255,255,.78); }
.farmerWheelSide {
  border-radius: 24px;
  border: 1px solid #d8e7f4;
  background: #f8fbff;
  padding: 12px;
  max-height: calc(100vh - 180px);
  overflow: auto;
  transition: max-height .18s ease, padding .18s ease;
}
.farmerWheelSideHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  user-select: none;
}
.farmerWheelSideHead h3 {
  margin: 0;
  color: #0b2d61;
  font-size: 1rem;
  letter-spacing: -.015em;
}
.farmerWheelSideHead span {
  color: #52677d;
  font-weight: 850;
  font-size: .78rem;
}
.farmerWheelSide.collapsed .farmerWheelSideBody {
  display: none;
}
.farmerWheelSide.summary-hidden {
  display: none;
}
.farmerWheelSideTitle {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.farmerWheelReview {
  margin-top: 12px;
  display: grid;
  gap: 7px;
  max-height: 360px;
  overflow: auto;
}
.farmerWheelReviewCard {
  border: 1px solid #d7e5f2;
  border-radius: 12px;
  padding: 8px 9px;
  background: #fff;
  color: #102033;
  box-shadow: none;
  text-align: left;
  display: block;
  justify-content: initial;
}
.farmerWheelReviewCard strong { display: block; color: #0b2d61; margin-bottom: 3px; font-size: .82rem; }
.farmerWheelReviewCard span { display: block; color: #425a74; font-size: .74rem; line-height: 1.22; }
.farmerWheelQuickPaste {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 9px;
  margin-top: 12px;
}
.farmerWheelQuickPaste[hidden] { display: none !important; }
.farmerWheelQuickPaste input { min-width: 0; }
.farmerWheelActions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.farmerWheelActions button {
  min-height: 48px;
  border-radius: 15px;
}
#guidedEditBtn {
  display: none;
}
.farmerWheelSlider {
  margin-top: 10px;
  padding: 13px 12px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.13);
  position: relative;
  z-index: 5;
}
.farmerWheelSlider label {
  color: #dceeff;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: .82rem;
  margin-bottom: 7px;
}
.farmerWheelSlider input[type=range] {
  width: 100%;
  height: 34px;
  accent-color: #48b5ff;
  cursor: pointer;
  touch-action: pan-x;
}
.farmerWheelSlider input[type=range]::-webkit-slider-thumb {
  width: 26px;
  height: 26px;
}
.farmerWheelSlider input[type=range]::-moz-range-thumb {
  width: 26px;
  height: 26px;
}
.farmerWheelSliderTicks {
  display: grid;
  gap: 4px;
  margin-top: 5px;
  color: rgba(255,255,255,.55);
  font-size: .68rem;
  font-weight: 850;
  text-align: center;
}
.farmerWheelSliderTicks span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.farmerWheelHint {
  margin-top: 10px;
  color: rgba(255,255,255,.70);
  font-size: .84rem;
  line-height: 1.36;
}
.farmerWheelGrid.reviewing {
  display: block;
  overflow-y: auto;
  padding: 12px;
  min-height: var(--wheel-height);
  scroll-snap-type: none;
}
.farmerWheelGrid.reviewing:before,
.farmerWheelGrid.reviewing:after,
.farmerWheelGrid.reviewing .farmerWheelFocus {
  display: none;
}
.farmerWheelGrid.detail-table {
  --detail-row-height: 74px;
  --detail-focus-height: 112px;
  display: block;
  overflow-y: auto;
  padding: calc((var(--wheel-height) - var(--detail-focus-height)) / 2) 8px;
  height: var(--wheel-height);
  min-height: var(--wheel-height);
  max-height: var(--wheel-height);
  scroll-snap-type: y proximity;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
  scroll-padding-block: calc((var(--wheel-height) - var(--detail-row-height)) / 2);
}
.farmerWheelGrid.detail-table::-webkit-scrollbar { display: none; }
.farmerWheelGrid.detail-table:before,
.farmerWheelGrid.detail-table:after,
.farmerWheelGrid.detail-table .farmerWheelFocus {
  display: none;
}
.farmerWheelDetailRow {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: var(--detail-row-height);
  display: grid;
  grid-template-columns: minmax(82px, 1.05fr) repeat(3, minmax(56px, .85fr));
  gap: 1px;
  align-items: stretch;
  margin: 0 0 8px;
  padding: 0;
  border-radius: 15px;
  overflow: hidden;
  scroll-snap-align: center;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: none;
  color: rgba(255,255,255,.42);
  opacity: .56;
  transform: scale(.98);
  transition: opacity .18s ease, transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.farmerWheelDetailRow.selected {
  color: rgba(255,255,255,.74);
  border-color: rgba(142,228,95,.34);
  background: linear-gradient(135deg, rgba(72,181,255,.16), rgba(56,200,107,.12));
  opacity: .74;
}
.farmerWheelDetailRow.active {
  min-height: var(--detail-focus-height);
  color: #fff;
  opacity: 1;
  transform: scale(1.015);
  border-color: rgba(72,181,255,.56);
  box-shadow: 0 0 0 1px rgba(72,181,255,.18), 0 16px 40px rgba(0,0,0,.20);
}
.farmerWheelDetailRow.near {
  opacity: .78;
  color: rgba(255,255,255,.72);
}
.farmerWheelDetailRow.complete {
  background: linear-gradient(135deg, rgba(72,181,255,.24), rgba(56,200,107,.24));
}
.farmerWheelDetailCell {
  min-width: 0;
  min-height: var(--detail-row-height);
  border: 0;
  border-radius: 0;
  padding: 8px 7px;
  background: rgba(255,255,255,.035);
  color: inherit;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
  line-height: 1.05;
  font-weight: 850;
  overflow-wrap: anywhere;
  transition: background .18s ease, color .18s ease;
}
.farmerWheelDetailRow.active .farmerWheelDetailCell {
  min-height: var(--detail-focus-height);
}
.farmerWheelDetailCell small {
  color: rgba(255,255,255,.48);
  font-size: .58rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1;
}
.farmerWheelDetailCell b {
  font-size: clamp(.78rem, 3.4vw, 1rem);
  line-height: 1.08;
}
.farmerWheelDetailCell.active-picker {
  padding: 0;
  background: rgba(72,181,255,.16);
}
.farmerWheelGrid.tree-source-wheel {
  --detail-row-height: 68px;
  --detail-focus-height: 106px;
}
.farmerWheelGrid.tree-source-wheel .farmerWheelDetailRow {
  grid-template-columns: repeat(var(--tree-source-cols, 5), minmax(0, 1fr));
}
.farmerWheelGrid.tree-source-wheel .farmerWheelDetailCell {
  min-height: var(--detail-row-height);
  padding: 7px 5px;
}
.farmerWheelGrid.tree-source-wheel .farmerWheelDetailRow.active .farmerWheelDetailCell {
  min-height: var(--detail-focus-height);
}
.farmerWheelGrid.tree-source-wheel .farmerWheelDetailCell b {
  max-width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.farmerWheelCellPicker {
  width: 100%;
  height: var(--detail-focus-height);
  overflow-y: auto;
  scroll-snap-type: y proximity;
  scrollbar-width: none;
  padding: 41px 0;
}
.farmerWheelCellPicker::-webkit-scrollbar { display: none; }
.farmerWheelCellOption {
  width: 100%;
  height: 32px;
  border: 0;
  border-radius: 0;
  padding: 0 5px;
  background: transparent;
  color: rgba(255,255,255,.56);
  box-shadow: none;
  scroll-snap-align: center;
  font-size: clamp(.72rem, 3.2vw, .96rem);
  line-height: 1;
  overflow-wrap: anywhere;
}
.farmerWheelCellOption.selected {
  color: #fff;
  text-shadow: 0 0 14px rgba(72,181,255,.36);
}
.farmerWheelDetailCell.item b:before {
  content: "+";
  color: rgba(255,255,255,.34);
  margin-right: 4px;
}
.farmerWheelDetailRow.selected .farmerWheelDetailCell.item b:before {
  color: #8ee45f;
}
.farmerWheelReviewRow {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(76px, .28fr) minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin-bottom: 9px;
  padding: 10px;
  border-radius: 15px;
  color: #fff;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.13);
  box-shadow: none;
  text-align: left;
}
.farmerWheelReviewRow strong {
  color: #bff6d1;
  font-size: .82rem;
  line-height: 1.08;
}
.farmerWheelReviewRow span {
  color: rgba(255,255,255,.82);
  font-size: .82rem;
  line-height: 1.22;
  overflow-wrap: anywhere;
}
.guidedWheel:before, .guidedWheel:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 48px;
  pointer-events: none;
  z-index: 1;
}
.guidedWheel:before { top: 0; background: linear-gradient(180deg, rgba(7,20,38,.94), rgba(7,20,38,0)); }
.guidedWheel:after { bottom: 0; background: linear-gradient(0deg, rgba(16,47,80,.94), rgba(16,47,80,0)); }
.guidedWheelItem {
  position: relative;
  z-index: 2;
  min-height: 70px;
  border-radius: 18px;
  padding: 12px 14px;
  margin: 8px 0;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.07);
  opacity: .58;
  transform: scale(.95);
  transition: transform .18s ease, opacity .18s ease, background .18s ease;
}
.guidedWheelItem.active {
  opacity: 1;
  transform: scale(1);
  background: linear-gradient(135deg, rgba(72,181,255,.34), rgba(142,228,95,.18));
  border-color: rgba(255,255,255,.28);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
}
.guidedWheelItem small { display: block; color: rgba(255,255,255,.58); font-weight: 750; margin-bottom: 3px; text-transform: uppercase; letter-spacing: .10em; font-size: .67rem; }
.guidedWheelItem b { display: block; font-size: 1.04rem; line-height: 1.15; }
.guidedPanel {
  border-radius: 24px;
  border: 1px solid #d8e7f4;
  background: #f8fbff;
  padding: 18px;
}
.guidedSearchRow {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  margin: 12px 0;
}
#guidedVoiceBtn { display: none; }
.guidedMeta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  color: var(--muted);
  font-weight: 750;
  margin-bottom: 8px;
}
.guidedQuestion h3 { margin: 0; color: #092341; font-size: 1.34rem; }
.guidedQuestion p { margin: 7px 0 0; color: var(--muted); line-height: 1.4; }
.guidedValueInput { margin-top: 14px; }
.guidedOptionList {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 14px;
}
.guidedOption {
  color: #123250;
  background: #fff;
  border: 1px solid #d8e5ef;
  box-shadow: none;
  border-radius: 999px;
  padding: 10px 13px;
  font-weight: 850;
}
.guidedOption.selected {
  background: linear-gradient(135deg, #38c86b, #8ee45f);
  color: #042715;
  border-color: rgba(4,39,21,.18);
}
.guidedSelected {
  margin-top: 14px;
  border-radius: 16px;
  padding: 12px;
  background: #eef7ff;
  border: 1px solid #d2e7fa;
  color: #21405d;
  line-height: 1.35;
}
.guidedControls {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #dce9f4;
}
@media (max-width: 760px) {
  body { overflow-x: hidden; }
  .shell { padding: 0; }
  .hero { position: static; border-radius: 0; padding: 10px; }
  .main { display: block; margin-top: 0; }
  .sidebar { display: none; }
  .content { width: 100%; }
  .section#guidedfarmer > .card {
    min-height: 100svh;
    border-radius: 0;
    padding: 0;
  }
  #guidedfarmer .section-head {
    display: none;
  }
  .guidedShell { grid-template-columns: 1fr; }
  .guidedWheel {
    position: static;
    border-radius: 0;
    min-height: 100svh;
    padding: 12px 14px 16px;
    display: flex;
    flex-direction: column;
  }
  .farmerWheelTop { flex: 0 0 auto; }
  .farmerWheelSectionNav { flex: 0 0 auto; }
  .farmerWheelSetNav { flex: 0 0 auto; }
  .farmerWheelLabels { flex: 0 0 auto; gap: 4px; }
  .farmerWheelActions { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
  .farmerWheelActions button { min-height: 44px; padding-inline: 6px; font-size: .76rem; }
  .farmerWheelGrid {
    --wheel-height: max(360px, 60svh);
    --wheel-row-height: 56px;
    gap: 0;
    flex: 0 0 auto;
  }
  .farmerWheelLabel { font-size: .62rem; padding-inline: 4px; }
  .farmerWheelLabel.active { font-size: .70rem; }
  .farmerWheelItem { font-size: clamp(.78rem, 3.7vw, 1.04rem); padding-inline: 3px; }
  .farmerWheelQuickPaste { grid-template-columns: 1fr; }
  .farmerWheelHint { font-size: .76rem; }
  .farmerWheelSide {
    position: static;
    margin: 8px 12px 14px;
    max-height: 56svh;
    box-shadow: 0 18px 60px rgba(0,0,0,.18);
  }
  .farmerWheelSide.collapsed {
    max-height: 50px;
    overflow: hidden;
  }
  .guidedSearchRow { grid-template-columns: 1fr auto; }
  .guidedMeta, .guidedQuestion, .guidedSelected, .guidedControls, .farmerWheelSide .hint { display: none; }
  .farmerWheelReview { max-height: 38svh; }
}

.reviewPanel {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.metric {
  border-radius: 18px;
  padding: 14px;
  background: linear-gradient(135deg, rgba(7,20,38,.92), rgba(10,46,78,.88));
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
}
.metric b { display: block; font-size: 1.7rem; color: var(--green2); margin-bottom: 4px; }
.metric span { color: rgba(255,255,255,.72); font-size: .86rem; }

.records {
  margin-top: 16px;
  border-radius: 18px;
  background: rgba(7,20,38,.04);
  border: 1px solid #dfebf5;
  overflow: hidden;
}
.detailRows {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  margin-top: 8px;
}
.detailRow {
  border: 1px solid #d7e5f2;
  background: #f8fbff;
  border-radius: 16px;
  padding: 12px;
}
.detailRowHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.detailRowHead strong { color: #0b2d61; }
.detailGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.detailGrid .field { grid-column: auto; margin: 0; }
.detailGrid .field span { display: block; color: #425a74; font-size: .75rem; margin-bottom: 5px; }
.detailGrid input, .detailGrid select { min-height: 38px; padding: 8px 10px; border-radius: 11px; }
.relatedContactHint {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.35;
}
table { width: 100%; border-collapse: collapse; font-size: .88rem; }
th, td { padding: 10px 12px; border-bottom: 1px solid #e7eef5; text-align: left; vertical-align: top; }
th { background: #f0f6fb; color: #173552; }
td { color: #213950; }

.mapModal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 120;
  background: rgba(3, 9, 18, .72);
  padding: 22px;
  overflow: auto;
}
.mapModal.show { display: block; }
.mapShell {
  max-width: 1120px;
  margin: 0 auto;
  background: #fff;
  color: var(--text);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 36px 120px rgba(0,0,0,.46);
}
.mapHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #08172a, #123d69);
  color: #fff;
}
.mapHeader h3 { margin: 0; }
.mapBody { display: grid; grid-template-columns: 1fr 340px; gap: 0; }
.mapCanvas { min-height: 520px; position: relative; background: #dceef9; }
#leafletMap { min-height: 520px; height: 100%; width: 100%; background: #dceef9; }
.leaflet-container { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
/* Use a normal arrow cursor for map point selection instead of Leaflet's hand/grab cursor. */
#leafletMap.leaflet-container,
#leafletMap .leaflet-pane,
#leafletMap .leaflet-tile,
#leafletMap .leaflet-marker-pane,
#leafletMap .leaflet-overlay-pane,
#leafletMap .leaflet-shadow-pane,
#leafletMap .leaflet-popup-pane { cursor: default !important; }
#leafletMap .leaflet-control,
#leafletMap .leaflet-control * { cursor: pointer !important; }
.mockMap { cursor: default; }
.mapModal.expanded { padding: 10px; }
.mapModal.expanded .mapShell {
  max-width: none;
  width: calc(100vw - 20px);
  min-height: calc(100vh - 20px);
  display: flex;
  flex-direction: column;
}
.mapModal.expanded .mapBody {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 370px;
  min-height: 0;
}
.mapModal.expanded .mapCanvas,
.mapModal.expanded #leafletMap,
.mapModal.expanded .mockMap {
  min-height: 0;
  height: calc(100vh - 94px);
}
.mockMap {
  display: none;
  min-height: 520px;
  position: relative;
  overflow: hidden;
  cursor: default;
  background:
    radial-gradient(circle at 30% 24%, rgba(56,200,107,.30), transparent 16%),
    radial-gradient(circle at 72% 62%, rgba(45,212,191,.25), transparent 18%),
    linear-gradient(135deg, #dceef9, #edf8ef);
}
.mockMap:before {
  content: "";
  position: absolute;
  inset: 30px;
  border-radius: 44% 56% 46% 54%;
  background:
    linear-gradient(45deg, transparent 0 47%, rgba(255,255,255,.78) 48% 52%, transparent 53%),
    linear-gradient(105deg, transparent 0 48%, rgba(255,255,255,.78) 49% 52%, transparent 53%),
    radial-gradient(circle at 28% 38%, #69c96a 0 9%, transparent 10%),
    radial-gradient(circle at 66% 58%, #86d77d 0 12%, transparent 13%),
    radial-gradient(circle at 52% 28%, #b4dc74 0 11%, transparent 12%),
    #bfe0b4;
  border: 6px solid rgba(30,127,230,.30);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.55), 0 20px 60px rgba(0,0,0,.12);
  transform: rotate(-8deg);
}
.mockMap:after {
  content: "Offline pin map - Click to pin or paste coordinates";
  position: absolute;
  left: 18px;
  bottom: 18px;
  background: rgba(7,20,38,.78);
  color: #fff;
  padding: 10px 12px;
  border-radius: 999px;
  font-size: .86rem;
  font-weight: 800;
}
.pin {
  position: absolute;
  width: 26px;
  height: 26px;
  transform: translate(-50%, -100%);
  z-index: 5;
  filter: drop-shadow(0 8px 10px rgba(0,0,0,.25));
}
.pin:before {
  content: "";
  position: absolute;
  width: 26px;
  height: 26px;
  background: var(--red);
  border: 3px solid #fff;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}
.pin:after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  background: #fff;
  border-radius: 50%;
  left: 9px;
  top: 9px;
  z-index: 2;
}
.mapSide { padding: 16px; border-left: 1px solid #e5edf4; background: #fbfdff; }
.mapSide .field { grid-column: 1 / -1; }
.mapStatusBox { border: 1px solid #d9e5ef; border-radius: 16px; background: #eef8ff; padding: 12px; color: #496275; font-size: .9rem; line-height: 1.45; }

.toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 180;
  display: none;
  background: #08172a;
  color: #fff;
  padding: 13px 15px;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.32);
  border: 1px solid rgba(255,255,255,.16);
  max-width: 360px;
}
.toast.show { display: block; }

.footerNote { color: rgba(255,255,255,.64); margin: 14px 4px 2px; font-size: .9rem; line-height: 1.45; }

/* Operator-first task home */
.homeCard {
  color: #fff;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(circle at 85% 5%, rgba(56,200,107,.24), transparent 32%),
    linear-gradient(145deg, rgba(12,38,65,.98), rgba(5,18,33,.98));
}
.homeTop { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.homeTop h2 { margin: 0; color: #fff; font-size: clamp(1.65rem, 4vw, 2.55rem); letter-spacing: -.035em; }
.homeTop p { margin: 8px 0 0; color: rgba(255,255,255,.68); line-height: 1.45; max-width: 660px; }
.homeSessionPill { flex: 0 0 auto; border: 1px solid rgba(56,200,107,.42); background: rgba(56,200,107,.12); color: #bdf7cf; border-radius: 999px; padding: 9px 13px; font-weight: 900; }
.homeStatusRow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.homeStatusItem { padding: 14px 16px; border-radius: 18px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.055); }
.homeStatusItem strong { display: block; font-size: 1.45rem; color: #fff; }
.homeStatusItem span { display: block; margin-top: 3px; color: rgba(255,255,255,.62); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.homeTaskGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.homeTask {
  width: 100%; min-height: 126px; padding: 18px; justify-content: flex-start; text-align: left;
  color: #fff; border: 1px solid rgba(86,187,255,.28); background: linear-gradient(145deg, rgba(25,74,112,.62), rgba(11,35,59,.92));
  box-shadow: none; border-radius: 22px; gap: 16px;
}
.homeTask:hover { border-color: rgba(142,228,95,.64); box-shadow: 0 16px 34px rgba(0,0,0,.22); }
.homeTask.primary { border-color: rgba(142,228,95,.45); background: linear-gradient(145deg, rgba(40,105,79,.70), rgba(11,41,55,.94)); }
.homeTaskIcon { width: 58px; height: 58px; flex: 0 0 58px; display: grid; place-items: center; border-radius: 18px; color: #bdf7cf; border: 1px solid rgba(142,228,95,.34); background: rgba(56,200,107,.11); font-size: 1.45rem; }
.homeTaskCopy { min-width: 0; flex: 1 1 auto; }
.homeTaskCopy strong { display: block; color: #fff; font-size: 1.08rem; }
.homeTaskCopy small { display: block; margin-top: 6px; color: rgba(255,255,255,.62); line-height: 1.35; }
.homeTaskArrow { color: #8ee45f; font-size: 1.65rem; }
.homeSyncStrip { margin-top: 18px; display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid rgba(45,212,191,.28); background: rgba(45,212,191,.09); border-radius: 18px; color: #d7fbf7; }
.homeSyncStrip strong { color: #fff; }
.homeSyncStrip button { flex: 0 0 auto; }

body.homeActive .main { grid-template-columns: 1fr; }
body.homeActive .sidebar { display: none; }
body.homeActive .gpsNotice { display: none; }
body.homeActive .hero { padding: 12px 16px; }
body.homeActive .logo { width: 54px; height: 54px; }
body.homeActive .brand h1 { font-size: 1.45rem; }
body.homeActive .brand p, body.homeActive .brand small, body.guidedFarmerActive .brand p, body.guidedFarmerActive .brand small { display: none; }

.guidedAdvanced { margin-top: 10px; }
.guidedAdvanced summary { cursor: pointer; color: rgba(255,255,255,.72); font-weight: 850; text-align: center; }
.doctorPhotoStep { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 8px 0; }
.doctorPhotoIntro { display: grid; gap: 6px; margin-bottom: 12px; padding: 15px; border: 1px solid rgba(72,181,255,.28); border-radius: 18px; background: rgba(72,181,255,.09); }
.doctorPhotoIntro strong { color: #fff; font-size: 1.05rem; }
.doctorPhotoIntro span, .doctorPhotoStatus { color: rgba(255,255,255,.72); line-height: 1.4; }
.doctorPhotoCapture { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 11px 14px; border-radius: 14px; color: #062b19 !important; background: linear-gradient(135deg, #b6f36d, #38c86b); cursor: pointer; font-weight: 950; }
.doctorPhotoCapture input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.doctorPhotoStatus { margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; }
.doctorBottomDock { position: relative; z-index: 12; margin-top: auto; padding-top: 8px; background: linear-gradient(180deg, rgba(7,20,38,0), #071426 12%); }
.doctorWheelActions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.doctorWheelActions #doctorGuidedFinishBtn[hidden] { display: none !important; }
.doctorWheelActions #doctorGuidedFinishBtn:not([hidden]) { display: flex; grid-column: 1 / -1; width: 100%; }
.guidedBottomDock { position: relative; z-index: 12; margin-top: auto; padding-top: 8px; background: linear-gradient(180deg, rgba(7,20,38,0), #071426 12%); }
.guidedWheelActions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.guidedWheelActions .guidedFinishAction[hidden] { display: none !important; }
.guidedWheelActions .guidedFinishAction:not([hidden]) { display: flex; grid-column: 1 / -1; width: 100%; }
.buyerFlowCard { padding: 0; overflow: hidden; }
.buyerFlowHero { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 22px 24px; color: #fff; background: linear-gradient(135deg, #0d376c, #1769bd); }
.buyerFlowHero h2 { margin: 3px 0 6px; font-size: clamp(1.45rem, 3vw, 2.25rem); letter-spacing: -.035em; }
.buyerFlowHero p { max-width: 720px; margin: 0; color: rgba(255,255,255,.78); line-height: 1.5; }
.buyerFlowHero .tag { color: #dff8e8; border-color: rgba(182,243,109,.38); background: rgba(56,200,107,.18); }
.buyerHeroActions { display: flex; gap: 8px; align-items: center; }
.buyerHeroActions .buyerDemoBtn { white-space: nowrap; color: #fff; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.24); box-shadow: none; }
.buyerFlowProgress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid #d8e4f0; background: #f8fbff; }
.buyerFlowProgress button { min-height: 62px; padding: 9px 6px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; color: #60758b; background: transparent; box-shadow: none; font-size: .72rem; }
.buyerFlowProgress button span { display: grid; place-items: center; width: 23px; height: 23px; margin: 0 auto 4px; border-radius: 999px; color: #496179; background: #e6eef7; }
.buyerFlowProgress button.active { color: #0b315b; border-bottom-color: #1d7fe6; }
.buyerFlowProgress button.active span, .buyerFlowProgress button.complete span { color: #fff; background: #1d7fe6; }
.buyerFlowLayout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; min-height: 560px; }
.buyerFlowMain { min-width: 0; padding: 22px 24px 104px; }
.buyerStep[hidden] { display: none !important; }
.buyerStepIntro { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 18px; }
.buyerStepNumber { flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: #0b315b; background: #e7f2ff; font-weight: 950; }
.buyerStepIntro h3 { margin: 0 0 4px; color: #0b315b; font-size: 1.25rem; }
.buyerStepIntro p { margin: 0; color: #667b91; line-height: 1.4; }
.buyerFlowGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.buyerFlowGrid .full, .buyerFlowGrid .group, .buyerFlowGrid .locationBlock, .buyerFlowGrid .photoBox, .buyerFlowGrid .detailRows { grid-column: 1 / -1; }
.buyerProductChooser { padding: 16px; border: 1px solid #d8e4f0; border-radius: 18px; background: #f8fbff; }
.buyerProductChooser h4 { margin: 0 0 5px; color: #0b315b; }
.buyerProductChooser p { margin: 0 0 12px; color: #667b91; }
#buyerProductDetailRows .detailRow { border-color: #c9ddf1; background: #fff; box-shadow: 0 10px 24px rgba(10,37,64,.06); }
.buyerCadenceGuidance { grid-column:1/-1; display:grid; gap:4px; padding:12px 14px; border:1px solid #c8d9e9; border-left:5px solid #6e8eaa; border-radius:12px; background:#f7fafc; }
.buyerCadenceGuidance strong { color:#153f65; }.buyerCadenceGuidance span { color:#5f7488; font-size:.78rem; line-height:1.4; }
.buyerCadenceGuidance.ready { border-left-color:#2caf6e; background:#f1fbf5; }.buyerCadenceGuidance.warning { border-left-color:#e19a25; background:#fff8eb; }.buyerCadenceGuidance.needsReview { border-left-color:#7a85a0; }
.buyerFlowAside { padding: 20px; border-left: 1px solid #d8e4f0; background: #f5f9fd; }
.buyerFlowAside h3 { margin: 0 0 6px; color: #0b315b; }
.buyerFlowAside > p { margin: 0 0 14px; color: #667b91; font-size: .86rem; }
.buyerLiveSummary, .buyerReviewSummary { display: grid; gap: 10px; }
.buyerSummaryCard { padding: 12px; border: 1px solid #d7e5f2; border-radius: 14px; background: #fff; }
.buyerSummaryCard strong { display: block; color: #0b315b; margin-bottom: 3px; }
.buyerSummaryCard span { color: #61768b; font-size: .82rem; line-height: 1.35; }
.buyerReviewReport { display: grid; gap: 14px; }
.buyerReviewSection { overflow: hidden; border: 1px solid #cbddea; border-radius: 16px; background: #fff; }
.buyerReviewSection h4 { margin: 0; padding: 12px 14px; color: #0b315b; background: #edf6ff; font-size: .98rem; }
.buyerReviewFields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.buyerReviewField { min-width: 0; padding: 11px 14px; border-top: 1px solid #e1eaf1; }
.buyerReviewField:nth-child(even) { border-left: 1px solid #e1eaf1; }
.buyerReviewField.full { grid-column: 1 / -1; border-left: 0; }
.buyerReviewField strong { display: block; margin-bottom: 3px; color: #536b80; font-size: .69rem; letter-spacing: .05em; text-transform: uppercase; }
.buyerReviewField span { display: block; overflow-wrap: anywhere; color: #173b5d; font-size: .86rem; line-height: 1.4; white-space: pre-wrap; }
.buyerReviewField .notProvided { color: #8a9aaa; font-style: italic; }
.buyerReviewProduct { margin: 12px; overflow: hidden; border: 1px solid #d8e5ef; border-radius: 13px; }
.buyerReviewProduct + .buyerReviewProduct { margin-top: 0; }
.buyerReviewProduct h5 { margin: 0; padding: 10px 12px; color: #0b315b; background: #f7fafc; font-size: .92rem; }
.buyerValidation { margin: 0 0 14px; padding: 11px 13px; border: 1px solid #fecaca; border-radius: 12px; color: #991b1b; background: #fff1f2; font-weight: 750; }
.buyerValidation[hidden] { display: none !important; }
.buyerFlowDock { position: absolute; left: 0; right: 300px; bottom: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 14px 24px; border-top: 1px solid #d8e4f0; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.buyerFlowLayout { position: relative; }
.buyerFlowDock button { min-height: 48px; }
.buyerFlowDock #buyerPrevBtn, .buyerFlowDock #buyerReviewBtn { color: #0b315b !important; -webkit-text-fill-color: #0b315b !important; background: #eaf4ff !important; border: 1px solid #8eb9dc !important; box-shadow: 0 6px 16px rgba(10,37,64,.10) !important; opacity: 1 !important; visibility: visible !important; }
.buyerFlowDock button.secondary:hover { background: #edf6ff; border-color: #78acd5; }
.buyerFlowDock #buyerPrevBtn:disabled { color: #64798c !important; -webkit-text-fill-color: #64798c !important; background: #f0f4f7 !important; border-color: #c6d2dc !important; box-shadow: none !important; opacity: 1 !important; }
.buyerFlowDock #buyerNextBtn[hidden] { display: none !important; }
.buyerFlowDock #buyerFinishBtn[hidden] { display: none !important; }
.buyerFlowDock #buyerFinishBtn:not([hidden]) { display: flex; grid-column: 1 / -1; color: #052915; background: linear-gradient(135deg, #b6f36d, #38c86b); font-weight: 950; }
.buyerConsentCard { display: flex; gap: 11px; align-items: flex-start; padding: 15px; border: 1px solid #b9d7f1; border-radius: 15px; background: #edf7ff; color: #173c63; font-weight: 750; line-height: 1.4; }
.buyerConsentCard input { margin-top: 3px; transform: scale(1.2); }
#buyer .buyerFlowGrid .field > label, #buyer .buyerFlowGrid label.field > span, #buyer .photoTop label { text-transform: capitalize; }
#buyer .buyerDeliveryTop { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
#buyer .buyerDeliveryTop .locationActions { flex-wrap: nowrap; }
.buyerPhotoChoices { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.buyerPhotoChoice { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 9px 12px; overflow: hidden; border: 1px solid #9fc4e1; border-radius: 11px; background: #edf6ff; color: #0b315b; font-size: .78rem; font-weight: 900; cursor: pointer; }
.buyerPhotoChoice.camera { border-color: #2f8fe9; background: #2f8fe9; color: #fff; }
.buyerPhotoChoice input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

@media (max-width: 760px) {
  .mapModal.expanded .mapBody { grid-template-columns: 1fr; }
  .mapModal.expanded .mapCanvas,
  .mapModal.expanded #leafletMap,
  .mapModal.expanded .mockMap { height: 62vh; }
}

@media (max-width: 1100px) {
  .hero { grid-template-columns: 1fr; position: relative; top: auto; }
  .statusBox, .actions { justify-content: flex-start; }
  .main { grid-template-columns: 1fr; }
  .sidebar { position: relative; top: auto; max-height: none; }
  .tabs { grid-template-columns: repeat(2, 1fr); }
  .mapBody { grid-template-columns: 1fr; }
  .mapSide { border-left: 0; border-top: 1px solid #e5edf4; }
}
@media (max-width: 760px) {
  .shell { padding: 12px; }
  .hero { padding: 14px; border-radius: 22px; }
  .logo { width: 60px; height: 60px; }
  .statusBox {
    justify-content: start;
    grid-template-columns: auto auto;
  }
  .statusBox .photoPill {
    justify-self: start;
  }
  .tabs { grid-template-columns: 1fr; }
  .field, .field.wide, .field.half, .field.third, .field.quarter { grid-column: 1 / -1; }
  .miniGrid { grid-template-columns: 1fr; }
  .detailRows { grid-template-columns: 1fr; }
  .detailGrid { grid-template-columns: 1fr; }
  .miniGrid .field { grid-column: 1 / -1; }
  .reviewPanel { grid-template-columns: repeat(2, 1fr); }
  .mapModal { padding: 10px; }
  .mockMap { min-height: 360px; }
  table { font-size: .78rem; }
  .homeCard { padding: 18px; }
  .homeTop { display: block; }
  .homeSessionPill { display: inline-flex; margin-top: 12px; }
  .homeStatusRow { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
  .homeStatusItem { padding: 11px 9px; text-align: center; }
  .homeStatusItem strong { font-size: 1.18rem; }
  .homeStatusItem span { font-size: .62rem; letter-spacing: .04em; }
  .homeTaskGrid { grid-template-columns: 1fr; }
  .homeTask { min-height: 102px; padding: 15px; }
  .homeSyncStrip { align-items: stretch; flex-direction: column; }
  body.homeActive .statusBox .demoAction { display: none; }
  body.homeActive .hero { grid-template-columns: 1fr auto; align-items: center; }
  body.homeActive .statusBox .recordPill, body.homeActive .statusBox .photoPill { display: none; }
  body.homeActive .statusBox { display: flex; }
  body.homeActive .statusBox #syncPill { display: none; }
  body.homeActive .headerOperatorAction { min-width: 48px; }
  body.doctorGuidedActive { overflow: hidden; }
  body.doctorGuidedActive .shell { height: 100dvh; overflow: hidden; padding: 0; }
  body.doctorGuidedActive .hero, body.doctorGuidedActive .gpsNotice, body.doctorGuidedActive #guidedfieldcheck > .card > .section-head { display: none; }
  body.doctorGuidedActive .main, body.doctorGuidedActive .content, body.doctorGuidedActive #guidedfieldcheck, body.doctorGuidedActive #guidedfieldcheck > .card, body.doctorGuidedActive #guidedfieldcheck .guidedShell { height: 100%; min-height: 0; margin: 0; }
  body.doctorGuidedActive #guidedfieldcheck .guidedWheel { height: 100dvh; min-height: 100dvh; display: flex; flex-direction: column; padding: max(10px, env(safe-area-inset-top)) 12px max(8px, env(safe-area-inset-bottom)); }
  body.doctorGuidedActive #doctorWheelSetNav { display: none; }
  body.doctorGuidedActive #doctorWheelGrid { --wheel-height: clamp(300px, 48dvh, 520px); flex: 1 1 auto; min-height: 260px; }
  body.doctorGuidedActive .farmerWheelTop { flex: 0 0 auto; }
  body.doctorGuidedActive .farmerWheelTitleBlock p { font-size: .88rem; line-height: 1.28; }
  body.doctorGuidedActive .farmerWheelLabels { flex: 0 0 auto; }
  body.doctorGuidedActive .doctorBottomDock { position: sticky; bottom: 0; flex: 0 0 auto; }
  body.doctorGuidedActive .doctorBottomDock .farmerWheelSlider { margin-top: 0; padding: 8px 10px 6px; }
  body.doctorGuidedActive .doctorBottomDock .farmerWheelSliderTicks { display: none; }
  body.doctorGuidedActive .doctorBottomDock .farmerWheelActions { margin-top: 6px; gap: 6px; }
  body.doctorGuidedActive .doctorBottomDock .farmerWheelActions button { min-height: 50px; padding: 9px 7px; font-size: .78rem; }
  body.doctorGuidedActive .doctorPhotoStep { flex: 1 1 auto; }
}

@media (max-width: 760px) {
  body.guidedFarmerActive {
    background: #071426;
  }
  body.guidedFarmerActive .shell {
    max-width: none;
    width: 100%;
    padding: 8px;
  }
  body.guidedFarmerActive .hero {
    display: grid;
  }
  body.guidedFarmerActive .main {
    display: block;
    margin: 8px 0 0;
  }
  body.guidedFarmerActive .gpsNotice {
    margin-top: 8px;
  }
  body.guidedFarmerActive .content {
    width: 100%;
  }
  body.guidedFarmerActive .section#guidedfarmer > .card,
  body.guidedFarmerActive .section#guidedtrees > .card,
  body.guidedFarmerActive .section#guidedfieldcheck > .card {
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #071426;
    overflow: visible;
  }
  body.guidedFarmerActive .guidedShell {
    display: block;
  }
  body.guidedFarmerActive .guidedWheel {
    min-height: calc(100svh - 16px);
    border-radius: 0;
    padding: 12px 14px 14px;
    box-shadow: none;
  }
  body.guidedFarmerActive .guidedWheel:before,
  body.guidedFarmerActive .guidedWheel:after {
    display: none;
  }
  body.mobileMainAppActive .sidebar {
    display: block;
    margin: 8px 0 12px;
  }
  body.guidedFarmerActive.doctorGuidedActive .hero,
  body.guidedFarmerActive.doctorGuidedActive .gpsNotice,
  body.guidedFarmerActive.doctorGuidedActive #guidedfieldcheck > .card > .section-head {
    display: none;
  }
  body.guidedFarmerActive.doctorGuidedActive .shell,
  body.guidedFarmerActive.doctorGuidedActive .main,
  body.guidedFarmerActive.doctorGuidedActive .content,
  body.guidedFarmerActive.doctorGuidedActive #guidedfieldcheck,
  body.guidedFarmerActive.doctorGuidedActive #guidedfieldcheck > .card,
  body.guidedFarmerActive.doctorGuidedActive #guidedfieldcheck .guidedShell {
    height: 100dvh;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }
  body.guidedFarmerActive.doctorGuidedActive #guidedfieldcheck .guidedWheel {
    position: relative;
    top: auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100dvh;
    min-height: 0;
    padding: max(10px, env(safe-area-inset-top)) 12px max(8px, env(safe-area-inset-bottom));
  }
  body.guidedFarmerActive.doctorGuidedActive #doctorWheelGrid {
    flex: 1 1 0;
    height: auto;
    min-height: 0;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .hero,
  body.guidedFarmerActive:not(.doctorGuidedActive) .gpsNotice,
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active > .card > .section-head {
    display: none;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .shell,
  body.guidedFarmerActive:not(.doctorGuidedActive) .main,
  body.guidedFarmerActive:not(.doctorGuidedActive) .content,
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active,
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active > .card,
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active .guidedShell {
    height: 100dvh;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active .guidedWheel {
    position: relative;
    top: auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100dvh;
    min-height: 0;
    padding: max(10px, env(safe-area-inset-top)) 12px max(8px, env(safe-area-inset-bottom));
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active .farmerWheelSectionNav,
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active .farmerWheelSetNav,
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active .farmerWheelHint {
    display: none;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .section.active .farmerWheelGrid {
    flex: 1 1 0;
    height: auto;
    min-height: 0;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .guidedBottomDock {
    position: sticky;
    bottom: 0;
    flex: 0 0 auto;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .guidedBottomDock .farmerWheelSlider {
    margin-top: 0;
    padding: 8px 10px 6px;
  }
  body.guidedFarmerActive:not(.doctorGuidedActive) .guidedBottomDock .farmerWheelSliderTicks { display: none; }
  body.guidedFarmerActive:not(.doctorGuidedActive) .guidedBottomDock .farmerWheelActions { margin-top: 6px; gap: 6px; }
  body.guidedFarmerActive:not(.doctorGuidedActive) .guidedBottomDock .farmerWheelActions button { min-height: 50px; padding: 9px 7px; font-size: .78rem; }
  body.buyerFlowActive { overflow: hidden; background: #edf3f9; }
  body.buyerFlowActive .shell { height: 100dvh; padding: 0; overflow: hidden; }
  body.buyerFlowActive .hero, body.buyerFlowActive .gpsNotice, body.buyerFlowActive .sidebar, body.buyerFlowActive #buyer > .card > .section-head { display: none; }
  body.buyerFlowActive .main, body.buyerFlowActive .content, body.buyerFlowActive #buyer, body.buyerFlowActive #buyer > .card { height: 100%; min-height: 0; margin: 0; }
  body.buyerFlowActive #buyer > .card { border: 0; border-radius: 0; }
  .buyerFlowHero { grid-template-columns: 1fr auto; padding: max(10px, env(safe-area-inset-top)) 14px 10px; }
  .buyerFlowHero h2 { font-size: 1.15rem; }
  .buyerFlowHero p { display: none; }
  .buyerFlowProgress button { min-height: 48px; font-size: .58rem; }
  .buyerFlowProgress button span { width: 20px; height: 20px; margin-bottom: 2px; }
  .buyerFlowLayout { display: block; height: calc(100dvh - 118px); min-height: 0; }
  .buyerFlowMain { height: 100%; padding: 14px 12px 92px; overflow-y: auto; }
  .buyerFlowAside { display: none; }
  .buyerFlowGrid { grid-template-columns: 1fr; gap: 11px; }
  .buyerFlowGrid .full, .buyerFlowGrid .group, .buyerFlowGrid .locationBlock, .buyerFlowGrid .photoBox, .buyerFlowGrid .detailRows { grid-column: auto; }
  .buyerStepIntro { margin-bottom: 13px; }
  .buyerStepIntro p { font-size: .82rem; }
  .buyerReviewFields { grid-template-columns: 1fr; }
  .buyerReviewField:nth-child(even) { border-left: 0; }
  #buyer .buyerDeliveryTop { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  #buyer .buyerDeliveryTop h3 { font-size: .88rem; }
  #buyer .buyerDeliveryTop .locationActions { gap: 5px; }
  #buyer .buyerDeliveryTop .locationActions button { min-height: 40px; padding: 7px 8px; font-size: .68rem; white-space: nowrap; }
  .buyerPhotoChoices { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .buyerFlowDock { position: fixed; z-index: 20; right: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; padding: 8px 10px max(8px, env(safe-area-inset-bottom)); }
  .buyerFlowDock button { min-height: 50px; padding: 8px 4px; font-size: .72rem; }
}


/* Secure operator start screen */
.operatorOverlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background:
    radial-gradient(circle at 12% 10%, rgba(56,200,107,.22), transparent 34%),
    radial-gradient(circle at 88% 18%, rgba(29,127,230,.25), transparent 36%),
    linear-gradient(135deg, #061424, #0b2440 56%, #061424);
}
.operatorOverlay.show { display: flex; }
.operatorCard {
  width: min(980px, 100%);
  max-height: 92vh;
  overflow: auto;
  background: rgba(255,255,255,.97);
  color: var(--text);
  border-radius: 28px;
  box-shadow: 0 30px 100px rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.35);
}
.operatorTop {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  align-items: center;
  padding: 26px;
  background: linear-gradient(135deg, rgba(8,43,75,.97), rgba(10,83,111,.94));
  color: white;
  border-radius: 28px 28px 0 0;
}
.operatorLogo {
  width: 88px;
  height: 88px;
  border-radius: 24px;
  object-fit: contain;
  background: rgba(255,255,255,.08);
  padding: 8px;
  border: 1px solid rgba(255,255,255,.22);
}
.operatorTop h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.15rem); letter-spacing: -.04em; }
.operatorTop p { margin: 7px 0 0; color: rgba(255,255,255,.78); line-height: 1.45; }
.supervisorUnlockBackBtn {
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 42px;
  padding: 8px 13px;
  color: #fff;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  box-shadow: none;
}
.operatorBody { padding: 22px 26px 26px; }
.operatorNotice {
  border-radius: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(29,127,230,.22);
  background: #f3f9ff;
  color: #15385d;
  margin-bottom: 18px;
  line-height: 1.45;
  font-size: .92rem;
}
.operatorActions { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 18px; }
.protectedNote {
  border-radius: 16px;
  padding: 12px 14px;
  background: #fff8ed;
  border: 1px solid rgba(248,184,78,.35);
  color: #67420c;
  font-size: .9rem;
  line-height: 1.45;
  margin-top: 12px;
}
.sessionLog {
  margin-top: 12px;
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.45;
}

.wheelTextOverlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0, 9, 20, .58);
  backdrop-filter: blur(3px);
}
.wheelTextOverlay.show { display: flex; }
.wheelTextCard {
  width: min(520px, 100%);
  border-radius: 20px;
  border: 1px solid rgba(83, 177, 255, .24);
  background: linear-gradient(180deg, rgba(14, 35, 58, .98), rgba(10, 29, 49, .98));
  box-shadow: 0 22px 70px rgba(0, 0, 0, .48), inset 0 1px 0 rgba(255,255,255,.06);
  color: #f5fbff;
  padding: 14px;
}
.wheelTextCard.multiline {
  width: min(780px, calc(100vw - 24px));
}
.wheelTextTop {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: start;
  margin-bottom: 12px;
}
.wheelTextTop h3 {
  margin: 0;
  font-size: 1.04rem;
  line-height: 1.15;
  color: #fff;
}
.wheelTextTop p {
  margin: 5px 0 0;
  color: rgba(226, 238, 250, .72);
  font-size: .84rem;
  line-height: 1.35;
}
.wheelTextClose {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.08);
  color: #fff;
  font-weight: 800;
}
.wheelTextFieldBadge {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.06);
  color: #fff;
  font-weight: 850;
  margin-bottom: 10px;
}
.wheelTextEditRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.wheelTextInput,
.wheelTextArea {
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(83, 177, 255, .62);
  background: rgba(6, 18, 32, .76);
  color: #fff;
  font-size: 1rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 3px rgba(83,177,255,.08);
}
.wheelTextInput { min-height: 48px; padding: 0 13px; }
.wheelTextArea { min-height: min(44vh, 360px); padding: 12px 13px; resize: vertical; line-height: 1.35; }
.wheelTextInput::placeholder,
.wheelTextArea::placeholder { color: rgba(235, 245, 255, .52); }
.wheelTextActions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-self: stretch;
  justify-content: flex-end;
}
.wheelTextSave,
.wheelTextVoice,
.wheelTextStop {
  min-height: 48px;
  padding: 0 16px;
  border-radius: 14px;
  border: 0;
  font-weight: 900;
}
.wheelTextSave {
  background: linear-gradient(135deg, #50cdf3, #63e58d);
  color: #05243a;
}
.wheelTextVoice {
  background: rgba(83, 177, 255, .16);
  border: 1px solid rgba(83, 177, 255, .36);
  color: #e9f7ff;
}
.wheelTextVoice.listening {
  background: linear-gradient(135deg, #f8b84e, #ffdf8f);
  color: #251702;
}
.wheelTextStop {
  background: rgba(255, 93, 105, .14);
  border: 1px solid rgba(255, 93, 105, .34);
  color: #ffdbe0;
}
.wheelTextVoiceStatus {
  grid-column: 1 / -1;
  min-height: 20px;
  color: rgba(226, 238, 250, .74);
  font-size: .78rem;
  line-height: 1.35;
}

@media (max-width: 560px) {
  .wheelTextOverlay {
    align-items: flex-end;
    padding: 10px;
  }
  .wheelTextCard,
  .wheelTextCard.multiline {
    width: 100%;
  }
  .wheelTextEditRow {
    grid-template-columns: 1fr;
  }
  .wheelTextActions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .wheelTextArea {
    min-height: 46vh;
  }
}


input[readonly] { background: rgba(8, 21, 43, .05); color: #345; cursor: default; }
#syncEndpoint { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; }

@media print {
  body { background: white; color: #111; }
  .hero, .sidebar, .sectionActions, .footerNote, .mapModal, .toast { display: none !important; }
  .main { display: block; }
  .section { display: block !important; margin-bottom: 16px; break-inside: avoid; }
  .card { box-shadow: none; border: 1px solid #ddd; }
}
.chefNugPlanner{display:grid;gap:14px}.chefPrivacyNote{display:grid;gap:4px;padding:14px;border:1px solid #53c789;border-radius:14px;background:#0e403c;color:#dffff0}.chefPrivacyNote strong{color:#fff}.chefSteps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.chefSteps span{padding:9px;border:1px solid #294b68;border-radius:10px;background:#0c2439;color:#a8bdd0;text-align:center;font-size:.75rem;font-weight:900}.chefSteps .active{border-color:#57e695;color:#071b24;background:#57e695}.chefPanel{display:grid;gap:12px;padding:14px;border:1px solid #294a67;border-radius:15px;background:#071a2b}.chefPanelHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.chefPanelHead>div{display:grid;gap:3px}.chefPanelHead strong{color:#fff}.chefPanelHead span{color:#9fb4c7;font-size:.78rem}.chefAllowance{padding:6px 9px;border:1px solid #e0b24f;border-radius:999px;color:#ffd877!important;white-space:nowrap}.chefSourceGrid{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);gap:10px}.chefSourceGrid textarea{min-height:110px}.chefModeCards{display:grid;grid-template-columns:1fr 1fr;gap:9px}.chefModeCards label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #31516c;border-radius:12px;background:#0b2236;cursor:pointer}.chefModeCards span{display:grid;gap:2px}.chefModeCards strong{color:#fff}.chefModeCards small{color:#9fb4c7}.chefMealList{display:grid;gap:12px}.chefMealCard{padding:13px;border:1px solid #31516c;border-radius:13px;background:#0b2236}.chefMealHead{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;align-items:end}.chefMealHead label,.chefIngredientRow label{display:grid;gap:5px;color:#a9bdd0;font-size:.72rem}.chefIngredientList{display:grid;gap:7px;margin-top:10px}.chefIngredientRow{display:grid;grid-template-columns:minmax(130px,1.2fr) 90px 90px 85px 105px 80px auto;gap:7px;align-items:end;padding:9px;border-radius:10px;background:#071a2b}.chefIngredientRow input,.chefIngredientRow select{min-width:0}.chefIngredientActions{display:flex;gap:7px;margin-top:9px}.chefTotals{overflow:auto}.chefTotals table{min-width:800px}.chefTotals td,.chefTotals th{padding:9px;border-bottom:1px solid #29455f;text-align:left}.chefTotals th{color:#9fb4c7;font-size:.7rem;text-transform:uppercase}.chefTotals td{color:#eaf5ff}.chefEstimateNotice{padding:10px;border-radius:10px;background:#342b16;color:#f7d98d;font-size:.78rem}.chefEmpty{padding:18px;border:1px dashed #395b77;border-radius:12px;color:#9fb4c7;text-align:center}
@media(max-width:760px){.chefSteps{grid-template-columns:repeat(5,120px);overflow:auto}.chefContactGrid,.chefSourceGrid,.chefModeCards{grid-template-columns:1fr}.chefPanelHead{flex-direction:column}.chefMealHead{grid-template-columns:1fr}.chefIngredientRow{grid-template-columns:1fr 1fr}.chefIngredientRow label:first-child{grid-column:1/-1}.chefIngredientRow button{grid-column:1/-1}.chefAllowance{white-space:normal}}
@media(max-width:760px){body.chefNugActive{overflow:hidden;background:#edf3f9}body.chefNugActive .shell{height:100dvh;max-width:none;padding:0;overflow:hidden}body.chefNugActive .hero,body.chefNugActive .gpsNotice,body.chefNugActive .sidebar{display:none}body.chefNugActive .main,body.chefNugActive .content,body.chefNugActive #menuintake{height:100%;min-height:0;margin:0}body.chefNugActive #menuintake>.card{height:100%;min-height:0;margin:0;padding:12px;border:0;border-radius:0;overflow-y:auto;overscroll-behavior:contain;background:#071426;color:#fff;box-shadow:none}body.chefNugActive .chefFocusedHead{position:sticky;top:-12px;z-index:12;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:10px;margin:-12px -12px 12px;padding:max(12px,env(safe-area-inset-top)) 12px 11px;background:#071426;border-bottom:1px solid #27455f}body.chefNugActive .chefFocusedHead h2{color:#fff;font-size:1.15rem}body.chefNugActive .chefFocusedHead p{margin-top:3px;color:#a9bdd0;font-size:.78rem;line-height:1.3}body.chefNugActive .chefFocusedHead .tag{padding:6px 8px;font-size:.65rem}body.chefNugActive .chefBackBtn{width:44px;min-height:44px;padding:0;font-size:1.15rem}body.chefNugActive .chefPrivacyNote{margin-top:0}body.chefNugActive .chefPanel{padding:12px}body.chefNugActive .sectionActions{position:relative;bottom:auto}body.chefNugActive .chefContactGrid{padding:12px;border:1px solid #294a67;border-radius:15px;background:#071a2b}body.chefNugActive .chefContactGrid label{color:#a9bdd0}body.chefNugActive .chefContactGrid input{background:#0b2236;color:#fff;border-color:#31516c}}
/* Chef NuG light, balanced planner treatment */
.chefNugPlanner{background:#eef4fa;color:#0b2947}.chefPrivacyNote{border-color:#b7dfc5;background:#e9f7ee;color:#315844}.chefPrivacyNote strong{color:#174d2f}.chefSteps span{border-color:#ccdcea;background:#f8fbfe;color:#587089}.chefSteps .active{border-color:#2f8fe9;background:#2f8fe9;color:#fff}.chefPanel{border-color:#cbdceb;background:#fff;box-shadow:0 8px 22px rgba(19,57,91,.06)}.chefPanelHead strong{color:#0b2947}.chefPanelHead span{color:#61768b}.chefAllowance{border-color:#8dcfa3;background:#eefaf2;color:#21653c!important}.chefModeCards label{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;min-height:82px;border-color:#c7d9e8;background:#f4f8fc;color:#0b2947}.chefModeCards label:has(input:checked){border-color:#2f8fe9;background:#eaf4ff;box-shadow:0 0 0 3px rgba(47,143,233,.1)}.chefModeCards input[type="radio"]{width:20px;height:20px;margin:0;accent-color:#2f8fe9}.chefModeCards span{display:grid;gap:3px;text-align:left}.chefModeCards strong{color:#0b2947}.chefModeCards small{color:#61768b}.chefMealCard{border-color:#c7d9e8;background:#f7fafd}.chefIngredientRow{background:#fff;border:1px solid #d7e3ed}.chefMealHead label,.chefIngredientRow label{color:#536a80}.chefTotals th{color:#5f7488;background:#edf4fa}.chefTotals td{color:#173b5d;border-color:#d9e5ee}.chefEstimateNotice{background:#fff6de;color:#76520f}.chefEmpty{border-color:#aec5d8;color:#62788d;background:#f8fbfd}.chefPanel input,.chefPanel select,.chefPanel textarea,.chefContactGrid input{background:#fff;color:#173b5d;border-color:#bfd2e2}.chefPanel .secondary{background:#f5f8fb;color:#173b5d;border-color:#bfd2e2}.chefPanel .hint{color:#667d91}
@media(max-width:760px){body.chefNugActive #menuintake>.card{background:#eef4fa;color:#0b2947}body.chefNugActive .chefFocusedHead{background:#0b2947;border-color:#234b6d}body.chefNugActive .chefContactGrid{background:#fff;border-color:#cbdceb}body.chefNugActive .chefContactGrid label{color:#536a80}body.chefNugActive .chefContactGrid input,body.chefNugActive .chefContactGrid select{background:#fff;color:#173b5d;border-color:#bfd2e2}.chefModeCards{gap:10px}.chefModeCards label{width:100%;min-height:78px;padding:12px 14px}.chefPanel .sectionActions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.chefPanel .sectionActions .left,.chefPanel .sectionActions .right{display:contents}.chefPanel .sectionActions button{width:100%;min-height:48px;margin:0}.chefPanel #chefClearBtn{grid-column:1/-1}.chefPanel #chefAddMealBtn,.chefPanel #chefAnalyzeBtn{grid-column:auto}.chefNugPlanner>.sectionActions{display:grid;grid-template-columns:1fr;gap:9px}.chefNugPlanner>.sectionActions .left,.chefNugPlanner>.sectionActions .right{display:contents}.chefNugPlanner>.sectionActions button{width:100%;min-height:50px}.chefPanelHead{align-items:stretch}.chefPanelHead>button{width:100%}}
#menuintake label,#review label{text-transform:capitalize}
@media(max-width:760px){body.reviewSyncActive{overflow:hidden;background:#edf3f9}body.reviewSyncActive .shell{height:100dvh;max-width:none;padding:0;overflow:hidden}body.reviewSyncActive .hero,body.reviewSyncActive .gpsNotice,body.reviewSyncActive .sidebar{display:none}body.reviewSyncActive .main,body.reviewSyncActive .content,body.reviewSyncActive #review{height:100%;min-height:0;margin:0}body.reviewSyncActive #review>.card{height:100%;min-height:0;margin:0;padding:12px;border:0;border-radius:0;overflow-y:auto;overscroll-behavior:contain;background:#eef4fa;box-shadow:none}body.reviewSyncActive .reviewFocusedHead{position:sticky;top:-12px;z-index:12;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:10px;margin:-12px -12px 12px;padding:max(12px,env(safe-area-inset-top)) 12px 11px;background:#0b2947;border-bottom:1px solid #234b6d}body.reviewSyncActive .reviewFocusedHead h2{color:#fff;font-size:1.1rem}body.reviewSyncActive .reviewFocusedHead p{margin-top:3px;color:#a9bdd0;font-size:.78rem;line-height:1.3}body.reviewSyncActive .reviewFocusedHead .tag{padding:6px 8px;font-size:.65rem}body.reviewSyncActive .reviewBackBtn{width:44px;min-height:44px;padding:0;font-size:1.15rem}}
.quickCaptureCard { max-width: 760px; margin: 0 auto; padding: 0; overflow: hidden; background: #f8fbf7; }
.quickCaptureHero { display:flex; align-items:center; gap:14px; padding:20px; color:#fff; background:linear-gradient(145deg,#0b4d2c,#12683c); }
.quickCaptureHero h2 { margin:0; color:#fff; }
.quickCaptureHero p { margin:4px 0 0; color:rgba(255,255,255,.72); }
.quickCaptureHero .quickBackBtn { width:44px; min-width:44px; height:44px; padding:0; border-radius:50%; font-size:1.25rem; }
.quickConnectionPill { margin-left:auto; padding:8px 12px; border-radius:999px; font-weight:800; font-size:.78rem; background:#f8c45b; color:#4b3300; }
.quickCaptureBody { display:grid; gap:14px; padding:18px; }
.quickStatusCard,.quickPanel { border:1px solid #dbe8dd; border-radius:18px; background:#fff; padding:16px; box-shadow:0 8px 24px rgba(20,72,42,.06); }
.quickStatusCard { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.quickStatusCard strong { display:block; color:#154e2f; }
.quickStatusCard small { display:block; margin-top:3px; color:#64766a; }
.quickPanel label,.quickPanelTitle { display:block; color:#163f29; font-weight:850; }
.quickPanel textarea,.quickPanel input[type="text"] { margin-top:9px; width:100%; border:1px solid #cbdccc; background:#fbfdfb; }
.quickMemoHead { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.quickMemoDictateBtn.listening { background:#c42b2b; color:#fff; }
.quickMemoVoiceStatus { display:block; margin-top:8px; color:#607064; font-size:.82rem; line-height:1.35; }
.quickVoicePanel { text-align:center; border-style:dashed; }
.quickVoiceBtn { width:92px; height:92px; margin:4px auto 10px; padding:0; border-radius:50%; font-size:2rem; display:grid; place-items:center; background:#0f5b36; color:#fff; }
.quickVoiceBtn.recording { background:#c42b2b; animation:quickPulse 1.2s infinite; }
@keyframes quickPulse { 50% { box-shadow:0 0 0 12px rgba(196,43,43,.14); } }
.quickVoiceStatus { color:#607064; font-size:.86rem; }
.quickPlayback { width:100%; margin-top:12px; }
.quickFileActions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.quickFileAction { position:relative; min-height:76px; display:grid; place-items:center; border:1px solid #cadccb; border-radius:16px; background:#fff; color:#174d30; font-weight:850; cursor:pointer; text-align:center; }
.quickFileAction input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.quickPhotoPreview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:10px; }
.quickPhotoPreview figure { margin:0; position:relative; aspect-ratio:1; border-radius:12px; overflow:hidden; background:#e9f0ea; }
.quickPhotoPreview img { width:100%; height:100%; object-fit:cover; }
.quickPhotoPreview button { position:absolute; right:4px; top:4px; min-width:28px; width:28px; height:28px; padding:0; border-radius:50%; background:rgba(120,0,0,.85); color:#fff; }
.quickLocationRow { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.quickLocationResult { margin-top:10px; padding:10px 12px; border-radius:12px; background:#eef7ef; color:#355b42; font-size:.86rem; }
.quickUrgentRow { display:flex; align-items:center; justify-content:space-between; gap:15px; border-color:#efd0d0; }
.quickUrgentRow label { display:flex; align-items:center; gap:10px; color:#7b1d1d; }
.quickUrgentRow input { width:24px; height:24px; accent-color:#c62d2d; }
.quickEmergencyNotice { border-radius:14px; padding:12px; color:#7b1d1d; background:#fff0f0; border:1px solid #efc8c8; font-size:.85rem; }
.quickSaveBtn { width:100%; min-height:58px; font-size:1.06rem; background:#0f5b36; }
.quickQueueList { display:grid; gap:9px; }
.quickQueueItem { display:grid; grid-template-columns:1fr auto; gap:8px; padding:11px 12px; border:1px solid #dbe7dd; border-radius:13px; background:#fff; }
.quickQueueItem small { color:#617064; }
.quickQueueStatus { align-self:center; padding:5px 8px; border-radius:999px; background:#fff0c9; color:#6b4a00; font-size:.72rem; font-weight:850; }
.quickQueueStatus.synced { background:#daf3df; color:#15582e; }
body.quickCaptureActive .main { grid-template-columns:1fr; }
body.quickCaptureActive .hero, body.quickCaptureActive .sidebar, body.quickCaptureActive .gpsNotice { display:none; }
@media (max-width:620px) {
  .quickCaptureBody { padding:12px; }
  .quickCaptureHero { padding:14px 12px; }
  .quickCaptureHero p { display:none; }
  .quickStatusCard { align-items:flex-start; }
  .quickFileActions { grid-template-columns:1fr 1fr; }
  .quickPhotoPreview { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #supervisorUnlockOverlay { align-items:flex-start; padding:10px; overflow-y:auto; }
  #supervisorUnlockOverlay .operatorCard { max-height:none; border-radius:20px; }
  #supervisorUnlockOverlay .operatorTop { padding:14px; gap:11px; border-radius:20px 20px 0 0; }
  #supervisorUnlockOverlay .operatorLogo { width:66px; height:66px; border-radius:18px; }
  #supervisorUnlockOverlay .operatorTop h2 { font-size:1.15rem; }
  #supervisorUnlockOverlay .operatorTop p { font-size:.78rem; line-height:1.35; }
  #supervisorUnlockOverlay .operatorBody { padding:14px; }
  #supervisorUnlockOverlay .operatorActions { display:grid; grid-template-columns:1fr 1fr; position:sticky; bottom:0; padding-top:10px; background:#fff; }
}
