/* Interaction contract: app chrome is UI; content selection is an explicit role.
   Do not cancel input/touch events globally or change the document scroll model. */
:where(.app-shell,.app-header,.platform-header,.app-dialog,.app-card,.app-launcher,.editor-toolbar,.editor-topbar,.ui-surface,[data-interaction],button,[role=button],[role=tab]){user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
:where(.app-shell,.app-dialog,.ui-surface) :is(input,textarea,[contenteditable]:not([contenteditable=false]),pre,code,output:not([data-range-output]),.big-result,.calc-result,.result-value,.kv-table,.data-table,.diff-table,.diff-out,.md-out,.rd-text,.bf-list,.wg-results,.share-link),:is(.ui-selectable,.ui-document,.ui-editable){user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
:is(.ui-selectable,.ui-document,.ui-editable) :where(p,span,div,code,pre,td,th,li,a,strong,em){user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
:where(button,[role=button],[role=tab],.ui-direct-action){touch-action:manipulation}
:where([data-interaction=gesture],[data-interaction=drag],.ui-gesture,.ui-draggable){touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
:where([data-interaction=pan-x]){touch-action:pan-x pinch-zoom}:where([data-interaction=pan-y]){touch-action:pan-y pinch-zoom}
:where(.app-shell,.app-dialog,[data-interaction]) img{-webkit-user-drag:none}
.ui-icon-button{width:44px;min-width:44px;min-height:44px;display:inline-grid;place-items:center;padding:8px!important;flex:none}
.ui-icon-button:focus-visible,.ui-direct-action:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.ui-direct-action{min-width:44px;min-height:44px;border:2px solid var(--control-border);border-radius:12px;background:var(--surface);color:var(--text)}
.ui-direct-action:not(:disabled),[data-action-available=true]:not(:disabled){cursor:pointer;outline:2px solid var(--accent);outline-offset:-2px;box-shadow:0 2px 5px color-mix(in srgb,var(--accent) 24%,transparent)}
.ui-direct-action:disabled{cursor:default;box-shadow:none;outline:none;opacity:.72}
.ui-direct-action:not(:disabled):active{transform:scale(.97)}

/* Embedded workspaces share the same boundary, with document/data opt-ins. */
.ui-surface :is(.textLayer,#metadata,#results,.data-grid,.reader-content){user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
:is(.ui-selectable,.ui-document,.ui-editable,.calc-result) :is(button,[role=button],[role=tab],label,output[data-range-output]),:is(.ui-selectable,.ui-document,.ui-editable,.calc-result) :is(button,[role=button],[role=tab],label) :where(span,svg,path,strong,em){user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
