/* DEC469/DEC478: visual-system polish for the ORB shell. Loaded after orb-shell.css; every rule is scoped to body.orb-shell.
 * Three jobs: (1) the audit fixes orb-shell.css lacks — tap targets, focus rings, contrast-corrected inks, safe areas,
 * scrollbars, tabular figures, popover motion; (2) cascade repair — canvas-workspace.css styles every button with
 * `font:500 12px 'Segoe UI' … !important`, `background:var(--orb-control)!important`, `border-radius:6px!important`,
 * re-tokens --orb-accent on body.orb-canvas-workspace, and reaches the composer with three-id `:has()` selectors, so the
 * shell's non-important rules lose; the shell's intent is restated here with matching specificity and !important;
 * (3) the legacy looks the re-parented Scene and Data panels still carry (scene-workbench.css, engineering-workbench.css).
 * DEC478: the inks are re-derived for the RAiN Field slate palette, and the page-content repairs are scoped to
 * :is(#canvasConversation,.orb-panel) because the Scene, Data and Workspace pages now live in slide-up panels. */

/* ── Tokens: contrast-corrected inks (≥ 4.5:1 on their surfaces), text-safe status colours, the shell's accent ── */
body.orb-shell{--orb-accent:#4CA6EA;--orb-ink-2:#b6c2d1;--orb-ink-3:#a8b4c4;--orb-glass-ink-2:#cbd5e1;--orb-ok-ink:#6ee7b7;--orb-danger-ink:#f0a094}
@media(prefers-color-scheme:light){:root[data-theme="light"] body.orb-shell{--orb-accent:#2b7fc0;--orb-ink-2:#4a5a6e;--orb-ink-3:#55657a;--orb-ok-ink:#166534;--orb-danger-ink:#b91c1c}}
:root[data-theme="light"] body.orb-shell{--orb-accent:#2b7fc0;--orb-ink-2:#4a5a6e;--orb-ink-3:#55657a;--orb-ok-ink:#166534;--orb-danger-ink:#b91c1c}

/* ── Type, figures, focus ────────────────────────────────────────────────────────────────────── */
body.orb-shell #worldMeasureText,body.orb-shell .orb-chip,body.orb-shell .orb-pill-pop output{font-variant-numeric:tabular-nums}
body.orb-shell :is(button,input,select,textarea,summary,a,[role=button],[tabindex]):focus-visible{outline:2px solid var(--orb-accent)!important;outline-offset:2px!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch input:focus-visible{outline:2px solid var(--orb-accent)!important}
body.orb-shell #ow-atlas #owAtlasForm #owAtlasQuestion:focus-visible,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasQuestion:focus-visible{outline:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #orbSheetTitle .orb-chip.orb-live{color:var(--orb-ok-ink)}
body.orb-shell #worldViewport .orb-hud .orb-brand .orb-chip.orb-live{color:var(--orb-ok-ink)}

/* ── Cascade repair: glass buttons (header, floating controls, popovers, overflow menu, pill) ── */
body.orb-shell :is(.orb-hud,.world-popover,#orbBrandMenu) button{font-family:var(--orb-font)!important;font-size:14px!important;font-weight:500!important;line-height:1.25!important;border:1px solid var(--orb-glass-line)!important;border-radius:var(--orb-r-s)!important;background:rgba(255,255,255,.08)!important;color:var(--orb-glass-ink)!important;padding:6px 12px!important;box-shadow:none!important;text-shadow:none!important;min-height:36px}
body.orb-shell #worldViewport .orb-hud .orb-hbtn{width:36px;height:36px;min-height:36px;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--orb-glass-ink-2)!important;font-family:var(--orb-font)!important;font-size:16px!important;line-height:1!important;box-shadow:none!important}
body.orb-shell #worldViewport .orb-hud .orb-hbtn:hover:not(:disabled){background:rgba(100,116,139,.3)!important}
body.orb-shell #worldViewport .orb-hud .orb-hbtn:active:not(:disabled){background:rgba(100,116,139,.5)!important}
body.orb-shell #worldViewport .orb-hud .orb-hbtn:is(.orb-active,[aria-pressed="true"]):not(:disabled){background:var(--orb-teal-soft)!important;color:var(--orb-teal)!important;border-color:transparent!important}
body.orb-shell #worldViewport .orb-hud .orb-hbtn:disabled{opacity:.45!important;background:transparent!important;color:var(--orb-glass-ink-2)!important;cursor:default!important}
body.orb-shell #worldViewport .orb-hud .orb-round{width:var(--orb-tap);height:var(--orb-tap);min-height:var(--orb-tap);padding:0!important;border:1px solid var(--orb-glass-line)!important;border-radius:8px!important;background:var(--orb-glass)!important;color:var(--orb-glass-ink)!important;font-family:var(--orb-font)!important;font-size:18px!important;line-height:1!important;box-shadow:0 4px 12px rgba(0,0,0,.25)!important}
body.orb-shell #worldViewport .orb-hud .orb-round:hover:not(:disabled){background:var(--orb-glass-strong)!important}
body.orb-shell #worldViewport .orb-hud .orb-round:active:not(:disabled){filter:brightness(1.15)}
body.orb-shell #worldViewport .orb-hud .orb-round:is([aria-pressed="true"],[aria-expanded="true"]):not(:disabled){background:var(--orb-teal-soft)!important;border-color:var(--orb-teal)!important;color:var(--orb-teal)!important;box-shadow:0 4px 12px rgba(0,0,0,.25)!important}
body.orb-shell #worldViewport .orb-hud .orb-round:disabled{opacity:.45!important;background:var(--orb-glass)!important;border-color:var(--orb-glass-line)!important;color:var(--orb-glass-ink)!important;cursor:default!important;box-shadow:none!important}
body.orb-shell #worldViewport .orb-hud #orbBrand{font-size:15px!important;font-weight:500!important;letter-spacing:.02em;color:var(--orb-glass-ink)!important}
body.orb-shell #worldViewport .world-popover button{min-height:38px;padding:6px 12px!important;border:1px solid var(--orb-glass-line)!important;border-radius:var(--orb-r-s)!important;background:rgba(255,255,255,.08)!important;color:var(--orb-glass-ink)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:500!important;line-height:1.3!important;text-align:left;box-shadow:none!important}
body.orb-shell #worldViewport .world-popover .world-popover-actions button{text-align:center}
body.orb-shell #worldViewport .world-popover button:hover:not(:disabled){background:rgba(255,255,255,.14)!important}
body.orb-shell #worldViewport .world-popover button:disabled{opacity:.45!important;background:rgba(255,255,255,.08)!important;border-color:var(--orb-glass-line)!important;color:var(--orb-glass-ink)!important;cursor:default!important;box-shadow:none!important}
body.orb-shell #worldViewport .world-popover p{margin:0}
/* canvas-workspace.css sizes inputs by #owApp, which outranks a class-only rule: without this the basemap radio stretches the whole row and pushes its own label text off the screen edge. */
body.orb-shell :is(#worldViewport,.orb-panel) .world-popover label :is(input[type=radio],input[type=checkbox]){flex:none!important;width:18px!important;height:18px!important;min-width:18px!important;margin:0!important;accent-color:var(--orb-accent)}
/* Inside a slide-up panel the popover markup is plain sheet content, not glass. */
body.orb-shell .orb-panel .world-popover button{border:1px solid var(--orb-hair)!important;background:var(--orb-sheet-3)!important;color:var(--orb-ink)!important}
body.orb-shell .orb-panel .world-popover button:hover:not(:disabled){background:var(--orb-sheet-2)!important}
body.orb-shell #orbBrandMenu button{min-height:40px;padding:12px 16px!important;border:0!important;border-radius:var(--orb-r-s)!important;background:transparent!important;color:var(--orb-glass-ink)!important;font-family:var(--orb-font)!important;font-size:13px!important;font-weight:500!important;line-height:1.3!important;box-shadow:none!important}
body.orb-shell #orbBrandMenu button:hover{background:rgba(255,255,255,.1)!important}
body.orb-shell #orbBrandMenu button small{font-size:11px;font-weight:400;color:var(--orb-glass-ink-2)}
body.orb-shell #worldViewport #orbPill button{min-height:36px;padding:6px 12px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--orb-glass-ink)!important;font-family:var(--orb-font)!important;font-size:13px!important;font-weight:600!important;line-height:1.2!important;box-shadow:none!important}
body.orb-shell #worldViewport #orbPill button:hover:not(:disabled){background:rgba(255,255,255,.1)!important}
body.orb-shell #worldViewport #orbPill button[aria-pressed="true"]:not(:disabled){background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important;border-color:transparent!important;box-shadow:none!important}
body.orb-shell #worldViewport #orbPill button:disabled{opacity:.45!important;background:transparent!important;color:var(--orb-glass-ink)!important;border:0!important;cursor:default!important;box-shadow:none!important}
body.orb-shell #worldViewport .orb-pill-pop button{min-height:40px;padding:6px 12px!important;border:1px solid var(--orb-glass-line)!important;border-radius:var(--orb-r-s)!important;background:rgba(255,255,255,.08)!important;color:var(--orb-glass-ink)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:500!important;line-height:1.3!important;text-align:left;box-shadow:none!important}
body.orb-shell #worldViewport .orb-pill-pop button:hover:not(:disabled){background:rgba(255,255,255,.14)!important}
body.orb-shell #worldViewport .orb-pill-pop[role=menu] button{border:0!important;background:transparent!important;border-radius:var(--orb-r-m)!important}
body.orb-shell #worldViewport .orb-pill-pop[role=menu] button:hover:not(:disabled){background:rgba(255,255,255,.1)!important}
body.orb-shell #worldViewport .orb-pill-pop button.orb-danger{color:var(--orb-danger-ink)!important}
body.orb-shell #worldViewport .orb-pill-pop button.orb-danger:hover:not(:disabled){background:rgba(227,114,99,.18)!important}
body.orb-shell #worldViewport .orb-pill-pop button:disabled{opacity:.45!important;color:var(--orb-glass-ink)!important;cursor:default!important;box-shadow:none!important}

/* ── Cascade repair: panel and sheet buttons and fields ─────────────────────────────────────── */
body.orb-shell :is(#orbSheetHead,#orbPage-scene,#orbPage-data,#orbPage-more,#owAtlasForm) button,body.orb-shell #owScroll .canvas-drawer-head button{font-family:var(--orb-font)!important;font-size:14px!important;font-weight:500!important;line-height:1.25!important;border:1px solid var(--orb-hair)!important;border-radius:var(--orb-r-s)!important;background:var(--orb-sheet-3)!important;color:var(--orb-ink)!important;padding:6px 12px!important;box-shadow:none!important;text-shadow:none!important;min-height:36px}
body.orb-shell #orbPage-chat button{font-family:var(--orb-font)!important;font-size:13px!important;line-height:1.25!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-panel-close{width:36px;height:36px;min-height:36px;padding:0!important;border:0!important;border-radius:50%!important;background:var(--orb-chip)!important;color:var(--orb-ink-2)!important;font-family:var(--orb-font)!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-panel-close:hover{background:var(--orb-sheet-3)!important;color:var(--orb-ink)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) button.orb-help{position:relative;isolation:isolate;width:36px;height:36px;min-width:36px;min-height:36px;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;color:var(--orb-ink-2)!important;font-family:var(--orb-font)!important;font-size:13px!important;font-weight:700!important;line-height:1!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) button.orb-help::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--orb-chip)}
body.orb-shell :is(#canvasConversation,.orb-panel) button.orb-help:hover{color:var(--orb-ink)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) button.orb-help[aria-expanded="true"]{color:var(--orb-accent-ink)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) button.orb-help[aria-expanded="true"]::before{background:var(--orb-accent)}
body.orb-shell #orbPlusMenu button{min-height:var(--orb-tap);padding:8px 12px!important;border:0!important;border-radius:var(--orb-r-m)!important;background:transparent!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:15px!important;font-weight:500!important;line-height:1.3!important;box-shadow:none!important}
body.orb-shell #orbPlusMenu button:hover{background:var(--orb-chip)!important}
body.orb-shell #orbPlusMenu button small{font-size:12px;font-weight:400;color:var(--orb-ink-3)}
body.orb-shell :is(#canvasConversation,.orb-panel) #orbComposerPlus{width:40px;height:40px;min-height:40px;padding:0!important;border:0!important;border-radius:50%!important;background:var(--orb-chip)!important;color:var(--orb-ink)!important;font-size:22px!important;line-height:1!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #orbComposerPlus[aria-expanded="true"]{background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important}
body.orb-shell #ow-atlas #owAtlasForm #owAtlasSend,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasSend{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;padding:0!important;border:0!important;border-radius:50%!important;background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important;font-family:var(--orb-font)!important;font-size:18px!important;font-weight:700!important;line-height:1!important;box-shadow:none!important}
body.orb-shell #ow-atlas #owAtlasForm #owAtlasSend:is(:disabled,[aria-disabled="true"]),body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasSend:is(:disabled,[aria-disabled="true"]){opacity:.45!important;background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important;border:0!important;cursor:default!important}
body.orb-shell #ow-atlas #owAtlasForm #owAtlasQuestion,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasQuestion{min-height:40px!important;max-height:150px!important;margin:0!important;padding:10px 14px!important;border:1px solid var(--orb-hair)!important;border-radius:20px!important;background:var(--orb-field)!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:15px!important;line-height:1.35!important;resize:none!important;box-shadow:none!important}
body.orb-shell #ow-atlas #owAtlasForm #owAtlasQuestion:focus,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasQuestion:focus{border-color:var(--orb-accent)!important;box-shadow:0 0 0 3px rgba(76,166,234,.25)!important}
body.orb-shell #ow-atlas #owAtlasForm #owAtlasQuestion::placeholder,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasQuestion::placeholder{color:var(--orb-ink-3)}
body.orb-shell #ow-atlas>#owAtlasForm,body.orb-shell #ow-atlas:has(#conversationFeed)>#owAtlasForm{padding:8px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--orb-hair);background:transparent}
body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm>.ow-actions{margin:0;position:static}
body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasStatus{font-size:12px;padding:0;min-height:0}
body.orb-shell :is(#canvasConversation,.orb-panel) #owAtlasForm .canvas-composer-tools select{min-height:36px;padding:6px 8px!important;border:1px solid var(--orb-hair)!important;border-radius:var(--orb-r-s)!important;background:var(--orb-field)!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:13px!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #owAtlasForm .chat-tools{font:13px/1.4 var(--orb-font);color:var(--orb-ink-2)}
body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch button{min-height:40px;padding:0 14px!important;border:0!important;border-radius:var(--orb-r-s)!important;background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:600!important;line-height:1!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch button:hover:not(:disabled){background:var(--orb-accent)!important;filter:brightness(1.08)}
body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch button:disabled{opacity:.5!important;background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important;border:0!important;cursor:default!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch input{font-family:var(--orb-font)!important;font-size:15px!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-list>*{min-height:var(--orb-tap)}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-list>button{padding:8px 14px!important;border:0!important;border-bottom:1px solid var(--orb-hair)!important;border-radius:0!important;background:transparent!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:15px!important;font-weight:500!important;line-height:1.3!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-list>button:last-child{border-bottom:0!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-list>button:hover{background:var(--orb-sheet-3)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-list small{font-size:13px;color:var(--orb-ink-3)}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-page-toolbar button{min-height:36px;padding:6px 14px!important;border:0!important;border-radius:999px!important;background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:600!important;line-height:1.2!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-page-toolbar button.orb-secondary{background:var(--orb-chip)!important;color:var(--orb-ink)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-page-toolbar button:active{filter:brightness(.94)}
body.orb-shell #owScroll #orbResearchNav button{min-height:36px;padding:6px 14px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--orb-ink-2)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:600!important;line-height:1.2!important;box-shadow:none!important}
body.orb-shell #owScroll #orbResearchNav button[aria-current="true"]:not(:disabled){background:var(--orb-chip)!important;color:var(--orb-ink)!important;box-shadow:none!important;border-color:transparent!important}
body.orb-shell #owScroll #orbResearchNav button.orb-back{background:var(--orb-accent)!important;color:var(--orb-accent-ink)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) #chatLatest{min-height:36px;padding:6px 12px!important;border:1px solid var(--orb-hair)!important;border-radius:999px!important;background:var(--orb-chip)!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:13px!important;font-weight:600!important;line-height:1.2!important;box-shadow:var(--orb-shadow)!important}
body.orb-shell #orbToast{min-height:var(--orb-tap);padding:4px 6px 4px 16px;box-sizing:border-box}
body.orb-shell #orbToast button{min-height:36px!important;padding:0 10px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--orb-accent)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:600!important;line-height:1.2!important;box-shadow:none!important}
body.orb-shell #orbToast button:hover{background:rgba(255,255,255,.1)!important}

/* ── Chat page leftovers (canvas-workspace.css) that break the light theme ─────────────────── */
body.orb-shell :is(#canvasConversation,.orb-panel) #conversationFeed #owTranscript article{font-family:var(--orb-font);font-size:15px;line-height:1.5}
body.orb-shell :is(#canvasConversation,.orb-panel) #conversationFeed #owTranscript article:not([data-role=user]) small{color:var(--orb-ink-3);font-size:12px}
body.orb-shell :is(#canvasConversation,.orb-panel) #composerAttachments{font:13px/1.45 var(--orb-font);color:var(--orb-ink-2)}
body.orb-shell :is(#canvasConversation,.orb-panel) #composerAttachments>div>div{border-color:var(--orb-hair);background:var(--orb-sheet-2);border-radius:var(--orb-r-s)}
body.orb-shell :is(#canvasConversation,.orb-panel) #canvasSelection{background:var(--orb-chip);color:var(--orb-ink);border:0;border-radius:999px;padding:4px 10px;font-size:13px}
body.orb-shell :is(#canvasConversation,.orb-panel) #chatFailure{background:rgba(227,114,99,.12);border-color:rgba(227,114,99,.35);color:var(--orb-ink)}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-table-preview th{color:var(--orb-ink-2)}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-table-preview th,body.orb-shell :is(#canvasConversation,.orb-panel) .orb-table-preview td{border-bottom-color:var(--orb-hair)}
body.orb-shell :is(#canvasConversation,.orb-panel) .orb-table-preview td button{color:var(--orb-accent)!important;background:transparent!important;border:0!important;padding:0!important;font-size:13px!important;min-height:0}
body.orb-shell :is(#canvasConversation,.orb-panel) #canvasOutput{border-top-color:var(--orb-hair)}
body.orb-shell :is(#canvasConversation,.orb-panel) #canvasOutput summary{font:13px/1.4 var(--orb-font);color:var(--orb-accent)}

/* ── Re-parented panels: neutralise scene-workbench.css / engineering-workbench.css leftovers ─── */
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel){font:14px/1.45 var(--orb-font);padding:0!important;scroll-padding-top:0;color:var(--orb-ink)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(small,dt,dd,li,td,th,legend,output,[role=status]){font-size:13px;color:var(--orb-ink-2)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(dd,td,output),body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) [role=status]{color:var(--orb-ink)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--orb-ink-3);font-weight:600;margin:12px 4px 6px}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) summary{margin:0;color:var(--orb-ink)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) article{border:0;background:var(--orb-sheet-2);border-radius:var(--orb-r-m);padding:10px 12px;margin:0 0 8px}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) details article{background:var(--orb-sheet-3)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) pre{font:12px/1.45 var(--orb-mono);color:var(--orb-ink);background:var(--orb-sheet-3);border-radius:var(--orb-r-s);padding:8px 10px}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea){box-sizing:border-box;width:100%;min-height:36px;padding:8px 10px!important;border:1px solid var(--orb-hair)!important;border-radius:var(--orb-r-s)!important;background:var(--orb-field)!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:14px!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(input,select,textarea)::placeholder{color:var(--orb-ink-3)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) input[type=color]{min-height:36px;height:36px;padding:2px;border:1px solid var(--orb-hair);border-radius:var(--orb-r-s);background:var(--orb-field)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) input[type=range]{accent-color:var(--orb-accent);width:100%}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) label>input[type=checkbox]{width:18px!important;height:18px!important;min-width:18px!important;margin:0!important;accent-color:var(--orb-accent)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) input[type=file]{color:var(--orb-ink-2);font-size:13px}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) input[type=file]::file-selector-button{min-height:36px;padding:6px 12px;margin-right:8px;border:1px solid var(--orb-hair);border-radius:var(--orb-r-s);background:var(--orb-sheet-3);color:var(--orb-ink);font:600 13px var(--orb-font);cursor:pointer}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) button:not(.orb-help){min-height:36px;margin:2px 6px 2px 0;padding:6px 12px!important;border:1px solid var(--orb-hair)!important;border-radius:var(--orb-r-s)!important;background:var(--orb-sheet-3)!important;color:var(--orb-ink)!important;font-family:var(--orb-font)!important;font-size:14px!important;font-weight:500!important;line-height:1.25!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) button:hover:not(:disabled):not([aria-disabled="true"]){filter:brightness(1.1)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) button:active:not(:disabled):not([aria-disabled="true"]){filter:brightness(.94)}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) button:is(:disabled,[aria-disabled="true"]){opacity:.45!important;background:var(--orb-sheet-3)!important;border-color:var(--orb-hair)!important;color:var(--orb-ink)!important;box-shadow:none!important}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) button[aria-disabled="true"]{opacity:.65!important;cursor:progress!important}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(#assemblyRemove,button[data-discard],button[data-delete],button[data-recovery-action=remove]){color:var(--orb-danger-ink)!important;border-color:var(--orb-hair)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(#assemblyRemove,button[data-discard],button[data-delete],button[data-recovery-action=remove]):hover:not(:disabled){background:rgba(227,114,99,.14)!important}
body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(.assembly-actions,.engineering-feature-actions){display:flex;flex-wrap:wrap;gap:6px 0}

/* ── Motion: menus and popovers grow from their anchor; the panels slide on the reference's curve ── */
@keyframes orb-pop-in{from{opacity:0;scale:.96}to{opacity:1;scale:1}}
body.orb-shell .world-popover:not([hidden]),body.orb-shell #orbBrandMenu:not([hidden]),body.orb-shell #orbPlusMenu:not([hidden]),body.orb-shell .orb-help-pop:not([hidden]),body.orb-shell #orbPill:not([hidden]),body.orb-shell .orb-pill-pop:not([hidden]),body.orb-shell #orbToast:not([hidden]){animation:orb-pop-in 180ms var(--orb-ease) both}
body.orb-shell .world-popover{transform-origin:top left}
body.orb-shell #worldLayersMenu,body.orb-shell #worldMeasureReadout{transform-origin:top right}
body.orb-shell #orbBrandMenu{transform-origin:top right}
body.orb-shell #orbPlusMenu{transform-origin:bottom left}
body.orb-shell .orb-help-pop{transform-origin:top right}
body.orb-shell #orbPill,body.orb-shell .orb-pill-pop,body.orb-shell #orbToast{transform-origin:bottom center}
@media(prefers-reduced-motion:reduce){body.orb-shell .world-popover,body.orb-shell #orbBrandMenu,body.orb-shell #orbPlusMenu,body.orb-shell .orb-help-pop,body.orb-shell #orbPill,body.orb-shell .orb-pill-pop,body.orb-shell #orbToast{animation:none!important;scale:none;opacity:1}body.orb-shell #canvasConversation.orb-sheet-anim{transition:none!important}body.orb-shell .orb-panel{transition:none!important}body.orb-shell #canvasConversation,body.orb-shell #orbSheetBody,body.orb-shell .orb-page-scroll{scroll-behavior:auto}}

/* ── Safe areas (env() is 0 where there is no notch) ────────────────────────────────────────── */
body.orb-shell .orb-hud-top{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
body.orb-shell .orb-hud-stack{right:max(16px,env(safe-area-inset-right))}
body.orb-shell .world-popover{left:max(12px,env(safe-area-inset-left))}
body.orb-shell #orbBrandMenu{right:max(8px,env(safe-area-inset-right))}
body.orb-shell .orb-panel-body{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
body.orb-shell :is(#canvasConversation,.orb-panel) #orbSheetBody>.orb-page.orb-page-scroll{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
body.orb-shell :is(#canvasConversation,.orb-panel) #conversationFeed{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}

/* ── Thin, themed scrollbars inside the sheet, the panels and the glass popovers ────────────── */
body.orb-shell :is(#canvasConversation,.orb-panel,#owScroll) :is(.orb-page-scroll,#conversationFeed,#owTranscript,textarea,pre,dd,.orb-panel-host,.orb-panel-body,#orbSheetBody),body.orb-shell #owScroll,body.orb-shell .world-popover,body.orb-shell .orb-help-pop{scrollbar-width:thin;scrollbar-color:var(--orb-ink-3) transparent}
body.orb-shell :is(#canvasConversation,.orb-panel,#owScroll) :is(.orb-page-scroll,#conversationFeed,#owTranscript,textarea,pre,dd,.orb-panel-host,.orb-panel-body,#orbSheetBody)::-webkit-scrollbar,body.orb-shell #owScroll::-webkit-scrollbar,body.orb-shell .world-popover::-webkit-scrollbar{width:8px;height:8px}
body.orb-shell :is(#canvasConversation,.orb-panel,#owScroll) :is(.orb-page-scroll,#conversationFeed,#owTranscript,textarea,pre,dd,.orb-panel-host,.orb-panel-body,#orbSheetBody)::-webkit-scrollbar-thumb,body.orb-shell #owScroll::-webkit-scrollbar-thumb,body.orb-shell .world-popover::-webkit-scrollbar-thumb{background:var(--orb-ink-3);border-radius:4px;border:2px solid transparent;background-clip:padding-box}
body.orb-shell :is(#canvasConversation,.orb-panel,#owScroll) :is(.orb-page-scroll,#conversationFeed,#owTranscript,textarea,pre,dd,.orb-panel-host,.orb-panel-body,#orbSheetBody)::-webkit-scrollbar-track,body.orb-shell #owScroll::-webkit-scrollbar-track{background:transparent}

/* ── Phones: 44 pt everywhere that can be tapped, a 44 pt grab handle ───────────────────────── */
@media(max-width:800px),(max-height:500px) and (max-width:1000px){
 body.orb-shell #worldViewport .orb-hud .orb-hbtn{width:var(--orb-tap);height:var(--orb-tap);min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch input{min-height:var(--orb-tap)}
 body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch button{min-height:var(--orb-tap)!important;height:var(--orb-tap)!important;padding:0 16px!important}
 body.orb-shell #worldViewport .world-popover button,body.orb-shell #worldViewport .world-popover label{min-height:var(--orb-tap)!important}
 body.orb-shell #orbBrandMenu button{min-height:var(--orb-tap)!important}
 body.orb-shell #worldViewport #orbPill button{min-height:var(--orb-tap)!important;padding:6px 14px!important}
 body.orb-shell #worldViewport .orb-pill-pop button,body.orb-shell #worldViewport .orb-pill-pop label{min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) #orbSheetTitle{min-height:var(--orb-tap)}
 body.orb-shell :is(#canvasConversation,.orb-panel) button.orb-help{width:var(--orb-tap);height:var(--orb-tap);min-width:var(--orb-tap);min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) .orb-panel-close{width:var(--orb-tap);height:var(--orb-tap);min-height:var(--orb-tap)!important}
 body.orb-shell #orbPlusMenu button{min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) .orb-list>*{min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) .orb-page-toolbar button{min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(button,select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file])){min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) input[type=color]{height:var(--orb-tap)}
 body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) label:has(>input[type=checkbox]){min-height:var(--orb-tap)}
 body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) input[type=file]::file-selector-button{min-height:var(--orb-tap)}
 body.orb-shell :is(#canvasConversation,.orb-panel) #orbComposerPlus,body.orb-shell #ow-atlas #owAtlasForm #owAtlasSend,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasSend{width:var(--orb-tap)!important;height:var(--orb-tap)!important;min-width:var(--orb-tap)!important;min-height:var(--orb-tap)!important}
 body.orb-shell #ow-atlas #owAtlasForm #owAtlasQuestion,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasQuestion{min-height:var(--orb-tap)!important;padding:11px 14px!important;border-radius:22px!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) #owAtlasForm .canvas-composer-tools select{min-height:var(--orb-tap)}
 body.orb-shell #owScroll #orbResearchNav button{min-height:var(--orb-tap)!important}
 body.orb-shell #owScroll .canvas-drawer-head button{min-height:var(--orb-tap)!important}
 body.orb-shell :is(#canvasConversation,.orb-panel) #chatLatest{min-height:var(--orb-tap)!important}
 body.orb-shell #orbToast button{min-height:var(--orb-tap)!important}
 body.orb-shell #orbSheetGrab{position:relative;z-index:2;width:96px;height:var(--orb-tap);min-height:var(--orb-tap);margin:0 auto -29px;background:transparent;opacity:1;border-radius:var(--orb-r-m);touch-action:none;cursor:grab}
 body.orb-shell #orbSheetGrab::before{content:"";position:absolute;left:50%;top:8px;width:36px;height:5px;margin-left:-18px;border-radius:3px;background:var(--orb-ink-2);opacity:.5}
 body.orb-shell .orb-panel-grab{height:var(--orb-tap)}
 body.orb-shell #orbSheetGrab:focus-visible{outline-offset:-4px!important}
 body.orb-shell #canvasConversation.orb-sheet-drag #orbSheetGrab{cursor:grabbing}
}
/* DEC471: phone fields at 16 px so Safari never zooms the page on focus; id-level specificity beats the 15 px composer rules above. */
@media(max-width:800px),(max-height:500px) and (max-width:1000px){
 body.orb-shell #ow-atlas #owAtlasForm #owAtlasQuestion#owAtlasQuestion,body.orb-shell #ow-atlas:has(#conversationFeed) #owAtlasForm #owAtlasQuestion#owAtlasQuestion,body.orb-shell :is(#canvasConversation,.orb-panel) #worldSearch#worldSearch input,body.orb-shell #worldViewport #orbCapture#orbCapture input,body.orb-shell :is(#canvasConversation,.orb-panel) :is(#assemblyPanel,#engineeringPanel) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea),body.orb-shell dialog :is(input,select,textarea),body.orb-shell #ov :is(input,select,textarea),body.orb-shell #owScroll :is(input,select,textarea){font-size:16px!important}
 body.orb-shell #worldViewport :is(#st,#tst){bottom:calc(var(--orb-sheet-height,56px) + 12px)!important;z-index:41}
 body.orb-shell.orb-research #owScroll .canvas-drawer-head{padding-top:calc(8px + env(safe-area-inset-top))!important}
}
