/* A shared semantic component layer. Original data, controls and gesture handlers remain intact. */
html.ios20 #workbench.ios20 [data-ios-shape],html.ios20 #ios-login [data-ios-shape],html.ios20 #workbench.ios20 :is(#wb-control-center,#wb-drawer,#wb-actions-sheet,#wb-mobile-tools,#wb-focus) [data-ios-shape]{border-radius:var(--ios-radius)!important}
html.ios20 #workbench.ios20 :is(#wb-control-center,#wb-drawer,#wb-actions-sheet,#wb-mobile-tools,#wb-focus){border-radius:var(--ios-r-sheet)!important;isolation:isolate;overflow:hidden;border:var(--ios-hairline) solid var(--ios-line-strong)!important;box-shadow:var(--ios-shadow)!important;background:var(--ios-glass)!important;color:var(--ios-text)}
html.ios20 #workbench.ios20 dialog::backdrop{background:rgba(2,8,17,.54);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
html.ios20 #workbench.ios20 :is(button,input,select,textarea){font-family:var(--ios-font);font-optical-sizing:auto}
html.ios20 #workbench.ios20 :is(dialog button,dialog input,dialog select,dialog textarea){border-color:var(--ios-line)!important}
html.ios20 #workbench.ios20 :is(dialog button,.wb-toolbar button,#terminal-bottom button){transition:background-color var(--ios-fast) var(--ios-ease),color var(--ios-fast) var(--ios-ease),box-shadow var(--ios-fast) var(--ios-ease);-webkit-tap-highlight-color:transparent}
html.ios20 #workbench.ios20 :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--ios-focus)!important;outline-offset:2px}
html.ios20 #workbench.ios20 :is(button,a[role=button]):active:not(:disabled){filter:brightness(1.13)}
html.ios20 #workbench.ios20 :is(.hub-section,.hub-detail-card,.hub-catalog-group,.hub-instance,.wb-item,.wb-history-source,.hub-tool,.hub-help){background:var(--ios-card)!important;border:var(--ios-hairline) solid var(--ios-line)!important;box-shadow:none!important}
html.ios20 #workbench.ios20 :is(.hub-section,.hub-detail-card){padding:12px 14px!important}
html.ios20 #workbench.ios20 :is(.hub-managed-list){background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
html.ios20 #workbench.ios20 :is(.hub-head,.hub-related>header,#wb-actions-sheet>header,#wb-mobile-tools>header){background:transparent!important;border-color:var(--ios-line)!important}
html.ios20 #workbench.ios20 :is(.hub-foot,.hub-detail-foot){background:var(--ios-glass)!important;border-top:var(--ios-hairline) solid var(--ios-line)!important;padding-left:12px!important;padding-right:12px!important}
html.ios20 #workbench.ios20 :is(.hub-head h2,#wb-drawer-title,#wb-actions-sheet h2){font:600 var(--ios-title)/1.3 var(--ios-font)!important}
html.ios20 #workbench.ios20 :is(.hub-section-title,.hub-detail-title){font-size:var(--ios-section)!important;font-weight:600!important;color:var(--ios-text)}
html.ios20 #workbench.ios20 :is(.hub-note,.hub-count,.hub-instance-state,.hub-row-label small,.hub-autosave-note,.hub-library-count){color:var(--ios-muted)!important;font-size:var(--ios-meta)!important}
html.ios20 #workbench.ios20 :is(.hub-row-label,.hub-field-label){font-size:var(--ios-label)!important;color:var(--ios-text)!important;line-height:1.45}
html.ios20 #workbench.ios20 :is(.hub-field,.hub-setting-row){border-top-color:var(--ios-line)!important;min-height:56px!important;padding-top:6px!important;padding-bottom:6px!important}
html.ios20 #workbench.ios20 :is(.hub-field input:not([type=checkbox]):not([type=color]),.hub-field select,.hub-library-filter,.hub-source,.wb-navigation-form input,.wb-navigation-form select){height:var(--ios-hit)!important;min-height:var(--ios-hit)!important;font-size:var(--ios-value)!important;background-color:var(--ios-field)!important;box-shadow:none!important}
html.ios20 #workbench.ios20 .hub-search{background:var(--ios-field)!important;min-height:var(--ios-hit);border:var(--ios-hairline) solid var(--ios-line)!important;padding-left:12px!important}
html.ios20 #workbench.ios20 .hub-search input{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
html.ios20 #workbench.ios20 .hub-field-color input{height:var(--ios-hit)!important;min-height:var(--ios-hit)!important;padding:6px!important}
html.ios20 #workbench.ios20 :is(input[type=color]::-webkit-color-swatch-wrapper){padding:0}
html.ios20 #workbench.ios20 input[type=color]::-webkit-color-swatch{border:0;border-radius:var(--ios-r-icon)}
html.ios20 #workbench.ios20 input[type=color]::-moz-color-swatch{border:0;border-radius:var(--ios-r-icon)}
html.ios20 #workbench.ios20 :is(.hub-tabs,.hub-indicator-nav,.hub-segment,#wb-scroll-rail){gap:var(--ios-segment-inset)!important;padding:var(--ios-segment-inset)!important;background:#0d1b2d!important;border:var(--ios-hairline) solid var(--ios-line)!important;box-shadow:inset 0 1px 2px #0002!important}
html.ios20 #workbench.ios20 :is(.hub-tabs,.hub-indicator-nav,.hub-segment)>button{margin:0!important;border:0!important;background:transparent!important;min-height:40px!important;box-shadow:none!important}
html.ios20 #workbench.ios20 :is(.hub-tabs,.hub-indicator-nav,.hub-segment)>button:is([aria-selected=true],[aria-pressed=true]){background:var(--ios-selected)!important;color:var(--ios-text)!important;box-shadow:0 1px 4px #0003,inset 0 1px #bdd9ff14!important}
html.ios20 #workbench.ios20 .hub-segment{padding:4px!important;flex-wrap:nowrap}
html.ios20 #workbench.ios20 :is(.hub-tabs,.hub-indicator-nav) button{min-height:var(--ios-hit)!important}
html.ios20 #workbench.ios20 :is(.hub-primary,.hub-foot button,.hub-detail-foot button,.wb-navigation-form>button,.wb-navigation-shortcuts button){min-height:var(--ios-hit)!important;font-size:16px!important}
html.ios20 #workbench.ios20 :is(.hub-primary,.hub-detail-foot .hub-primary){background:#096ad9!important;color:#fff!important;border-color:#9fc9ff35!important}
html.ios20 #workbench.ios20 :is(.hub-secondary){background:#253b55!important;color:var(--ios-text)!important}
html.ios20 #workbench.ios20 :is(.hub-close,.hub-back,#wb-close,#wb-actions-sheet>header button,#wb-mobile-tools>header button){min-width:var(--ios-hit)!important;min-height:var(--ios-hit)!important;width:var(--ios-hit)!important;height:var(--ios-hit)!important;padding:10px!important;display:grid;place-items:center;background:#9abbd115!important;border:0!important;font-size:14px!important}
html.ios20 #workbench.ios20 :is(.hub-catalog-row button,.hub-instance-actions button,.wb-period-presets button,.wb-item button,.wb-action-grid button){min-height:var(--ios-hit)!important;min-width:var(--ios-hit)!important}
html.ios20 #workbench.ios20 .hub-instance-actions{grid-template-columns:auto auto minmax(0,1fr) var(--ios-hit) var(--ios-hit) var(--ios-hit)!important;gap:4px!important}
html.ios20 #workbench.ios20 .hub-instance-actions .hub-icon-button{width:var(--ios-hit)!important;min-width:var(--ios-hit)!important}
html.ios20 #workbench.ios20 :is(.hub-switch,input[role=switch]){border-radius:var(--ios-r-pill)!important;background:#34465b!important;border:var(--ios-hairline) solid var(--ios-line)!important}
html.ios20 #workbench.ios20 :is(.hub-switch[aria-checked=true],input[role=switch]:checked){background:#2185f6!important}
html.ios20 #workbench.ios20 .hub-switch::before{content:'';position:absolute;inset:-8px 0;min-height:var(--ios-hit);border-radius:inherit}
html.ios20 #workbench.ios20 :is(.hub-switch,input[role=switch])::after{border-radius:50%!important}
html.ios20 #workbench.ios20 :is(.hub-tool){padding:12px!important;min-height:80px!important}
html.ios20 #workbench.ios20 :is(.hub-danger,.hub-danger-action){color:var(--ios-danger)!important}
/* Chart content stays opaque and uncropped. Never round data candles, clip canvases or replace axes. */
html.ios20 #workbench.ios20 .wb-native-pane{background:#0c1928;border:var(--ios-hairline) solid var(--ios-line)!important;box-shadow:none;overflow:visible!important}
html.ios20 #workbench.ios20 .wb-native-pane>.wb-legend{border-radius:calc(var(--ios-r-card) - 1px) calc(var(--ios-r-card) - 1px) 0 0!important;background:transparent!important}
html.ios20 #workbench.ios20 .terminal-pane-controls button{min-height:var(--wb-tool-size)!important;min-width:var(--wb-tool-size)!important;padding:4px!important}
html.ios20 #workbench.ios20 :is(.v16-inspection-card,.wb-daily-tooltip){background:#10243bef!important;border:var(--ios-hairline) solid var(--ios-line-strong)!important;box-shadow:var(--ios-shadow)}
html.ios20 #workbench.ios20 :is(.v16-sync-axis,.v16-sync-time){padding:3px 8px;background:#27445e;color:var(--ios-text);border:var(--ios-hairline) solid #aacceb55}
html.ios20 #workbench.ios20 :is(.wb-resize-hint){border-color:var(--ios-line-strong)!important;background:#1a3048!important;color:var(--ios-secondary)!important}
html.ios20 #workbench.ios20 :is(.wb-resize-handle,[role=separator]){border-radius:0!important}
html.ios20 #workbench.ios20 .v16-load-detail{border-color:var(--ios-line-strong)!important;background:var(--ios-surface)!important}
html.ios20 #workbench.ios20 #terminal-quick{min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
html.ios20 #workbench.ios20 #terminal-quick button{min-width:var(--ios-hit);min-height:var(--ios-hit);padding:6px!important;border:0!important}
html.ios20 #workbench.ios20 :is(#wb-period-picker,#wb-indicators,#wb-mobile-tools-open){min-height:var(--ios-hit)!important;border:var(--ios-hairline) solid var(--ios-line)!important}
html.ios20 #workbench.ios20 #terminal-quick button[aria-pressed=true]{background:var(--ios-selected)!important;box-shadow:none!important}
html.ios20 #workbench.ios20 #terminal-bottom{background:var(--ios-glass);gap:6px;padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-top:var(--ios-hairline) solid var(--ios-line)}
html.ios20 #workbench.ios20 #terminal-bottom button{min-height:var(--ios-hit)!important;min-width:40px!important;background:#18314a;border-color:var(--ios-line)!important}
html.ios20 #workbench.ios20 #wb-scroll-rail button{background:transparent!important;border:0!important;padding:4px 6px!important}
html.ios20 #workbench.ios20 #wb-scroll-rail button[aria-pressed=true]{background:#244f7e!important;box-shadow:inset 0 0 0 1px #69a5e150!important}
html.ios20 #workbench.ios20 #wb-stage{scroll-padding-bottom:12px}
html.ios20 #workbench.ios20 :is(.hub-body,#wb-drawer-body,.wb-action-grid){scroll-padding:12px;scrollbar-width:thin}
html.ios20 #workbench.ios20 .wb-date-control input{border-radius:inherit!important}
html.ios20 #workbench.ios20 :is(.wb-history-source,.wb-item){overflow-wrap:anywhere}
@supports(corner-shape:superellipse(1.35)){html.ios20 [data-ios-shape]:not([data-ios-shape=pill]){corner-shape:superellipse(1.35)}}
@media(max-width:375px){html.ios20 #workbench.ios20 .hub-instance-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}html.ios20 #workbench.ios20 .hub-instance-actions .hub-icon-button{width:100%!important}html.ios20 #workbench.ios20 .hub-tab{font-size:12px!important}html.ios20 #workbench.ios20 .hub-tab .hub-icon{width:15px;height:15px}html.ios20 #workbench.ios20 #terminal-bottom{flex-wrap:wrap}}
@media(max-width:345px){html.ios20 #workbench.ios20 .hub-segment{flex-wrap:wrap}html.ios20 #workbench.ios20 .hub-setting-row{flex-wrap:wrap}html.ios20 #workbench.ios20 :is(.hub-head h2,#wb-drawer-title){font-size:17px!important}}
@media(max-height:470px){html.ios20 #workbench.ios20 :is(.hub-head,#wb-drawer.hub-related>header){min-height:var(--ios-hit)!important;padding-top:2px!important;padding-bottom:2px!important}html.ios20 #workbench.ios20 :is(.hub-head h2,#wb-drawer-title){font-size:16px!important}html.ios20 #workbench.ios20 .hub-tabs{margin-bottom:2px!important}html.ios20 #workbench.ios20 :is(.hub-foot,.hub-detail-foot){padding-top:4px!important;padding-bottom:4px!important}html.ios20 #workbench.ios20 .hub-autosave-note{font-size:11px!important}}
@media(prefers-reduced-motion:reduce){html.ios20 *,html.ios20 *::before,html.ios20 *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-reduced-transparency:reduce){html.ios20 #workbench.ios20 dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:#030b16d9}html.ios20 #workbench.ios20 dialog{background:var(--ios-surface)!important}}
@media(prefers-contrast:more){html.ios20 #workbench.ios20 [data-ios-shape]{border-color:var(--ios-line-strong)!important}html.ios20 #workbench.ios20 button:disabled{opacity:.65}}
/* Login is a separate NEW candidate, keeping the production login page and API contract intact. */
html.ios20:has(#ios-login){overflow:auto;background:var(--ios-app)}
html.ios20 body:has(#ios-login){margin:0;min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at top,#20354f,var(--ios-app) 65%);color:var(--ios-text);font:var(--ios-body)/1.5 var(--ios-font)}
#ios-login{box-sizing:border-box;width:min(440px,calc(100% - 32px));padding:24px;background:var(--ios-surface);border:var(--ios-hairline) solid var(--ios-line-strong);border-radius:var(--ios-r-sheet);box-shadow:var(--ios-shadow);margin:24px auto}
#ios-login h1{font-size:26px;margin:20px 0 8px}#ios-login p{color:var(--ios-secondary)}#ios-login a{color:#96c7ff}#ios-login label{display:grid;gap:8px;margin:16px 0}#ios-login input{box-sizing:border-box;width:100%;height:48px;font:16px var(--ios-font);background:var(--ios-field);border:var(--ios-hairline) solid var(--ios-line);border-radius:var(--ios-r-control);padding:10px 14px;color:var(--ios-text)}
#ios-login button{width:100%;min-height:48px;margin-top:12px;font:600 16px var(--ios-font);color:white;background:#096ad9;border:0;border-radius:var(--ios-r-control)}#ios-login :focus-visible{outline:2px solid var(--ios-focus);outline-offset:3px}#ios-login #error{color:var(--ios-danger)}
/* Override legacy per-dialog !important sizes with the same semantic control contract. */
html.ios20 #workbench.ios20 #wb-drawer.hub-related .hub-field :is(input:not([type=checkbox]),select){height:var(--ios-hit)!important;min-height:var(--ios-hit)!important;background-color:var(--ios-field)!important}
html.ios20 #workbench.ios20 :is(#wb-control-center,#wb-drawer,#wb-actions-sheet,#wb-mobile-tools) button:not([role=switch]){min-height:var(--ios-hit)!important}
html.ios20 #workbench.ios20 .terminal-pane-controls button{min-height:var(--wb-tool-size)!important;min-width:var(--wb-tool-size)!important}

/* Real target rectangles for text and icon actions; no invisible overlap on neighboring plot gestures. */
html.ios20 #workbench.ios20 button[data-ios-shape]:not([role=switch]){min-height:var(--ios-hit)!important;min-width:var(--ios-hit)!important}
html.ios20 #workbench.ios20 .wb-readout-toggle{height:auto!important;min-height:var(--ios-hit)!important}

/* WebKit needs a definite action-sheet height: max-content flex + percent child height can collapse. */
html.ios20 #workbench.ios20 #wb-actions-sheet.hub-viewport-bound{position:fixed!important;inset:auto!important;left:calc(var(--hub-vp-left) + (var(--hub-vp-width) - min(460px,var(--hub-vp-width)))/2)!important;top:calc(var(--hub-vp-top) + var(--hub-vp-height) - min(420px,var(--hub-vp-height)))!important;width:min(460px,var(--hub-vp-width))!important;height:min(420px,var(--hub-vp-height))!important;max-width:none!important;max-height:none!important;min-height:0!important;margin:0!important;transform:none!important;box-sizing:border-box}
html.ios20 #workbench.ios20 #wb-actions-sheet[open]{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important}
html.ios20 #workbench.ios20 #wb-actions-sheet>.wb-action-grid{min-height:0!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden;align-content:start;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ios-space-2);padding:var(--ios-space-3)}
html.ios20 #workbench.ios20 #wb-actions-sheet .wb-action-grid button{min-height:76px!important;min-width:0!important;padding:12px!important;overflow-wrap:anywhere}
html.ios20 #workbench.ios20 #wb-actions-sheet .wb-action-grid strong{font-size:15px;line-height:1.35;font-weight:500}
html.ios20 #workbench.ios20 #wb-actions-sheet .wb-action-grid small{font-size:12px;line-height:1.45;color:var(--ios-secondary)}
html.ios20 #workbench.ios20 :is(#wb-close,#wb-actions-sheet>header button,#wb-mobile-tools>header button){padding:6px!important;white-space:nowrap!important;line-height:1.3}
@media(max-width:345px){html.ios20 #workbench.ios20 #wb-actions-sheet>.wb-action-grid{grid-template-columns:minmax(0,1fr)}}
