/* DEC480: Field Ops chrome hosting ORB. Every rule is scoped to body.orb-field (mounted) or body.orb-field-legacy
 * (automation / ?shell=legacy), so the legacy layout the 121 browser suites drive is untouched. */
body.orb-field-legacy #fieldOpsRoot{display:none!important}
/* The wrapper must carry the viewport height Field Ops' .app-container{height:100%} chain expects; absolute (not fixed) so it creates no stacking context over ORB's overlays. */
body.orb-field #fieldOpsRoot{position:absolute;left:0;right:0;top:var(--field-visible-top,0px);height:var(--field-visible-height,100dvh);bottom:auto}

/* ORB's legacy chrome stands down; the globe and the conversation were re-parented into Field Ops' markup. */
body.orb-field #canvasTop,body.orb-field #canvasBottom,body.orb-field #owApp,body.orb-field #orbBoot,body.orb-field #tourOv{display:none!important}
body.orb-field .map-area #cesiumContainer{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:0}

/* Composer bar: ORB's form, Field Ops' surface. */
/* DEC480 refinement: equal edge insets preserve map space; explicit font properties keep iOS fields at 16px. */
body.orb-field #fieldComposer{position:fixed;left:8px;right:8px;margin:0;width:auto!important;bottom:calc(10px + var(--safe-bottom,0px) + var(--panel-offset,0px));z-index:120;transition:bottom .3s cubic-bezier(.4,0,.2,1)}
body.orb-field #fieldComposer form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:0;padding:8px 10px;background:var(--bg-card-solid,rgba(71,85,105,.92));border:1px solid var(--border-subtle,rgba(148,163,184,.25));border-radius:18px;backdrop-filter:blur(30px) saturate(1.8);-webkit-backdrop-filter:blur(30px) saturate(1.8);box-shadow:0 8px 24px rgba(0,0,0,.35)}
body.orb-field #fieldComposer form>*:not(.ow-field):not(.ow-actions):not(#owAtlasStatus){display:none}
body.orb-field #fieldComposer .ow-actions{display:flex;gap:6px;margin:0}
body.orb-field #fieldComposer .ow-actions>*:not(#owAtlasSend):not(#orbMic):not(#rainbotHandsFree){display:none}
body.orb-field #fieldComposer .ow-actions>[hidden]{display:none!important}
body.orb-field #fieldComposer .ow-field{flex:1 1 0;min-width:0;display:block;font-size:0;line-height:0;margin:0}
body.orb-field #fieldComposer textarea#owAtlasQuestion{display:block;box-sizing:border-box;width:100%;min-height:44px;max-height:120px;resize:none;font-family:inherit;font-size:16px!important;line-height:1.3;background:transparent;border:0;color:var(--text-primary,#e2e8f0);outline:none;padding:9px 4px}
body.orb-field #fieldComposer textarea#owAtlasQuestion::placeholder{color:var(--text-secondary,#94a3b8)}
body.orb-field #fieldComposer button#owAtlasSend{min-width:44px;min-height:44px;height:44px;border-radius:12px;border:0;background:var(--brand-primary,#4CA6EA);color:#fff;font-weight:600;padding:0 14px}
body.orb-field #fieldComposer #owAtlasStatus{flex-basis:100%;order:3;font-size:12px;color:var(--text-secondary,#94a3b8);margin:0}
body.orb-field #fieldComposer #owAtlasStatus:empty{display:none}

/* Ask ORB panel: the transcript only; ORB's workflow head and brief chrome wait for stage 2 homes. */
body.orb-field #aiPanel #aiPanelBody{overflow:auto;-webkit-overflow-scrolling:touch;padding:0 14px 14px}
body.orb-field #aiPanel .canvas-conversation-head,body.orb-field #aiPanel #investigationWorkflow,body.orb-field #aiPanel .ow-title-row,body.orb-field #aiPanel .ow-small,body.orb-field #aiPanel #orbBuildNotice{display:none}
body.orb-field #aiPanel #ow-atlas{display:block!important;flex:none!important;height:auto!important;overflow:visible!important;padding:0!important}
body.orb-field #aiPanel .ow-card{background:transparent;border:0;padding:0;margin:0;box-shadow:none}
body.orb-field #aiPanel #owTranscript{max-height:none}

/* DEC480: shared 12px gutters, a labelled field action, and a conversation that expands above its composer. */
body.orb-field .top-header{box-sizing:border-box;padding:0 12px;padding-top:var(--safe-top);height:calc(70px + var(--safe-top));padding-bottom:18px;gap:8px}
body.orb-field .top-header .header-left,body.orb-field .top-header .header-right{position:static;inset:auto;transform:none;display:flex;align-items:center;gap:4px;margin:0}
body.orb-field .top-header .header-left{min-width:0;flex:1}
body.orb-field .header-title{white-space:nowrap;font-size:14px;gap:6px}
body.orb-field .top-header .header-btn{flex:none;width:44px;height:44px;min-height:44px;margin:0;padding:0;align-self:center}
body.orb-field .map-controls{right:18px;gap:12px;top:calc(82px + var(--safe-top))}
body.orb-field .map-controls>.btn-icon{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:8px}
body.orb-field #fieldComposer{left:12px;right:12px;bottom:calc(12px + var(--safe-bottom) + var(--field-viewport-bottom,0px) + var(--panel-offset,0px));background:var(--bg-card-solid);border:1px solid var(--border-subtle);border-radius:18px;overflow:hidden}
body.orb-field #fieldComposer form{border:0;box-shadow:none;border-radius:0;padding:0 10px 10px;gap:8px;align-items:center;background:transparent;backdrop-filter:none}
body.orb-field #fieldAskExpand{display:flex;align-items:center;width:100%;min-height:44px;padding:0 14px;border:0;background:transparent;color:var(--text-primary);font:600 14px system-ui;text-align:left;cursor:pointer}
body.orb-field #fieldComposer textarea#owAtlasQuestion{margin:0!important;min-height:44px!important;font-size:16px!important;line-height:1.35!important;background:rgba(15,23,42,.35)!important;border:0!important;border-radius:10px!important;padding:11px 12px!important}
body.orb-field #fieldComposer .ow-actions{align-items:center}
body.orb-field .bottom-controls{position:fixed;right:12px;top:var(--field-add-top,auto);bottom:auto!important;transition:none}
/* DEC643: owner-selected blue circular Add action; both themes use the same artwork; DEC657 reduces the target to 46px. */
body.orb-field #addBtn{position:relative;display:grid;place-items:center;width:46px;min-width:46px;height:46px;padding:0;border-radius:50%;background:#0075bc;color:#fff;font:0 system-ui;box-shadow:0 3px 12px #14253644;border:3px solid #fff}
/* DEC650: geometric strokes avoid font baselines and anonymous text grid tracks shifting the plus. */
body.orb-field #addBtn[data-field-control="open"]::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;background:linear-gradient(#fff,#fff) center/2px 100% no-repeat,linear-gradient(#fff,#fff) center/100% 2px no-repeat;color:#fff!important;margin:0;pointer-events:none;text-shadow:none}
body.orb-field.field-ai-open #fieldComposer{bottom:calc(12px + var(--safe-bottom) + var(--field-viewport-bottom,0px));z-index:160}
body.orb-field.field-ai-open .bottom-controls{display:none}
body.orb-field.field-add-obscured .bottom-controls{visibility:hidden}
body.orb-field #aiPanel{left:12px;right:12px;bottom:calc(24px + var(--safe-bottom) + var(--field-composer-height,112px) + var(--field-viewport-bottom,0px));max-height:calc(100dvh - var(--field-composer-height,112px) - 100px);border-radius:18px;border-bottom:1px solid var(--border-subtle)}
body.orb-field #aiPanel .slider-header{gap:8px;padding:0 12px 10px}
body.orb-field #aiPanel .slider-header h3{flex:1;margin:0}
body.orb-field #aiPanel .close-btn,body.orb-field .field-ask-size{min-height:44px;min-width:44px;border:0;border-radius:10px;background:rgba(15,23,42,.3);color:var(--text-primary);font:600 13px system-ui;padding:0 12px;cursor:pointer}
body.orb-field #aiPanelBody{min-height:0;overscroll-behavior:contain}
body.orb-field #aiPanel #canvasConversation,body.orb-field #aiPanel #conversationFeed{position:static!important;height:auto!important;max-height:none!important;overflow:visible!important;touch-action:pan-y}
body.orb-field #aiPanel #canvasConversation{padding:0!important;background:transparent!important;border:0!important;display:block!important}
body.orb-field #aiPanel #conversationFeed{padding:12px 0!important;flex:none!important}
body.orb-field #aiPanel #canvasWelcome{padding:8px 0!important;background:transparent!important}
body.orb-field #aiPanel #canvasWelcome .ow-eyebrow{display:none}
body.orb-field #aiPanel #conversationFeed{background:transparent!important}
body.orb-field #aiPanel #canvasWelcome h1{font-size:22px!important;line-height:1.25!important;margin:8px 0}
body.orb-field #aiPanel #canvasWelcome p{font-size:15px;line-height:1.5;color:var(--text-primary)}
body.orb-field #aiPanel .review-starters{display:grid!important;grid-template-columns:1fr!important;gap:8px}
body.orb-field #aiPanel .review-starters button{width:100%;min-width:0;min-height:52px;padding:12px;border-radius:12px;text-align:left;white-space:normal;background:rgba(15,23,42,.25);color:var(--text-primary);border:1px solid var(--border-subtle)}
body.orb-field.field-ai-full #aiPanel{top:calc(12px + var(--safe-top) + var(--field-visible-top,0px));height:auto!important;max-height:none!important;z-index:155}
body.orb-field.field-ai-full #aiPanel .slider-handle{pointer-events:none}
body.orb-field.field-ai-open #fieldAskExpand{display:none}
body.orb-field #overflowMenu{max-height:calc(100dvh - 76px - var(--safe-top));overflow-y:auto}
body.orb-field #overflowMenu .menu-item{min-height:44px}
body.orb-field #overflowMenu .menu-item>img{width:20px;height:20px;object-fit:contain;margin-right:10px}
body.orb-field :is(#fieldAskExpand,.field-ask-size,#addBtn,.header-btn):focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
@media(max-width:350px){body.orb-field .header-title{font-size:12px}body.orb-field .header-title img{display:none}body.orb-field .top-header .header-right{gap:0}}
@media(prefers-reduced-motion:reduce){body.orb-field #fieldComposer,body.orb-field #aiPanel{transition:none}}

/* DEC481: voice and continuity use the same field surfaces, never an extra workspace. */
body.orb-field #orbMic{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:12px;background:var(--brand-primary);color:#0f172a;cursor:pointer}
body.orb-field #orbMic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.orb-field #orbMic.orb-listening{background:#e37263;color:#0f172a;box-shadow:0 0 0 3px rgba(227,114,99,.25)}
body.orb-field #fieldNotice{position:fixed;left:12px;right:12px;bottom:calc(24px + var(--safe-bottom) + var(--field-composer-height,112px) + var(--field-viewport-bottom,0px));z-index:3300;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:14px;background:#243344;color:#f1f5f9;box-shadow:0 4px 18px #0005;font:14px/1.4 system-ui}
body.orb-field #fieldNotice[hidden]{display:none}
body.orb-field #fieldNotice>span{flex:1;min-width:0;overflow-wrap:anywhere}
body.orb-field #fieldNotice button{flex:none;min-height:44px;min-width:44px;border:0;border-radius:8px;padding:0 10px;background:#35485c;color:#f1f5f9;font:600 13px system-ui;cursor:pointer}
body.orb-field #fieldCollectionHint{margin:0;padding:10px 14px;color:#e2e8f0;background:rgba(15,23,42,.2);font:14px/1.4 system-ui}
body.orb-field #fieldCollectionHint[hidden]{display:none}
body.orb-field.field-ai-open #collectionPanel,body.orb-field.field-ai-open #crosshair{visibility:hidden!important;pointer-events:none}
body.orb-field #overflowMenu .menu-item[aria-pressed=true]{color:#8fe7d7;background:rgba(72,200,178,.12)}
body.orb-field #orbMic:focus-visible,body.orb-field #fieldNotice button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
/* DEC481: keep all docked panels within Safari's visible space, with browser bars shown or hidden. */
body.orb-field #fieldComposer{transition:none}
body.orb-field .slider-panel:not(#aiPanel){bottom:var(--field-viewport-bottom,0px);max-height:calc(var(--field-visible-height,100dvh) - var(--field-composer-height,100px) - 88px - var(--safe-top))}
body.orb-field #aiPanel{max-height:calc(var(--field-visible-height,100dvh) - var(--field-composer-height,100px) - 100px - var(--safe-top) - var(--safe-bottom))}
body.orb-field #overflowMenu{top:calc(var(--field-visible-top,0px) + var(--safe-top) + 56px);max-height:calc(var(--field-visible-height,100dvh) - 76px - var(--safe-top))}
body.orb-field.field-collecting:not(.field-ai-open) #fieldComposer{display:none}
body.orb-field #collectionPanel .collection-header{gap:8px;flex-wrap:wrap;padding:0 12px 12px}
body.orb-field #collectionPanel .collection-header h3{flex:1;min-width:0}
body.orb-field #collectionPanel .collection-heading{flex:1;min-width:0}
body.orb-field #collectionPanel .collection-heading h3{margin:0;overflow-wrap:anywhere}
body.orb-field #fieldRecoveryBadge{display:block;color:#d4e3e9;font:500 11px/1.5 system-ui;margin-top:2px}
body.orb-field #fieldRecoveryBadge[data-state="error"]{color:#ffd0a8}
body.orb-field #collectionPanel .collection-header-actions{gap:6px}
body.orb-field #collectionPanel .collection-header button{min-height:44px;padding:0 10px;border-radius:10px}
body.orb-field #fieldCollectionAsk{border:1px solid var(--border-subtle);background:rgba(15,23,42,.2);color:#e2e8f0;font:600 13px system-ui;cursor:pointer}
body.orb-field #fieldCollectionAsk:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
body.orb-field #collectionPanel input:not([type=checkbox]):not([type=radio]):not([type=range]),body.orb-field #collectionPanel textarea,body.orb-field #collectionPanel select{font-size:16px!important}
/* DEC482: small reticle leaves the asset visible; finger-sized zoom controls supply finer visual placement. */
body.orb-field #crosshair{transition:none}
body.orb-field #crosshair svg{display:block;width:104px;height:104px}
body.orb-field #fieldCollectionZoom{display:none;gap:12px}
body.orb-field.field-collecting:not(.field-ai-open) #fieldCollectionZoom{display:flex;flex-direction:column}
body.orb-field #fieldCollectionZoom button{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(30,41,59,.92);color:#fff;font:20px system-ui;cursor:pointer}
body.orb-field .map-area.banner-visible .map-controls{top:calc(122px + var(--safe-top))}
body.orb-field #fieldCollectionZoom button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
/* DEC522: short Safari/landscape viewports retain all placement controls above the sheet. */
body.orb-field.field-short-viewport.field-collecting:not(.field-ai-open) .map-controls{left:12px;right:12px;flex-direction:row;justify-content:space-between;align-items:center}
body.orb-field.field-short-viewport.field-collecting:not(.field-ai-open) #fieldCollectionZoom{flex-direction:row}
body.orb-field.field-short-viewport #collectionPanel:not(.minimized){max-height:calc(var(--field-visible-height,100dvh) - 160px - var(--safe-top))}

/* DEC481: search focus must not inflate the phone viewport; banner clears the field header. */
body.orb-field .search-input{font-size:16px;min-height:44px}
body.orb-field .location-banner{top:calc(70px + var(--safe-top))}

/* DEC488: photo evidence remains visible beside an explicit, finger-sized AI sharing action. */
body.orb-field #photoGrid .photo-item{aspect-ratio:auto;display:flex;flex-direction:column;min-width:0}
body.orb-field #photoGrid .photo-item img{height:90px;flex:none}
body.orb-field #photoGrid .photo-item button{min-height:44px;width:100%;margin:0;padding:6px;border:0;background:#284755;color:#fff;font:600 12px system-ui;cursor:pointer}
body.orb-field #photoGrid .photo-item button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}
body.orb-field #photoGrid .photo-item .field-photo-remove{background:#273340;color:#f1f5f9;border-top:1px solid #ffffff20}
body.orb-field #photoGrid .field-photo-capability{margin:0;padding:8px;background:#20303e;color:#e1eaf1;font:12px/1.45 system-ui;overflow-wrap:anywhere}
/* DEC573: keep the temporary measuring surface inside Safari's usable viewport. */
body.orb-field.field-measuring #fieldComposer,body.orb-field.field-measuring #addBtn{display:none!important}
body.orb-field.field-measuring #crosshair{visibility:hidden!important}
body.orb-field #measureToolbar{left:12px;right:12px;transform:none;width:auto;max-width:520px;margin:0 auto;bottom:calc(12px + var(--safe-bottom) + var(--field-viewport-bottom,0px));padding:12px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}
body.orb-field #measureToolbar.visible{display:grid}
body.orb-field #measureToolbar .measure-info{grid-column:1/-1;min-width:0;overflow-wrap:anywhere}
body.orb-field #measureToolbar small{font:12px/1.4 system-ui;color:#d1dce7}
body.orb-field #measureToolbar button{min-height:44px;font:600 14px system-ui}
body.orb-field #measureToolbar button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
body.orb-field #legendPanel{top:calc(var(--field-visible-top,0px) + var(--safe-top) + 60px);left:12px;width:min(340px,calc(100% - 24px));max-height:calc(var(--field-visible-height,100dvh) - var(--safe-top) - var(--safe-bottom) - 76px)}
body.orb-field #legendPanel .legend-header{flex:none;padding:4px 12px}
body.orb-field #legendPanel .legend-header button{min-width:44px;min-height:44px}
body.orb-field #legendContent{min-height:0;overflow-wrap:anywhere}
body.orb-field #legendContent .swatch{flex:none}
body.orb-field #legendPanel :focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}
body.orb-field #settingsPanel .toggle-switch-js{height:44px;padding:0;border:0;background:transparent}
body.orb-field #settingsPanel .toggle-switch-js::before{content:'';position:absolute;inset:10px 0;background:var(--bg-deep);border-radius:12px}
body.orb-field #settingsPanel .toggle-switch-js.active::before{background:var(--brand-accent)}
body.orb-field #settingsPanel .toggle-switch-js::after{top:12px}
body.orb-field #settingsPanel .toggle-switch-js:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
body.orb-field #settingsPanel .toggle-switch-js:disabled{opacity:.6;cursor:wait}

/* DEC488: opening AI hides the collection immediately; inherited visibility animation exposed it briefly. */
body.orb-field.field-ai-open #collectionPanel{transition:none}

/* DEC492: human review stays in the collection sheet, with touch-sized controls. */
.field-proposals { padding: 12px; margin: 12px 0; border: 1px solid #527a84; border-radius: 12px; }
.field-proposals > div { padding: 12px 0; border-top: 1px solid #527a8444; }
.field-proposals p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; }
.field-proposals input, .field-proposals textarea, .field-proposals select { box-sizing: border-box; width: 100%; min-height: 44px; font-size: 16px; }
.field-proposals button { min-height: 44px; padding: 8px 16px; margin: 8px 8px 0 0; }
.field-proposals summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
.field-proposals details img { display:block; max-width:100%; max-height:240px; object-fit:contain; border-radius:8px; }
.field-proposals textarea { min-height:88px; resize:vertical; }
.field-proposals summary::after { content:"⌄"; margin-left:auto; }
/* DEC497: inspecting an asset is the primary repeat-visit action; asset maintenance stays discoverable. */
body.orb-field .field-inspection-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body.orb-field .field-inspection-actions button{min-height:44px;white-space:normal;padding:10px 8px}
body.orb-field [data-field-inspect]{background:#176b64;border-color:#46958a;color:#fff}
body.orb-field .field-asset-actions summary,body.orb-field .field-inspection-history summary{min-height:44px;align-content:center;cursor:pointer}
body.orb-field .field-asset-actions{margin-top:8px}
body.orb-field .field-inspection-history{overflow-wrap:anywhere}
body.orb-field .field-inspection-history>details{border:1px solid var(--border-subtle);border-radius:12px;padding:8px 12px;margin:12px 0}
body.orb-field .field-inspection-history p,body.orb-field #fieldInspectionNotice{font-size:14px;line-height:1.5;white-space:pre-wrap}
body.orb-field #fieldInspectionNotice{padding:12px;border-left:3px solid #46958a;background:#176b641f;border-radius:8px}
body.orb-field .field-inspection-history button{min-height:44px}
body.orb-field .field-inspection-history pre{white-space:pre-wrap;font-size:13px}
body.orb-field .field-inspection-history img{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:8px;margin:8px 0}
/* DEC502: keep the scrollable records area useful on a phone; maintenance is a secondary disclosure. */
body.orb-field #syncPanel .slider-content{min-height:0;padding-bottom:20px}
body.orb-field .field-records-note{font-size:14px;line-height:1.5;color:#c5d1dc;margin:0 0 16px}
body.orb-field .field-record-tools{margin:16px 0;border-top:1px solid var(--border-subtle);padding-top:8px}
body.orb-field .field-record-tools summary{min-height:44px;align-content:center;cursor:pointer;font-size:14px;font-weight:600}
body.orb-field .field-record-tools .sync-cloud-section{margin:8px 0;padding:12px}
body.orb-field #syncPanel .sync-toolbar{padding:8px 0;flex-wrap:wrap}
/* DEC1102: Reload app keeps saved work, so it reads as an ordinary action; Log Out keeps the warning colour. */
body.orb-field #settingsPanel .settings-logout-btn.settings-neutral-btn{background:#273e50;border-color:var(--border-subtle,#52606d);color:var(--text-primary,#edf5f8)}
/* DEC1102: Data & models sits over Ask ORB; an opaque surface stops the conversation text showing through it. */
body.orb-field #engineeringPanel{background:#14232e}
/* DEC1104: first sentence, then a ? for the rest (field-help.js). A 24px mark with a 44px touch area. */
body.orb-field :is(#syncPanel,#settingsPanel,#fieldProjects,#engineeringPanel) button.field-help-toggle{position:relative;display:inline-grid;place-items:center;width:24px;height:24px;min-width:0;min-height:0;margin:0 2px;padding:0;vertical-align:middle;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;font:600 13px/1 system-ui;cursor:pointer}
body.orb-field button.field-help-toggle::before{content:'';position:absolute;inset:-10px}
body.orb-field :is(#syncPanel,#settingsPanel,#fieldProjects,#engineeringPanel) button.field-help-toggle[aria-expanded=true]{background:#c5d1dc;border-color:#c5d1dc;color:#16222c}
body.orb-field button.field-help-toggle:focus-visible{outline:2px solid #8fe7d7;outline-offset:2px}
body.orb-field .field-help-more[hidden]{display:none}
/* DEC1100: the storage line speaks only when there is a problem; draft backup notes follow the Records note style. */
body.orb-field #syncStorageText:empty,body.orb-field #fieldDraftBackupTools:empty{display:none}
body.orb-field #fieldDraftBackupTools p{flex-basis:100%;font-size:13px;line-height:1.5;color:#c5d1dc;margin:4px 0}
body.orb-field #fieldDraftBackupTools p:empty{display:none}
body.orb-field #syncPanel button{min-height:44px}
/* DEC504: record review gets the space; the same conversation remains one tap away. */
body.orb-field.field-records-open:not(.field-ai-open) #fieldComposer form{display:none}
body.orb-field.field-records-open #fieldAskExpand{min-height:44px}
body.orb-field #syncPanel.tall:not(.minimized){--panel-height:calc(var(--field-visible-height,100dvh) * .60)}
/* DEC506: pausing a form is secondary to Save, with explicit unfinished/device-local language. */
body.orb-field .field-draft-actions{padding:12px 0;margin:12px 0;border-top:1px solid var(--border-subtle)}
body.orb-field #fieldSaveDraft{min-height:44px;width:100%;border:1px solid #527a84;border-radius:10px;background:#203442;color:#edf5f8;font:600 15px system-ui;padding:10px}
body.orb-field .field-draft-actions p,body.orb-field #fieldDraftList p{font-size:13px;line-height:1.5;color:#c5d1dc;margin:8px 0}
/* DEC1101: occasional form tools (field check, recovery switch and its notes) share one disclosure under the draft action. */
body.orb-field .field-form-options{margin-top:8px}
body.orb-field .field-form-options>summary{min-height:44px;align-content:center;cursor:pointer;color:#c5d1dc;font:600 14px system-ui}
body.orb-field .field-form-options>summary:focus-visible{outline:2px solid #8fe7d7;outline-offset:2px;border-radius:6px}
body.orb-field .field-form-options .field-entry-check{margin:4px 0 8px;padding:0;border:0}
body.orb-field .field-auto-draft{display:flex;align-items:center;gap:10px;min-height:44px;color:#edf5f8;font-size:14px;cursor:pointer}
body.orb-field #fieldAutoDraft{width:20px;height:20px;flex:0 0 20px;accent-color:#4dd4bc}
body.orb-field #fieldDraftStatus[data-state="error"]{color:#ffd0a8}
body.orb-field .field-draft-card{padding:12px;margin:12px 0;border:1px solid #527a84;border-radius:12px;overflow-wrap:anywhere}
body.orb-field .field-draft-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body.orb-field .field-draft-buttons button{width:100%}
body.orb-field .field-records-empty{color:#edf5f8;font-size:14px;line-height:1.6;text-align:left;border:1px solid var(--border-subtle);border-radius:12px;padding:16px;margin:12px 0 20px}
/* DEC509: collection owns the sheet; keep its position summary and labels legible. */
body.orb-field #collectionPanel.tall:not(.minimized){--panel-height:calc(var(--field-visible-height,100dvh) * .62)}
body.orb-field #collectionPanel .form-group label{color:#e2edf7;font-size:13px;line-height:1.4;letter-spacing:.025em}
body.orb-field #collectionPanel .collect-action-btn,body.orb-field #collectionPanel .collection-header .cancel-btn{color:#edf5f8}
body.orb-field button.template-list-item,body.orb-field button.subtype-item{width:100%;font:inherit;color:var(--text-primary);text-align:left;min-height:48px}
body.orb-field button.template-list-item:focus-visible,body.orb-field button.subtype-item:focus-visible{outline:2px solid #8fe7d7;outline-offset:2px}
/* DEC568: read-only readiness uses a bounded native dialog without replacing the current form.
 * DEC1090: centre with auto margins, never a transform. canvas-workspace.css centres every modal dialog with
 * inset:0 and margin:auto (both !important), so translateX(-50%) pushed this one half its width off-screen. */
.field-status-dialog { position:fixed; inset:calc(var(--field-visible-top, 0px) + 12px) 0 auto; margin:0 auto; width:min(520px, calc(100vw - 24px)); max-width:none; max-height:calc(var(--field-visible-height, 100dvh) - 24px); box-sizing:border-box; padding:16px; border:1px solid #718293; border-radius:14px; background:#182a38; color:#edf5f8; overflow:hidden; }
.field-status-dialog[open] { display:flex; flex-direction:column; gap:14px; }
.field-status-dialog::backdrop { background:rgb(0 0 0 / 78%); }
.field-status-dialog header { display:flex; align-items:center; justify-content:space-between; gap:12px; flex:none; }
.field-status-dialog h2 { margin:0; font:600 18px/1.4 system-ui; }
.field-status-dialog button { min-height:44px; min-width:44px; padding:8px 14px; border:1px solid #8194a5; border-radius:8px; color:#fff; background:#273e50; font:600 14px system-ui; cursor:pointer; }
.field-status-dialog section { overflow:auto; min-height:0; font:14px/1.5 system-ui; }
.field-status-dialog dl { margin:0; }
.field-status-dialog dt { font-weight:600; }
.field-status-dialog dd { margin:2px 0 16px; color:#cbd9e4; }
.field-status-dialog p { margin:0; color:#cbd9e4; }
.field-status-dialog :focus-visible { outline:3px solid #80e9dc; outline-offset:2px; }

body.orb-field #settingsPanel{top:calc(var(--field-visible-top,0px) + var(--safe-top) + 60px);left:12px;right:auto;width:min(360px,calc(100% - 24px));max-height:calc(var(--field-visible-height,100dvh) - var(--safe-top) - var(--safe-bottom) - 76px)}
body.orb-field #settingsPanel .settings-header{flex:none;padding:4px 12px}
body.orb-field #settingsPanel .settings-header button{min-height:44px;min-width:44px}
body.orb-field #settingsPanel .settings-content{min-height:0;overflow-wrap:anywhere}
body.orb-field #snapDistanceSlider{min-height:44px}
/* DEC1111: the distance sits beside its slider with room to read, and does not jitter as the digits change. */
body.orb-field #snapDistanceRow .setting-value{margin-right:12px;min-width:3.2em;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
body.orb-field #settingsPanel :focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
body.orb-field #bookmarksPanel{top:calc(var(--field-visible-top,0px) + var(--safe-top) + 60px);left:12px;right:auto;width:min(360px,calc(100% - 24px));max-height:calc(var(--field-visible-height,100dvh) - var(--safe-top) - var(--safe-bottom) - 76px)}
body.orb-field #bookmarksPanel .bookmarks-header{flex:none;padding:4px 12px}
body.orb-field #bookmarksPanel .bookmarks-actions{flex:none}
body.orb-field #bookmarksPanel button{min-height:44px}
body.orb-field #bookmarksPanel .bookmarks-header button{min-width:44px}
body.orb-field #bookmarksList{min-height:0}
body.orb-field #bookmarksList .bookmark-item{padding:4px;gap:6px;cursor:default}
body.orb-field #bookmarksList .bookmark-open{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:center;text-align:left;border:0;border-radius:6px;background:transparent;padding:6px;color:inherit;cursor:pointer}
body.orb-field #bookmarksList .name{white-space:normal;overflow-wrap:anywhere}
body.orb-field #bookmarksList .delete{opacity:1;flex:none;color:#efb8b8;font:13px system-ui;padding:6px}
body.orb-field #bookmarksPanel :focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}
body.orb-field #bookmarkStatus{margin:0 0 8px;color:#e2edf5;font:12px/1.4 system-ui;overflow-wrap:anywhere}

/* DEC580: tablet space reduces scrolling; observation text keeps a full-width reading measure. */
@media(min-width:700px){
 body.orb-field #pointControls{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);align-items:center;gap:12px}
 body.orb-field #pointControls .field-placement-summary{margin:0}
 body.orb-field #collectionPanel .collect-action-btn{flex-direction:row;gap:10px;min-height:56px;padding:10px}
 body.orb-field #collectionPanel .collect-action-btn .icon{font-size:22px}
 body.orb-field #dynamicFormFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body.orb-field #dynamicFormFields>.form-group{min-width:0;margin-bottom:0}
 body.orb-field #dynamicFormFields>.form-group:has(textarea),body.orb-field #dynamicFormFields>:not(.form-group){grid-column:1/-1}
}

/* DEC581: normal-size collection text needs contrast over the sheet's lightest possible backdrop. */
body.orb-field #collectionPanel{--text-secondary:#dce6f0;--text-muted:#dce6f0;--error:#ffb4a9}
body.orb-field #submitBtn,body.orb-field #pointActionBtn,body.orb-field #vertexActionBtn{color:#0f172a;font-weight:700}
body.orb-field #collectionPanel input::placeholder,body.orb-field #collectionPanel textarea::placeholder{color:#bac8d8;opacity:1}
/* DEC583: local filtering and deliberate online discovery share one accessible result surface. */
body.orb-field .slider-panel#searchPanel{--text-secondary:#dce6f0;--text-muted:#dce6f0;height:min(520px,calc(var(--field-visible-height,100dvh) - 64px - var(--safe-top)));max-height:calc(var(--field-visible-height,100dvh) - 64px - var(--safe-top))}
body.orb-field:has(#searchPanel.visible) #fieldComposer{display:none}
body.orb-field #searchPanel .slider-handle{padding:6px 16px}
body.orb-field #searchResults{min-height:0;overflow:auto}
body.orb-field #searchPanel .search-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
body.orb-field #searchInput{min-width:0;font-size:16px;height:44px;padding-right:12px}
body.orb-field #searchInput::placeholder{color:#bac8d8;opacity:1}
body.orb-field #fieldSearchOnline{min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:var(--brand-primary);color:#0f172a;font:700 14px system-ui}
body.orb-field #fieldSearchOnline:disabled{opacity:.6;cursor:wait}
body.orb-field #fieldSearchHelp{margin:0;padding:0 16px 12px;color:var(--text-secondary);font:13px/1.4 system-ui}
body.orb-field #searchPanel .close-btn{min-height:44px;min-width:44px}
body.orb-field #searchResults .search-result-item{width:100%;min-height:56px;box-sizing:border-box;border:1px solid var(--border-subtle);border-radius:10px;margin-bottom:6px;background:var(--bg-surface);color:var(--text-primary);text-align:left;font:inherit}
body.orb-field #searchResults .store-info{display:flex;flex-direction:column;min-width:0}
body.orb-field #searchResults :is(.store-id,.store-name){white-space:normal;overflow-wrap:anywhere}
body.orb-field #searchPanel :focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}
/* DEC585: site context has a fixed exit and scrollable content in reduced Safari viewports. */
body.orb-field .slider-panel#featurePanel{height:min(460px,calc(var(--field-visible-height,100dvh) - 64px - var(--safe-top)));max-height:calc(var(--field-visible-height,100dvh) - 64px - var(--safe-top));--text-secondary:#dce6f0;--text-muted:#dce6f0}
body.orb-field:has(#featurePanel.visible) #fieldComposer{display:none}
body.orb-field #featurePanel .slider-handle{padding:6px 16px}
body.orb-field #featurePanel .close-btn{min-width:44px;min-height:44px}
body.orb-field #featurePanel .slider-content{min-height:0;overflow:auto}
body.orb-field #featurePanel .field-site-note{font:13px/1.5 system-ui;color:var(--text-secondary);margin:12px 0}
body.orb-field #featurePanel .action-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
body.orb-field #featurePanel .action-btn{min-height:56px;padding:8px;white-space:normal}
body.orb-field #fieldSiteCollect{background:var(--brand-primary);color:#0f172a;font-weight:700}
body.orb-field #featurePanel :is(.detail-value,.feature-title){min-width:0;overflow-wrap:anywhere}
body.orb-field #featurePanel :focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}
/* DEC587: layers are a focused map task; the persistent collection remains resumable. */
body.orb-field .slider-panel#layersPanel{height:min(420px,calc(var(--field-visible-height,100dvh) - 64px - var(--safe-top)));max-height:calc(var(--field-visible-height,100dvh) - 64px - var(--safe-top));--text-secondary:#dce6f0;--text-muted:#dce6f0}
body.orb-field:has(#layersPanel.visible) #fieldComposer{display:none}
body.orb-field #layersPanel .slider-handle{padding:6px 16px}
body.orb-field #layersPanel .slider-content{min-height:0;overflow:auto}
body.orb-field #layersPanel .close-btn{min-width:44px;min-height:44px}
body.orb-field #layersPanel .toggle-switch{width:44px;height:44px}
body.orb-field #layersPanel .toggle-switch input{position:absolute;inset:0;width:44px;height:44px;margin:0;z-index:1;cursor:pointer}
body.orb-field #layersPanel .toggle-slider{top:10px;bottom:10px}
body.orb-field #layersPanel .toggle-switch input:focus-visible+.toggle-slider{outline:2px solid var(--brand-accent);outline-offset:3px}
body.orb-field #layersPanel .field-overlay-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}
body.orb-field #fieldOverlayExpand{flex:1;min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}
body.orb-field #fieldOverlayExpand :is(.layer-name,.layer-error){display:block}
body.orb-field #layersPanel #overlaysOpacitySlider{min-height:44px}
body.orb-field #layersPanel button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
body.orb-field .field-overlay-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}
body.orb-field .field-overlay-place{display:flex;flex:1;flex-direction:column;justify-content:center;min-width:0;min-height:44px;padding:4px;border:0;border-radius:6px;background:transparent;color:var(--text-primary);font:14px/1.4 system-ui;text-align:left;overflow-wrap:anywhere;cursor:pointer}
body.orb-field .field-overlay-place small{color:var(--text-secondary);font-size:12px}
body.orb-field .field-overlay-note{padding:8px;color:var(--text-secondary);font:13px/1.5 system-ui}
body.orb-field .field-overlay-retry{min-height:44px;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font:600 14px system-ui}
body.orb-field .field-overlay-info{flex:1;min-width:0}
body.orb-field .field-overlay-info .field-overlay-place{width:100%}
body.orb-field .field-overlay-state{display:block;padding:0 4px;color:var(--text-secondary);font:12px/1.5 system-ui;overflow-wrap:anywhere}
/* DEC594: short entry controls share the collection actions' minimum touch height. */
body.orb-field #dynamicFormFields :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:44px}
/* DEC597: compact tools retain a direct collection action when the floating one has no room. */
body.orb-field :is(#searchPanel,#layersPanel) .slider-header{gap:8px}
body.orb-field :is(#searchPanel,#layersPanel) .slider-header h3{flex:1;min-width:0}
body.orb-field .field-tool-collect{display:none;min-height:44px;padding:8px 10px;border:0;border-radius:10px;background:var(--brand-primary);color:#0f172a;font:700 13px/1.2 system-ui;cursor:pointer}
body.orb-field.field-add-obscured .field-tool-collect{display:inline-flex;align-items:center;justify-content:center}

/* DEC598: correction stays adjacent to its control; the existing summary announces failed save. */
#dynamicFormFields .field-form-error { margin: 6px 0 0; color: #ffc4ba; font-size: 13px; line-height: 1.45; }
#dynamicFormFields .field-form-error[hidden] { display: none; }

/* DEC604: reported uncertainty is informational; an old fix gets a freshness warning. */
body.orb-field .location-banner .loc-text { color: #e2e8f0; }
body.orb-field .location-banner.gps-stale .loc-text { color: #ffd48a; }

/* DEC606: previous visits are reference material inside the retained collection, never form inputs. */
body.orb-field .field-previous-inspection{margin-top:10px;white-space:normal;overflow-wrap:anywhere}
body.orb-field .field-previous-inspection>.sync-action{min-height:44px;margin:0}
body.orb-field .field-previous-inspection>p:empty{display:none}
body.orb-field .field-previous-inspection>p{margin:8px 0;color:var(--text-secondary)}
/* DEC608: progressive disclosure keeps saved decisions scannable at field widths. */
body.orb-field .field-review-audit{border-top:1px solid var(--border-subtle);padding:4px 0;margin-top:8px}
body.orb-field .field-review-audit p{margin:8px 0}
body.orb-field .field-review-audit>details{padding:0 10px;border-left:2px solid var(--border-subtle)}
/* DEC609: optional completeness review stays below entry fields, separate from the primary Save. */
body.orb-field .field-entry-check{margin:12px 0;padding-top:12px;border-top:1px solid var(--border-subtle)}
body.orb-field .field-entry-check button{min-height:44px;padding:8px 16px;font:inherit;color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:8px}
body.orb-field #fieldCheckResult{font-size:14px;line-height:1.5;margin:8px 0}
/* DEC610: captured evidence is optional detail; its disclosure never displaces the primary position action. */
body.orb-field .field-position-details{margin:8px 0 12px;border-bottom:1px solid var(--border-subtle);font-size:14px;overflow-wrap:anywhere}
body.orb-field .field-position-details summary{min-height:44px;align-content:center;cursor:pointer}
body.orb-field .field-position-details p{white-space:pre-wrap;line-height:1.5;margin:8px 0 12px}
/* DEC613: keep the primary actions and recovery status readable on small phones. The button's full ARIA name stays intact. */
@media(max-width:350px){
 body.orb-field #fieldCollectionAsk{width:auto;min-width:44px;white-space:nowrap}
 body.orb-field #collectionPanel .collection-heading h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}

/* DEC615: native hidden state must win over the collection action layout. */
body.orb-field #submitBtn[hidden],body.orb-field #fieldRecoveryBadge[hidden],body.orb-field #fieldTemplateEmpty[hidden]{display:none!important}
body.orb-field #fieldTemplateEmpty{padding:16px 0;color:#e2e8f0}
body.orb-field .back-btn-small{min-width:44px;min-height:44px}

/* DEC616: corrections stay secondary to capture and reachable with gloves. */
body.orb-field .field-vertex-corrections{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
body.orb-field .field-vertex-corrections button{min-height:44px;min-width:0;padding:8px;border:1px solid #75879a;border-radius:10px;background:#263c50;color:#edf5f8;font:600 14px system-ui;white-space:normal}
body.orb-field .field-vertex-corrections button:disabled{opacity:.5}

/* DEC617: unavailable static choices cannot override the native hidden contract. */
body.orb-field #templateSection button[hidden]{display:none!important}

/* DEC618: native basemap dialog owns focus; its content scrolls within the visible viewport. */
body.orb-field dialog.basemap-modal:modal{box-sizing:border-box;width:100%;max-width:100%!important;height:var(--field-visible-height,100dvh);max-height:var(--field-visible-height,100dvh)!important;margin:0!important;border:0;inset:var(--field-visible-top,0px) 0 auto!important;overflow:hidden;padding:12px;color:#edf5f8;background:transparent}
body.orb-field dialog.basemap-modal::backdrop{background:rgba(0,0,0,.6)}
body.orb-field .basemap-content{box-sizing:border-box;max-height:calc(var(--field-visible-height,100dvh) - 24px);overflow-y:auto;padding:16px}
body.orb-field .basemap-close{min-width:44px;min-height:44px}
body.orb-field .basemap-option{min-height:44px;min-width:0;font:inherit}
body.orb-field .basemap-option span{font-size:13px;color:#e2e8f0}
body.orb-field .basemap-option:focus-visible,body.orb-field .basemap-close:focus-visible{outline:3px solid #80e9dc;outline-offset:2px}
@media(max-width:450px){body.orb-field .basemap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.orb-field .basemap-option img{aspect-ratio:2/1;max-height:80px}body.orb-field .basemap-option span{overflow-wrap:normal}}

/* DEC624/625: secondary tools fit Safari's visible viewport and name their exits. */
dialog#georefView:not([open]),dialog#passwordModal:not([open]){display:none!important}
body.orb-field dialog#georefView:modal,body.orb-field dialog#passwordModal:modal{box-sizing:border-box;width:100%;max-width:100%!important;height:var(--field-visible-height,100dvh);max-height:var(--field-visible-height,100dvh)!important;margin:0!important;border:0;inset:var(--field-visible-top,0px) 0 auto!important;color:#edf5f8}
body.orb-field dialog#georefView:modal{padding:0;background:#152434}
body.orb-field dialog#passwordModal:modal{padding:16px;overflow:auto;background:transparent;align-items:safe center}
body.orb-field dialog#passwordModal::backdrop{background:rgba(0,0,0,.65)}
body.orb-field #passwordModal .modal-content{box-sizing:border-box;width:min(100%,400px);max-height:100%;overflow:auto}
body.orb-field #passwordModal label{display:block;margin-bottom:8px;font-size:14px}
body.orb-field #passwordModal input{font-size:16px}
body.orb-field #georefView .back-btn,body.orb-field #passwordModal button,body.orb-field #layerConfigView button{min-height:44px;min-width:44px}
body.orb-field #georefView .georef-iframe{min-height:0}
body.orb-field #layerConfigView{top:var(--field-visible-top,0px);bottom:auto;height:var(--field-visible-height,100dvh);box-sizing:border-box;max-width:100vw}
body.orb-field #layerConfigView .layer-config-search{font-size:16px;min-height:44px;box-sizing:border-box}
@media(max-width:600px){
 body.orb-field #layerConfigView .layer-config-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:10px}
 body.orb-field #layerConfigView .layer-config-header h2{margin:0;font-size:16px}
 body.orb-field #layerConfigView .layer-config-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
 body.orb-field #layerConfigView .layer-config-sidebar{max-height:25%;min-height:100px;flex-shrink:0}
 body.orb-field #layerConfigView .layer-config-editor{min-height:0;min-width:0}
 body.orb-field #layerConfigView .layer-config-body{min-height:0}
}

body.orb-field #passwordModal .modal-subtitle{color:#dce6f0}
body.orb-field #passwordModal .modal-btn.cancel{color:#edf5f8;background:#263c50;border-color:#75879a}

/* DEC625: native layer/type controls share one keyboard and touch selection path. */
body.orb-field .layer-tree-row{display:flex;align-items:center}
body.orb-field .layer-tree-item-header,body.orb-field .layer-tree-subtype,body.orb-field .layer-tree-expand{border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-sizing:border-box}
body.orb-field .layer-tree-item-header{flex:1;min-width:0;width:100%}
body.orb-field .layer-tree-subtype{width:100%}
body.orb-field .layer-tree-expand{flex:0 0 44px;display:grid;place-items:center}
body.orb-field .layer-tree-expand[hidden]{display:none!important}
body.orb-field .layer-tree-info{min-width:0}
body.orb-field .layer-tree-row button:focus-visible,body.orb-field .layer-tree-subtype:focus-visible{outline:3px solid #80e9dc;outline-offset:-3px}

/* DEC626: red close, green open, neutral minimize; names remain available to assistive technology. */
body.orb-field button[data-field-control="close"],body.orb-field button[data-field-control="minimize"]{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;min-width:44px!important;width:44px;min-height:44px!important;height:44px;padding:0!important;border:1px solid #526579;border-radius:8px;background:#182939;color:#ff7373!important;font:700 28px/1 system-ui!important;text-decoration:none}
body.orb-field button[data-field-control="minimize"]{color:#d2d9e0!important}
body.orb-field button[data-field-control="open"]::before{content:"+";display:inline-block;color:#76e0ad;font:700 22px/1 system-ui;flex-shrink:0;margin-right:6px;vertical-align:middle}
/* DEC659: native “Ask Orb ?” text shares one baseline; no leading pseudo-symbol. */
body.orb-field :is(#fieldAskExpand,#fieldCollectionAsk)[data-field-control="open"]::before{content:none;display:none}
body.orb-field #fieldCollectionAsk{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1}
body.orb-field .header-btn[data-field-control="open"]{position:relative}
body.orb-field .header-btn[data-field-control="open"]::before{position:absolute;right:1px;top:0;margin:0;font-size:15px;text-shadow:0 1px 2px #102331}
/* DEC636: keep recognizable artwork; the opening plus is only needed on text controls. */
body.orb-field button[data-field-control="open"]:has(img,svg,.icon,.field-project-thumbnail)::before,
body.orb-field .header-btn[data-field-control="open"]::before,
body.orb-field #fieldProjectsOpen[data-field-control="open"]::before{content:none;display:none}
body.orb-field button[data-field-control]:focus-visible{outline:3px solid #80e9dc;outline-offset:2px}
body.orb-field #fieldAskSize[data-field-control="open"]{font-size:0;padding:0;width:44px}
body.orb-field #fieldAskSize[data-field-control="open"]::before{margin:0;font-size:28px}

body.orb-field .layer-tree-expand[data-field-control="open"]{font-size:0}
body.orb-field .layer-tree-expand[data-field-control="open"]::before{margin:0;font-size:24px}


/* DEC628: reference list rhythm works with either ORB appearance; branding stays intact. */
body.orb-field .template-group-header{text-transform:none;letter-spacing:0;font-size:12px;padding:16px 0 7px}
body.orb-field button.template-list-item,body.orb-field button.subtype-item{min-height:56px;margin:0;border-radius:0;border:0;border-bottom:1px solid var(--border-subtle);box-shadow:none}
body.orb-field #fieldTheme{min-height:44px;min-width:100px;font:16px inherit;background:var(--bg-card-solid);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:8px;padding:8px}
body.orb-field #fieldThemeStatus{font-size:13px;color:var(--text-secondary)}
body.orb-field[data-field-theme="light"] .settings-panel{background:#fafafa;color:#17212b}
body.orb-field[data-field-theme="light"] .settings-header{background:#fff;color:#17212b}

/* DEC629: a native project library, retaining the map/collection behind it. */
body.orb-field #fieldProjectsOpen{min-height:44px;min-width:44px;max-width:100%;padding:0;background:transparent;color:var(--text-primary);border:0;cursor:pointer}
body.orb-field #fieldProjectsOpen .header-title{overflow:hidden;text-overflow:ellipsis}
/* DEC642: the Projects launcher uses a leading back chevron, matching the owner's reference. */
body.orb-field #fieldProjectsOpen::after{content:none}
body.orb-field #fieldProjectsOpen .field-project-back{display:block;flex:none;width:18px;height:24px;color:var(--brand-primary)}
body.orb-field #fieldProjects{box-sizing:border-box;width:min(100%,680px);height:var(--field-visible-height,100dvh);max-height:var(--field-visible-height,100dvh);max-width:100%;margin:0 auto;inset:var(--field-visible-top,0px) 0 auto;border:0;background:var(--bg-deep);color:var(--text-primary);padding:0}
body.orb-field #fieldProjects:not([open]){display:none}
body.orb-field #fieldProjects[open]{display:flex;flex-direction:column}
body.orb-field #fieldProjects::backdrop{background:#06122099}
body.orb-field #fieldProjects header{display:flex;align-items:center;justify-content:space-between;padding:calc(12px + var(--safe-top)) 16px 12px;border-bottom:1px solid var(--border-subtle)}
body.orb-field #fieldProjects h2{font-size:30px;letter-spacing:-.8px;margin:0}
body.orb-field .field-project-content{overflow:auto;min-height:0;padding:16px 16px calc(20px + var(--safe-bottom))}
body.orb-field .field-project-intro{color:var(--text-secondary);margin:0 0 18px}
body.orb-field #fieldProjects label{display:block;font-size:13px;color:var(--text-secondary)}
body.orb-field #fieldProjects input:not([type=checkbox]){display:block;box-sizing:border-box;min-height:44px;width:100%;font:16px system-ui;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:9px;padding:10px;margin:6px 0 12px}
body.orb-field #fieldProjects button{min-height:44px;min-width:44px;font:15px system-ui;border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);background:var(--bg-card);cursor:pointer}
body.orb-field .field-project-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}
body.orb-field #fieldProjectNew{padding:8px 12px;color:var(--brand-primary)}
/* DEC1105: New project leads on its own row; archive visibility and workspace recovery are quieter, below it.
 * Optional S3 routing waits in one disclosure inside the project form. */
body.orb-field .field-project-actions{flex-wrap:wrap;justify-content:flex-start}
body.orb-field #fieldProjects #fieldProjectNew{flex:1 0 100%;font-weight:600}
body.orb-field .field-project-actions>label{margin-right:auto;min-height:44px;align-content:center}
body.orb-field #fieldProjects .field-project-actions>button:not(#fieldProjectNew){padding:6px 10px;font-size:13px;color:var(--text-secondary)}
body.orb-field .field-project-routing{margin:4px 0 8px;border-top:1px solid var(--border-subtle)}
body.orb-field .field-project-routing>summary{min-height:44px;align-content:center;cursor:pointer;font:600 14px system-ui;color:var(--text-primary)}
body.orb-field .field-project-routing>summary:focus-visible{outline:2px solid #8fe7d7;outline-offset:2px;border-radius:6px}
body.orb-field #fieldProjectList h3{color:var(--text-secondary);font-size:13px;font-weight:500;margin:20px 0 6px}
body.orb-field .field-project-row{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border-subtle);padding:8px 0}
body.orb-field .field-project-row>button:first-child{flex:1;display:flex;align-items:center;gap:12px;text-align:left;background:transparent!important;border:0!important;min-width:0;padding:4px 0}
body.orb-field .field-project-row>button:last-child{border:0!important;background:transparent!important;color:var(--brand-primary)!important;font-size:24px!important}
body.orb-field .field-project-row strong{display:block;font-size:16px;font-weight:500;overflow-wrap:anywhere}
body.orb-field .field-project-row small{display:block;color:var(--text-secondary);margin-top:5px}
body.orb-field .field-project-thumbnail{display:grid;place-items:center;flex:0 0 68px;height:60px;border-radius:7px;background:linear-gradient(135deg,#19567a,#087f66);color:#d7eef1;font-size:32px}
body.orb-field .field-project-scope{font-size:12px;line-height:1.5;color:var(--text-secondary);padding-top:18px;border-top:1px solid var(--border-subtle);margin-top:24px}
body.orb-field #fieldProjectDetails{background:var(--bg-card);padding:16px;border-radius:12px;margin-top:16px}
body.orb-field #fieldProjectDetails p{color:var(--text-secondary);font-size:13px;line-height:1.5}
body.orb-field #fieldProjectDetails button{padding:8px;margin:8px 6px 0 0}
body.orb-field #fieldProjectStatus{font-size:14px;line-height:1.5;color:var(--text-primary)}
body.orb-field .icon-picker-trigger{font:inherit;color:inherit;text-align:left}
body.orb-field .icon-picker-item{color:var(--text-primary);font:inherit;min-height:64px}
body.orb-field[data-field-theme="light"] #fieldProjects{background:#fff}

body.orb-field #settingsPanel label.setting-info>span{display:block}
body.orb-field #fieldProjectsOpen{display:flex;align-items:center;position:relative;gap:2px}
body.orb-field #fieldProjectsOpen[data-field-control="open"]::before{position:absolute;top:0;right:0;font-size:12px;margin:0}

body.orb-field #fieldProjectsOpen{font:inherit}

body.orb-field #fieldProjects:modal{max-width:100%!important;max-height:var(--field-visible-height,100dvh)!important;margin:0 auto!important;border-radius:0}

/* DEC638: shared form typography avoids a theme-dependent native select fallback. */
body.orb-field #collectionPanel :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select){font-family:system-ui,sans-serif!important}

/* DEC640: explicit placement mode retains native geometry actions and the owning form.
   The legacy 60px minimized state cannot expose these controls. */
body.orb-field #fieldPlacementToggle{min-height:44px;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-card);color:var(--text-primary);font:600 13px system-ui;cursor:pointer;white-space:nowrap}
body.orb-field #collectionPanel.field-placement-map{height:auto!important;max-height:calc(var(--field-visible-height,100dvh) - 160px - var(--safe-top));min-height:0}
body.orb-field #collectionPanel.field-placement-map>.slider-handle{padding:6px;pointer-events:none;cursor:default}
body.orb-field #collectionPanel.field-placement-map .collection-header{padding-bottom:8px;flex-wrap:nowrap}
body.orb-field #collectionPanel.field-placement-map .collection-header-actions>:not(#fieldPlacementToggle),
body.orb-field #collectionPanel.field-placement-map #fieldRecoveryBadge,
body.orb-field #collectionPanel.field-placement-map #formSection>:not(#pointControls):not(#geometryDrawingControls):not(#fieldCollectionStatus){display:none!important}
body.orb-field #collectionPanel.field-placement-map>.slider-content{padding:8px 12px calc(10px + var(--safe-bottom));flex:0 1 auto}
body.orb-field #collectionPanel.field-placement-map #fieldPointHelp{margin:0 0 8px;font-size:12px}
body.orb-field #collectionPanel.field-placement-map .point-action-buttons{margin-bottom:0}
body.orb-field #collectionPanel.field-placement-map .geometry-status{margin:0 0 8px;padding:0}
body.orb-field #collectionPanel.field-placement-map .field-vertex-corrections{margin-top:6px}

/* DEC641: one connected mobile conversation surface, using the original panel/form owners. */
body.orb-field.field-ai-open #aiPanel{bottom:calc(12px + var(--safe-bottom) + var(--field-composer-height,112px) + var(--field-viewport-bottom,0px));height:var(--field-rainbot-height,calc(var(--field-visible-height,100dvh) * .64));border-radius:18px 18px 0 0;border-bottom:0;box-shadow:0 -4px 20px #0003}
body.orb-field.field-ai-open #fieldComposer{border-radius:0 0 18px 18px;box-shadow:none}
body.orb-field.field-ai-open #fieldComposer form{padding-top:10px}
body.orb-field #aiPanel>.slider-handle{display:none}
/* DEC1147: one pointer/keyboard resize owner; minimized dialogue keeps voice and text mounted. */
body.orb-field #aiPanel .rainbot-resize{display:flex;align-items:center;justify-content:center;flex:0 0 28px;cursor:ns-resize;touch-action:none;user-select:none}
body.orb-field #aiPanel .rainbot-resize span{width:36px;height:4px;border-radius:4px;background:var(--text-secondary);opacity:.65}
body.orb-field #aiPanel .rainbot-resize:focus-visible{outline:2px solid var(--brand-primary);outline-offset:-3px;border-radius:12px}
body.orb-field #aiPanel.rainbot-resizing{transition:none;user-select:none}
body.orb-field.field-ai-minimized #aiPanel{top:auto;height:56px!important;min-height:0;max-height:56px!important}
body.orb-field.field-ai-minimized #aiPanel>:not(.slider-header){display:none!important}
body.orb-field.field-ai-minimized #aiPanel>.slider-header{min-height:56px;box-sizing:border-box;padding-top:6px;padding-bottom:6px}
body.orb-field #rainbotMinimize{font-size:22px;padding:0;min-width:44px}
body.orb-field #rainbotHandsFree{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px 10px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-card);color:var(--text-primary);font:600 12px/1.2 system-ui;max-width:90px;white-space:normal}
body.orb-field #rainbotHandsFree[aria-pressed=true]{background:var(--brand-primary);color:white}
body.orb-field #aiPanel>.slider-header{padding:10px 12px;border-bottom:1px solid var(--border-subtle)}
body.orb-field #aiPanel #aiPanelBody{padding:0 12px 12px;font:16px/1.5 system-ui;color:var(--text-primary)}
body.orb-field #aiPanel #ow-atlas{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:inherit}
body.orb-field #aiPanel #conversationFeed #owTranscript article{font:16px/1.5 system-ui!important;overflow-wrap:anywhere;margin-bottom:16px;color:var(--text-primary)!important}
body.orb-field #aiPanel #conversationFeed #owTranscript article[data-role=user]{margin-left:8%;padding:10px 12px!important;border-radius:14px 14px 4px 14px;background:var(--field-message-user,rgba(15,23,42,.35))!important}
body.orb-field #aiPanel #conversationFeed #owTranscript article[data-role=assistant]{padding:0;background:transparent!important;border-radius:0}
body.orb-field #aiPanel #conversationFeed #owTranscript article small{font:500 12px/1.4 system-ui;color:var(--text-secondary)!important;margin-bottom:4px}
body.orb-field #aiPanel #conversationFeed :is(pre,table){max-width:100%;overflow-x:auto}
body.orb-field #aiPanel #conversationFeed summary{min-height:44px;box-sizing:border-box;padding:10px 0;font:14px/1.5 system-ui;overflow-wrap:anywhere;cursor:pointer}

body.orb-field #aiPanel #chatLatest{position:fixed;right:12px;bottom:12px;min-height:44px;padding:8px 14px;z-index:2;border:1px solid var(--border-subtle);border-radius:22px;background:var(--bg-card-solid);color:var(--text-primary);font:600 14px system-ui}

/* DEC646: reference-led collection toolbar; one full-width point action and a joined attachment row. */
body.orb-field #collectionPanel .feature-info-header>#fieldPlacementToggle{flex:none;max-width:80px;white-space:normal}
body.orb-field #collectionPanel .feature-info-details>.geometry-type-badge{display:inline-block;margin-top:4px}
body.orb-field #fieldAttachmentsHeading{margin:14px 0 8px;padding-top:14px;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font:500 12px/1.4 system-ui;letter-spacing:.04em;text-transform:uppercase}
body.orb-field #collectionPanel .collect-action-row{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden;background:var(--bg-card)}
body.orb-field #collectionPanel .collect-action-row .collect-action-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;min-height:56px;margin:0;padding:10px 8px;border:0;border-radius:0;background:transparent;color:var(--brand-primary);font:600 15px system-ui;box-shadow:none}
body.orb-field #collectionPanel .collect-action-row .collect-action-btn+button{border-left:1px solid var(--border-subtle)}
body.orb-field #collectionPanel .collect-action-btn svg{flex:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* DEC645: document tiles expose the original filename and download action without an image placeholder. */
body.orb-field #photoGrid .field-file-item .field-photo-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:110px;padding:12px;color:var(--text-primary);background:var(--bg-card);white-space:normal;overflow-wrap:anywhere}
body.orb-field .field-file-icon{font:36px/1 system-ui;color:var(--brand-primary)}
body.orb-field #photoGrid .field-file-item .field-photo-preview>span:last-child{font:600 13px/1.4 system-ui}

/* DEC648: centered, native confirmation with an explicit non-destructive return. */
body.orb-field #fieldCollectionConfirm{box-sizing:border-box;width:min(300px,calc(100vw - 40px));max-height:calc(var(--field-visible-height,100dvh) - 32px);padding:20px 0 0;border:1px solid var(--border-subtle);border-radius:14px;background:var(--bg-card-solid);color:var(--text-primary);font:14px/1.4 system-ui;text-align:center;box-shadow:0 12px 40px #0005}
body.orb-field #fieldCollectionConfirm::backdrop{background:#0005}
body.orb-field #fieldCollectionConfirm h2{margin:0 20px 6px;font:650 17px/1.3 system-ui}
body.orb-field #fieldCollectionConfirm p{margin:0 20px 20px}
body.orb-field #fieldCollectionConfirm>div{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border-subtle)}
body.orb-field #fieldCollectionConfirm button{min-height:48px;border:0;background:transparent;color:var(--brand-primary);font:600 15px system-ui;cursor:pointer}
body.orb-field #fieldCollectionConfirm button+button{border-left:1px solid var(--border-subtle)}
body.orb-field #fieldCollectionConfirm button[data-destructive=true]{color:#ff6b6b}
body.orb-field #fieldCollectionConfirm button:disabled{opacity:.55}

/* DEC651: failure content needs an explicit theme pair, including inherited paragraph colors. */
body.orb-field #aiPanel #chatFailure{background:#392925;color:#ffe6df;border-color:#b88677}
body.orb-field #aiPanel #chatFailure p{color:inherit}

/* DEC654: an 18px caption preserves control size and lets GPS/reticle layout measure the complete header. */
body.orb-field{--header-height:70px}
body.orb-field #fieldSelectedProject{position:absolute;left:12px;right:12px;bottom:2px;height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;font:400 11px/16px system-ui;color:#b3bbc4;pointer-events:none}
body.orb-field[data-field-theme="light"] #fieldSelectedProject{color:#65717c}

/* DEC657/660: persistent true north uses the same themed button surface as GPS. */
body.orb-field #compassIndicator{display:flex;flex:0 0 32px;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:8px}
body.orb-field #compassIndicator svg{display:block;width:28px;height:28px;transition:none;transform-origin:center}
body.orb-field #compassIndicator:focus-visible{outline:3px solid var(--brand-accent);outline-offset:3px}
body.orb-field #compassIndicator:disabled{opacity:.55;cursor:default}

/* DEC657: smaller visible map controls retain 44px hit regions without overlapping neighbours. */
body.orb-field .map-controls :is(.btn-icon,#compassIndicator,#fieldCollectionZoom button){position:relative;overflow:visible;box-sizing:border-box}
body.orb-field .map-controls :is(.btn-icon,#compassIndicator,#fieldCollectionZoom button)::after{content:'';position:absolute;inset:-6px}
body.orb-field .map-controls>.btn-icon img{width:18px;height:18px}

/* DEC662: one quiet menu surface, grouped actions and consistently aligned trailing icons. */
body.orb-field #overflowMenu{--field-menu-bg:#20303f;--field-menu-ink:#e5edf3;--field-menu-line:#ffffff1c;background:var(--field-menu-bg);color:var(--field-menu-ink);width:248px;max-width:calc(100vw - 24px);right:12px;top:calc(var(--field-visible-top,0px) + var(--safe-top) + 72px);max-height:calc(var(--field-visible-height,100dvh) - var(--safe-top) - 88px);border:1px solid var(--field-menu-line);border-radius:12px;box-shadow:0 8px 28px #0004;overscroll-behavior:contain;scrollbar-width:thin}
body.orb-field[data-field-theme="light"] #overflowMenu{--field-menu-bg:#f5f7f8;--field-menu-ink:#243542;--field-menu-line:#1829391c;background:var(--field-menu-bg);color:var(--field-menu-ink)}
body.orb-field #overflowMenu .field-menu-group+section{border-top:1px solid var(--field-menu-line)}
body.orb-field #overflowMenu .field-menu-group h4{margin:0;padding:10px 14px 4px;font:600 11px/1.3 system-ui;letter-spacing:.04em;text-transform:uppercase;color:inherit;opacity:.7}
body.orb-field #overflowMenu button.field-menu-action{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;width:100%;padding:9px 44px 9px 14px;border:0;border-radius:0;background:transparent;color:var(--field-menu-ink)!important;font:400 14px/1.35 system-ui;text-align:left;white-space:normal}
body.orb-field #overflowMenu button.field-menu-action:is(:hover,:focus-visible){background:#8295a51c}
body.orb-field #overflowMenu button.field-menu-action:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
body.orb-field #overflowMenu button.field-menu-action[aria-pressed=true]{font-weight:600;background:#8295a51c}
body.orb-field #overflowMenu button.field-menu-action>:is(.icon,img){display:none}
body.orb-field #overflowMenu button.field-menu-action::before{content:none;display:none}
body.orb-field #overflowMenu button.field-menu-action::after{content:'';display:block;position:absolute;right:14px;top:50%;transform:translateY(-50%);flex:0 0 18px;width:18px;height:18px;background:currentColor;mask:var(--field-menu-icon) center/contain no-repeat;-webkit-mask:var(--field-menu-icon) center/contain no-repeat}
body.orb-field #overflowMenu #google3DMenuItem[aria-pressed=true]::before{content:'On';display:block;position:absolute;right:42px;font:600 11px system-ui}
body.orb-field #overflowMenu #google3DMenuItem[aria-pressed=true]{padding-right:70px}
/* DEC663: a compact, explicit resume/stop control appears only during phone following. */
body.orb-field #fieldPhoneHeadingStatus{position:absolute;z-index:105;left:12px;top:calc(82px + var(--safe-top));max-width:190px;min-height:44px;padding:7px 10px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card-solid);color:var(--text-primary);font:500 12px/1.3 system-ui;box-shadow:0 2px 8px #0003}
body.orb-field #fieldPhoneHeadingStatus[hidden]{display:none}
body.orb-field .map-area.banner-visible #fieldPhoneHeadingStatus{top:calc(122px + var(--safe-top))}
body.orb-field .field-heading-setting{min-height:44px;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card-solid);color:var(--text-primary);font:600 14px system-ui}
/* DEC663: GPS mode lives in the arrow, with readable colors in both themes.
 * Retain the image node for configured icon ownership but use a tintable vector. */
body.orb-field #gpsBtn #gpsIcon{display:none}
body.orb-field #gpsBtn{background:rgba(51,65,85,.75);border-color:var(--border-subtle);box-shadow:0 4px 12px rgba(0,0,0,.25)}
body.orb-field[data-field-theme="light"] #gpsBtn{background:#fff;border-color:#d6dce1;box-shadow:0 2px 8px #17212b22}
body.orb-field #gpsBtn .field-gps-arrow{display:block;width:18px;height:18px;color:#aab4c0}
body.orb-field #gpsBtn.gps-mode-1 .field-gps-arrow{color:#69b7ff}
body.orb-field #gpsBtn.gps-mode-2 .field-gps-arrow{color:#51d69a}
body.orb-field #gpsBtn.gps-mode-3 .field-gps-arrow{color:#ffcf5c}
body.orb-field[data-field-theme="light"] #gpsBtn .field-gps-arrow{color:#687582}
body.orb-field[data-field-theme="light"] #gpsBtn.gps-mode-1 .field-gps-arrow{color:#0075bc}
body.orb-field[data-field-theme="light"] #gpsBtn.gps-mode-2 .field-gps-arrow{color:#137b4b}
body.orb-field[data-field-theme="light"] #gpsBtn.gps-mode-3 .field-gps-arrow{color:#9b6600}
/* DEC664: the map owns pan/pinch/twist; page controls retain native scrolling. */
body.orb-field .map-area .cesium-widget canvas{touch-action:none}
body.orb-field #gpsModeBadge{position:absolute;right:1px;bottom:1px;display:grid;place-items:center;min-width:12px;height:12px;padding:0 1px;border-radius:4px;background:var(--bg-card-solid);color:var(--text-primary);font:700 9px/1 system-ui;pointer-events:none}
body.orb-field #gpsModeBadge[hidden]{display:none}
/* DEC670: configuration remains usable on a laptop and on a narrow field device. */
#fieldProjectStorage{width:min(680px,94vw);max-height:90vh;overflow:auto;border:1px solid var(--border-color,#555);border-radius:12px;background:var(--bg-card-solid,#20232a);color:var(--text-primary,#fff)}
#fieldProjectStorage::backdrop{background:#0008}
#fieldProjectStorage header{display:flex;align-items:center;justify-content:space-between}
#fieldProjectStorage .field-storage-content{padding:12px}
#fieldStorageForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#fieldStorageForm label{display:grid;gap:5px}
#fieldStorageForm input{min-width:0;width:100%;box-sizing:border-box;padding:9px}
#fieldStorageActions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
#fieldProjectStorage button{padding:8px 12px;cursor:pointer}
#fieldStoragePreview{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
#fieldStorageStatus{white-space:pre-wrap}
/* DEC1103: storage and version tools use the application's controls instead of browser defaults (they rendered as
 * white 35px buttons), Submit pending reads as the main action, and the result of an operation stays in view
 * instead of landing below a long list of actions. */
#fieldStorageActions button,#fieldStorageForm button,#fieldFeatureVersions button,#fieldFeatureVersions select{min-height:44px;padding:8px 14px;border:1px solid var(--border-subtle,#52606d);border-radius:10px;background:var(--bg-tertiary,#273e50);color:var(--text-primary,#edf5f8);font:600 14px/1.3 system-ui;cursor:pointer}
#fieldStorageActions button:disabled,#fieldStorageForm button:disabled,#fieldFeatureVersions button:disabled{opacity:.55;cursor:not-allowed}
#fieldStorageActions button:focus-visible,#fieldStorageForm :focus-visible,#fieldFeatureVersions :focus-visible{outline:2px solid #8fe7d7;outline-offset:2px}
#fieldStorageActions button.field-storage-primary{background:var(--brand-accent,#4ca6ea);border-color:transparent;color:#06202f}
#fieldStorageForm label{font:600 13px/1.4 system-ui;color:#c5d1dc}
#fieldStorageForm input{min-height:44px;border:1px solid var(--border-subtle,#52606d);border-radius:8px;background:#16222c;color:#edf5f8;font:16px system-ui}
#fieldStorageForm input:read-only{opacity:.7}
/* DEC1106: actions read in titled groups; the footer holds any running operation's Stop control beside its result.
 * The form and actions are hidden when a project has no dataset of its own; display:grid/flex above must not undo that. */
#fieldStorageForm[hidden],#fieldStorageActions[hidden]{display:none}
#fieldStorageActions .field-storage-group{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
#fieldStorageActions .field-storage-group h3{flex:1 0 100%;margin:10px 0 0;font:600 12px/1.3 system-ui;letter-spacing:.04em;text-transform:uppercase;color:#c5d1dc}
#fieldStorageFooter{position:sticky;bottom:-22px;margin:0 -12px;padding:10px 12px 28px;border-top:1px solid var(--border-subtle,#52606d);background:linear-gradient(var(--bg-card-solid,#20232a),var(--bg-card-solid,#20232a)),#1b2430}
#fieldStorageFooter:not(:has(#fieldStorageStatus:not(:empty),#fieldStorageOperation button)){display:none}
#fieldStorageOperation{display:flex;flex-wrap:wrap;gap:8px}
#fieldStorageOperation:not(:empty){margin-bottom:8px}
#fieldStorageOperation button{min-height:44px;padding:8px 14px;border:1px solid #d9a05b;border-radius:10px;background:#3a2c1c;color:#ffe2bd;font:600 14px/1.3 system-ui;cursor:pointer}
#fieldStorageStatus{margin:0;font:14px/1.5 system-ui}
#fieldFeatureVersions{width:min(760px,94vw);max-height:90vh;overflow:auto;background:var(--bg-card-solid,#20232a);color:var(--text-primary,#fff);border:1px solid #888;border-radius:12px;padding:20px}
#fieldFeatureVersions::backdrop{background:#0008}
#fieldVersionPreview{max-height:45vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#0002;padding:12px}
#fieldFeatureVersions button,#fieldFeatureVersions select{padding:9px;margin:6px}
#fieldVertexEditor{display:flex;gap:8px;margin:8px 0}
@media(max-width:500px){#fieldStorageForm{grid-template-columns:1fr}}
/* DEC675: keep source review readable on desktop and usable on small screens. */
#fieldSiteLibrary { width:min(760px,94vw); max-height:90vh; overflow:auto; padding:24px; color:#e8eef7; background:#172334; border:1px solid #536278; border-radius:12px; }
#fieldSiteLibrary label {display:block; margin:12px 0;}
#fieldSiteLibrary input,#fieldSiteLibrary select {display:block; box-sizing:border-box; width:100%; padding:8px; margin-top:4px;}
#fieldSiteLibrary button {padding:9px 13px; margin:4px;}
#fieldSitePreview {white-space:pre-wrap; overflow-wrap:anywhere; max-height:260px; overflow:auto;}

/* DEC821: compare changed values without losing access to exact reviewed GeoJSON. */
.field-version-comparison-scroll{max-width:100%;overflow-x:auto}
.field-version-comparison-table{border-collapse:collapse;width:100%;min-width:580px;font-size:13px}
.field-version-comparison-table th,.field-version-comparison-table td{border:1px solid #8886;padding:8px;vertical-align:top;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;max-width:240px}

/* DEC914: action layout must respect staged draft import controls. */
body.orb-field #fieldDraftList [hidden]{display:none!important}

/* DEC927: staged record import actions stay hidden until review succeeds. */
body.orb-field .field-record-tools [hidden]{display:none!important}

/* DEC1109: on a wide screen the collect form docks on the left instead of covering the lower 62% of the map, so
 * placement keeps the whole map height. Left, because the GPS, compass, zoom and Add controls sit on the right.
 * field-ops.js centres the crosshair in the map beside the form and keeps this panel out of the bottom-sheet
 * offset. Phones, and landscape phones up to 1000px wide or 560px tall, keep the bottom sheet. */
body.orb-field .crosshair,body.orb-field .snap-edit-btn{left:calc(50% - var(--crosshair-offset-x,0px))}
@media (min-width:1000px) and (min-height:560px){
 body.orb-field{--field-dock-width:min(440px,38vw)}
 body.orb-field #collectionPanel{left:12px;right:auto;top:calc(82px + var(--safe-top,0px));bottom:12px;width:var(--field-dock-width);height:auto!important;max-height:none!important;border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,.4);transform:translateX(calc(-100% - 24px))}
 body.orb-field #collectionPanel.visible{transform:none}
 body.orb-field:has(.map-area.banner-visible) #collectionPanel{top:calc(122px + var(--safe-top,0px))}
 /* A docked form is not dragged or squeezed for map space: there is no handle, no More map, no minimised strip. */
 body.orb-field #collectionPanel>.slider-handle,body.orb-field #collectionPanel #fieldPlacementToggle{display:none}
 body.orb-field #collectionPanel .collection-header{padding-top:12px}
 body.orb-field #collectionPanel.minimized{bottom:auto;height:72px!important;overflow:hidden}
 /* The short-viewport row of map controls must not run underneath the docked form. */
 body.orb-field.field-short-viewport.field-collecting:not(.field-ai-open) .map-controls{left:calc(var(--field-dock-width) + 24px)}
}

/* DEC1113: the Field workspace shows what a collector needs on site. Office tools stay mounted with their own
   handlers and permission gates; they are only put away, and Settings → Workspace brings them back. */
body.orb-field[data-field-workspace="field"] #overflowMenu [data-office],
body.orb-field[data-field-workspace="field"]:not(.field-ai-open) #fieldComposer,
body.orb-field[data-field-workspace="field"] #fieldCollectionAsk,
body.orb-field[data-field-workspace="field"] #fieldProjects .field-project-actions,
body.orb-field[data-field-workspace="field"] #fieldProjects [aria-label^="Project settings for"],
body.orb-field[data-field-workspace="field"] #fieldProjects .field-project-scope,
body.orb-field[data-field-workspace="field"] #fieldRecordScopeHelp,
body.orb-field[data-field-workspace="field"] #syncPanel .field-record-tools details:has(#resetLocalBtn),
body.orb-field[data-field-workspace="field"] #fieldDeletionImportButton,
body.orb-field[data-field-workspace="field"] #syncPanel [onclick="exportFieldDeletionHistory()"],
body.orb-field[data-field-workspace="field"] #fieldAssetImportButton,
body.orb-field[data-field-workspace="field"] #fieldInspectionImportButton,
body.orb-field[data-field-workspace="field"] #fieldInspectionBrowse{display:none!important}
body.orb-field .field-workspace-choice{display:inline-flex;flex:none;border:1px solid var(--field-line,rgba(148,163,184,.35));border-radius:10px;overflow:hidden}
body.orb-field .field-workspace-choice[hidden]{display:none}
body.orb-field .field-workspace-choice button{min-height:44px;min-width:64px;padding:0 14px;border:0;background:transparent;color:inherit;font:600 14px/1 system-ui}
body.orb-field .field-workspace-choice button+button{border-left:1px solid var(--field-line,rgba(148,163,184,.35))}
body.orb-field .field-workspace-choice button[aria-pressed="true"]{background:var(--brand-accent,#4ca6ea);color:#06121d}

/* DEC1116: saved offline map areas inside the Offline status dialog. One primary action; the list reads like Records. */
body.orb-field .field-offline-maps{display:grid;gap:10px;margin-top:2px}
body.orb-field .field-offline-maps p{margin:0}
body.orb-field .field-offline-maps [data-maps="note"]{font-size:13px;opacity:.75}
body.orb-field .field-offline-maps>button,body.orb-field .field-offline-maps [data-maps="progress"] button,body.orb-field .field-offline-maps li button{min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--field-line,rgba(148,163,184,.35));background:rgba(255,255,255,.06);color:inherit;font:600 14px/1 system-ui}
body.orb-field .field-offline-maps>button{background:var(--brand-accent,#4ca6ea);border-color:transparent;color:#06121d;justify-self:start}
body.orb-field .field-offline-maps>button:disabled{opacity:.5}
body.orb-field .field-offline-maps>button[hidden],body.orb-field .field-offline-maps [data-maps="progress"][hidden]{display:none}
body.orb-field .field-offline-maps [data-maps="progress"]{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}
body.orb-field .field-offline-maps progress{grid-column:1/-1;width:100%;height:8px;accent-color:var(--brand-accent,#4ca6ea)}
body.orb-field .field-offline-maps ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
body.orb-field .field-offline-maps li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--field-line,rgba(148,163,184,.25))}
body.orb-field .field-offline-maps li span{min-width:0;overflow-wrap:anywhere}

/* DEC1119: Prepare this site for offline. One primary action, then four one-sentence checks whose mark says
   where each stands (done, needs attention, not yet, working). The older status lines wait under Details. */
body.orb-field .field-offline-prepare{display:grid;gap:10px;margin-bottom:8px}
body.orb-field .field-offline-prepare-actions{display:flex;flex-wrap:wrap;gap:10px}
body.orb-field .field-offline-prepare button{min-height:48px;padding:0 18px;border-radius:12px;border:1px solid var(--field-line,rgba(148,163,184,.35));background:rgba(255,255,255,.06);color:inherit;font:600 15px/1.2 system-ui}
body.orb-field .field-offline-prepare [data-prepare="run"]{flex:1 1 220px;background:var(--brand-accent,#4ca6ea);border-color:transparent;color:#06121d}
body.orb-field .field-offline-prepare button:disabled{opacity:.5}
body.orb-field .field-offline-prepare button[hidden]{display:none}
body.orb-field .field-offline-prepare [data-prepare="summary"]{margin:0;font-weight:600}
body.orb-field .field-offline-prepare [data-prepare="summary"]:empty{display:none}
body.orb-field .field-offline-prepare ul{list-style:none;margin:0;padding:0}
body.orb-field .field-offline-prepare li{display:grid;grid-template-columns:24px 1fr;column-gap:10px;padding:9px 0;border-top:1px solid var(--field-line,rgba(148,163,184,.25))}
body.orb-field .field-offline-prepare li::before{content:"○";grid-row:1 / span 2;align-self:start;text-align:center;font:700 16px/1.4 system-ui;opacity:.6}
body.orb-field .field-offline-prepare li[data-state="ok"]::before{content:"✓";color:#4ad6a7;opacity:1}
body.orb-field .field-offline-prepare li[data-state="warn"]::before{content:"!";color:#f4b740;opacity:1}
body.orb-field .field-offline-prepare li[data-state="busy"]::before{content:"…";opacity:1}
body.orb-field .field-offline-prepare li strong,body.orb-field .field-offline-prepare li span{grid-column:2;overflow-wrap:anywhere}
body.orb-field .field-offline-prepare li span{opacity:.85}
body.orb-field .field-status-dialog details[data-offline="details"]>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
/* DEC1123: the collection handle is the single map/form sizing control, on phones and desktop. */
body.orb-field #collectionPanel.field-resizable-sheet{top:auto!important;bottom:0;height:var(--field-sheet-height,62dvh)!important;max-height:82dvh!important;min-height:104px;transition:transform .25s ease,visibility .25s,height .18s ease}
body.orb-field #collectionPanel.field-resizable-sheet.dragging{transition:none}
body.orb-field #collectionPanel.field-resizable-sheet>.slider-handle{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;box-sizing:border-box;touch-action:none;cursor:ns-resize}
body.orb-field #collectionPanel.field-resizable-sheet>.slider-handle:focus-visible{outline:2px solid var(--brand-accent);outline-offset:-3px}
body.orb-field .field-sheet-hint{font:500 12px system-ui;color:#d5e2ed;pointer-events:none}
body.orb-field #collectionPanel.field-sheet-collapsed>.slider-content{visibility:hidden;pointer-events:none}
body.orb-field #collectionPanel.field-resizable-sheet>.slider-content{min-height:0;overscroll-behavior:contain}
@media(prefers-reduced-motion:reduce){body.orb-field #collectionPanel.field-resizable-sheet{transition:none}}

/* DEC1126: conversation-first layout; retain existing chat, scrolling and send owners. */
body.orb-field.field-ai-open:not(.field-ai-full):not(.field-ai-minimized) #aiPanel:not(.rainbot-custom-height){top:calc(78px + var(--safe-top,0px) + var(--field-visible-top,0px));height:auto!important;max-height:none}
/* DEC1147: explicit user sizing supersedes the earlier automatic reading height. */
body.orb-field.field-ai-open:not(.field-ai-full):not(.field-ai-minimized) #aiPanel.rainbot-custom-height{top:auto;height:var(--field-rainbot-height)!important;max-height:none}
body.orb-field #aiPanel>.slider-header{padding:6px 12px;flex-shrink:0}
body.orb-field #aiPanel>.slider-header h3{font:600 16px/1.4 system-ui}
body.orb-field #aiPanel #aiPanelBody{flex:1;min-height:0;padding:0 20px 16px}
body.orb-field #aiPanel #conversationFeed{max-width:760px;margin:0 auto;width:100%;box-sizing:border-box}
body.orb-field #aiPanel #canvasWelcome{padding:18px 0 12px!important}
body.orb-field #aiPanel #canvasWelcome h1{font:600 20px/1.3 system-ui!important;letter-spacing:-.3px;margin:0 0 14px}
body.orb-field #aiPanel #canvasWelcome>p{display:none}
body.orb-field #aiPanel #canvasWelcome .review-starters{display:flex!important;flex-wrap:wrap;gap:8px;margin:0}
body.orb-field #aiPanel #canvasWelcome .review-starters button{width:auto!important;flex:0 1 auto;min-height:44px;padding:10px 14px!important;border-radius:22px!important;background:transparent!important;border:1px solid var(--border-subtle)!important;font:500 13px/1.4 system-ui!important;color:var(--text-primary)!important}
body.orb-field #aiPanel #canvasWelcome .review-starters button span{display:none}
body.orb-field.field-ai-open #fieldComposer form{max-width:800px;margin:0 auto;padding:12px;align-items:flex-end}
body.orb-field.field-ai-open #fieldComposer textarea#owAtlasQuestion{max-height:min(180px,25dvh)!important;background:transparent!important;line-height:1.5!important}
body.orb-field #fieldCollectionHint{font:12px/1.4 system-ui;margin:6px 16px;flex-shrink:0;color:var(--text-secondary)}
@media(max-width:600px){body.orb-field #aiPanel #aiPanelBody{padding:0 14px 12px}body.orb-field #aiPanel #canvasWelcome h1{font-size:18px!important}}
/* A quiet, opaque reading surface keeps map imagery out of the conversation. */
body.orb-field.field-ai-open :is(#aiPanel,#fieldComposer){background:#20252d;backdrop-filter:none;-webkit-backdrop-filter:none}
body.orb-field[data-field-theme="light"].field-ai-open :is(#aiPanel,#fieldComposer){background:#f8fafc}
body.orb-field.field-ai-open #fieldComposer textarea#owAtlasQuestion{background:#ffffff0a!important;border:1px solid var(--border-subtle)!important;border-radius:16px!important;scrollbar-width:thin}
/* DEC1128: plain workflow status and focused collector actions. */
body.orb-field #fieldWorkContext{font:11px/1.3 system-ui;color:var(--text-secondary);white-space:normal;text-align:center}
body.orb-field .top-header{height:calc(84px + var(--safe-top));padding-bottom:30px}
body.orb-field #fieldGpsHelp{position:fixed;top:90px;left:12px;right:62px;z-index:170;background:var(--bg-card-solid);color:var(--text-primary);padding:10px;border-radius:10px;font:13px/1.4 system-ui;max-width:500px}
body.orb-field :is(#fieldStartGuidance,#fieldEditIntent,#fieldAttachmentUndo){padding:10px 12px;border:1px solid var(--border-subtle);border-radius:10px;font:14px/1.45 system-ui;margin:8px 0}
body.orb-field :is(#fieldStartGuidance,#fieldAttachmentUndo) button,body.orb-field #fieldEditVisit{min-height:44px;padding:8px 12px;margin:4px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card-solid);color:var(--text-primary)}
#fieldSubmitReview{width:min(520px,calc(100vw - 40px));max-height:85dvh;overflow:auto;border:1px solid #64748b;border-radius:16px;background:#20252d;color:#f8fafc;padding:20px;font:15px/1.5 system-ui}
#fieldSubmitReview::backdrop{background:#0008}
#fieldSubmitReview button,#fieldConfirmSaveDraft{min-height:44px;padding:10px 16px;border-radius:8px;margin:4px;border:1px solid #64748b;cursor:pointer}
#fieldSubmitReview button:disabled{opacity:.5;cursor:default}
#fieldDraftDisclosure{margin:16px 0}#fieldDraftDisclosure>summary{padding:12px;cursor:pointer;min-height:44px;box-sizing:border-box}
#fieldAttachmentUndo[hidden],#fieldStartGuidance[hidden],#fieldEditVisit[hidden],#fieldGpsHelp[hidden]{display:none!important}
/* Keep the work status independent of the project label's text replacement. */
body.orb-field #fieldSelectedProject{bottom:19px}
body.orb-field #fieldWorkContext{position:absolute;left:12px;right:12px;bottom:2px;height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}
body.orb-field.field-ai-open:not(.field-ai-full):not(.field-ai-minimized) #aiPanel:not(.rainbot-custom-height){top:calc(90px + var(--safe-top,0px) + var(--field-visible-top,0px))}
body.orb-field #fieldPositionActions button{min-height:44px;padding:8px 12px;margin:4px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card-solid);color:var(--text-primary)}
body.orb-field #fieldPositionActions[hidden]{display:none!important}

/* DEC1130: Rainbot is opened deliberately; no idle composer covering the map. */
body.orb-field:not(.field-ai-open) #fieldComposer{display:none!important}
body.orb-field #aiBtn::before{display:none!important}
body.orb-field #aiBtn #aiIcon{display:block!important}
body.orb-field #aiBtn{background:transparent;border-radius:10px}
body.orb-field #aiBtn #aiIcon{width:44px!important;height:40px!important;object-fit:contain}

/* DEC1131: the same Rainbot artwork follows the selected interface theme. */
body.orb-field #aiBtn #aiIcon{filter:brightness(0) invert(1)}
body.orb-field[data-field-theme="light"] #aiBtn #aiIcon{filter:brightness(0)}

/* DEC1132: configuration uses the same restrained surfaces and touch targets as Field. */
body.orb-field #layerConfigView{background:#182939;color:var(--text-primary)}
body.orb-field[data-field-theme="light"] #layerConfigView{background:#f5f7f8}
body.orb-field #layerConfigView .config-readonly{border:0;padding:0;margin:0;min-width:0}
body.orb-field #layerConfigView #schemaFeedback:empty{display:none}
body.orb-field #layerConfigView .layer-config-header{gap:12px;flex-wrap:wrap;padding:12px 18px}
body.orb-field #layerConfigView .layer-config-header h2{font-size:18px}
body.orb-field #layerConfigView .layer-config-actions{flex-wrap:wrap;gap:8px}
body.orb-field #layerConfigView .schema-btn{width:auto;padding:8px 12px;font-size:13px}
body.orb-field #layerConfigView .config-help{font-size:13px;line-height:1.5;color:var(--text-secondary);margin:8px 0 16px}
body.orb-field #layerConfigView .config-intro{margin:0;padding:10px 18px;max-width:1000px}
body.orb-field #layerConfigView .schema-local-status{margin:0;padding:0 18px 8px;font-size:12px}
body.orb-field #layerConfigView .layer-config-sidebar{width:260px;min-width:210px}
body.orb-field #layerConfigView .layer-config-editor{padding:20px;min-width:0}
body.orb-field #layerConfigView .editor-section{max-width:1000px;background:var(--bg-surface);padding:16px;border-radius:12px}
body.orb-field #layerConfigView .editor-row{flex-wrap:wrap;gap:14px}
body.orb-field #layerConfigView .editor-field{min-width:150px}
body.orb-field #layerConfigView .editor-field.small{min-width:100px}
body.orb-field #layerConfigView .editor-field.medium{flex:1;min-width:180px}
body.orb-field #layerConfigView .config-storage summary{cursor:pointer;font-weight:600;font-size:14px;padding:6px 0}
body.orb-field #layerConfigView :is(.editor-section-title>.icon,.tab-icon,.save-icon){display:none}
body.orb-field #layerConfigView [data-field-control="open"]::before{display:none}
body.orb-field #layerConfigView .field-config-header{flex-wrap:wrap;gap:8px}
body.orb-field #layerConfigView .field-config-key{font-size:11px;color:var(--text-secondary)}
body.orb-field #layerConfigView :is(input,select,button,summary):focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}
body.orb-field #layerEditorModal .config-error{color:#ef7272;font-size:14px;min-height:1.5em}
body.orb-field #layerEditorModal input[aria-invalid="true"]{border-color:#ef7272}
@media(max-width:600px){
 body.orb-field #layerConfigView .layer-config-sidebar{width:100%;min-width:0;max-height:22%}
 body.orb-field #layerConfigView .layer-config-editor{padding:12px}
 body.orb-field #layerConfigView .config-intro{font-size:12px;padding:6px 12px}
 body.orb-field #layerConfigView .editor-field{flex-basis:100%}
 body.orb-field #layerConfigView .add-field-row{flex-wrap:wrap}
}

/* DEC1153: compact collection modes keep native buttons and 44 px touch targets. */
body.orb-field .field-mode-segment{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--bg-surface);flex-shrink:0}
body.orb-field .field-mode-segment button{min-width:48px;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:600 14px system-ui}
body.orb-field[data-field-theme] #settingsPanel .field-mode-segment button[aria-pressed=true]{background:var(--field-ui-action)!important;color:#fff!important;border-color:transparent!important}
body.orb-field #fieldCollectionModeStatus{font:12px/1.5 system-ui;color:var(--text-secondary);margin:0 0 12px}
body.orb-field #fieldCollection3DTools[hidden]{display:none}
body.orb-field #fieldCollection3DTools select{min-height:44px;max-width:55%;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:6px 10px}
body.orb-field .field-buildings-setting{width:100%;min-height:44px;background:var(--bg-surface);color:var(--brand-primary);border:1px solid var(--border-color);border-radius:8px;font:500 14px system-ui;margin:8px 0}
body.orb-field .field-mode-segment button:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}
