/* Shared direction tokens. Owners use logical edges; media uses physical coordinates. */:root{--ui-inline-sign:1;--ui-safe-inline-start:env(safe-area-inset-left);--ui-safe-inline-end:env(safe-area-inset-right);--ui-inline-start-origin:left;--ui-inline-end-origin:right;--ui-guidance-arrow-rotation:45deg}:root[dir="rtl"]{--ui-inline-sign:-1;--ui-safe-inline-start:env(safe-area-inset-right);--ui-safe-inline-end:env(safe-area-inset-left);--ui-inline-start-origin:right;--ui-inline-end-origin:left;--ui-guidance-arrow-rotation:-135deg;--ui-summary-marker-x:calc(100% - 28px)}/* These coordinate systems belong to drawing/viewing engines, not text layout.
 * Do not reflect their artwork or change physical pan/resize/crop directions. */:root[dir="rtl"] :is(.excalidraw canvas, .microscope-viewer, .microscope-pointer-layer,
  .anatomy-image-editor-stage, .avatar-crop-stage, .study-image-object,
  .gqb-logo-game-host, .admin-presence-globe-stage){direction:ltr}/* Keep the native zoom/history button sequences physical. Only these two
 * groups change order; localized editor chrome and drawing stay untouched. */:root[dir="rtl"] .entry-study-canvas-editor .excalidraw :is(.zoom-actions, .undo-redo-buttons){direction:ltr}/* Isolate external/user copy without rewriting stored markup or formatting.
 * Plaintext determines each paragraph's direction from its own first strong character. */:root[dir="rtl"] :is(.anatomy-entry-back-editor, .anatomy-entry-preview, .anatomy-image-editor-text-box,
  .img-file-name, .drive-save-file-name, .drive-library-name,
  .shared-pack-author-text, .current-user-profile-email,
  .admin-console-account-identity, .author-profile-overflow-track,
  #accountMenuEmail, #currentUserSubtitle, #accountMenuName, #currentUserName,
  .disease-item .name, .disease-entry-name, #appPackNameText, .gdrive-pack-row-title,
  .floating-entry-card-name, .study-set-list-name, .study-set-detail-title,
  .study-set-swipe-subtitle-preview, .quiz-saved-group-list-name, .anatomy-quiz-card-answer, .anatomy-quiz-front-text,
  input:not([type="range"]), textarea,
  [data-bidi="auto"], .bidi-auto):not(:where(.study-note-display *, .study-edit-surface *)){unicode-bidi:plaintext}/* The placeholder is interface copy; the editable study content has its own dir. */:root[dir="rtl"] .study-edit-surface:empty::before{display:block;direction:rtl;unicode-bidi:isolate;text-align:start}:root[dir="rtl"] :is(input[type="email"], input[type="url"],
  [data-bidi="ltr"], .bidi-ltr, a[href^="mailto:"], code, kbd, samp,
  .admin-console-moderator-identity-copy > strong, .study-timer-input, .microscope-scale-bar,
  .microscope-zoom-level, input[type="range"], input[type="number"],
  .viewer-enhance-control, .microscope-enhance-slider,
  .focus-notice-marquee, .focus-badge-history-marquee,
  .focus-badge-history-item-text):not(:where(.study-note-display *, .study-edit-surface *)){direction:ltr;unicode-bidi:isolate}/* Reflect only navigation glyphs. Logos, media, checks and formatting icons are untouched. */:root[dir="rtl"] :is([data-ui-directional], .account-menu-chevron,
  .account-menu-back > svg, .account-menu-back > span[aria-hidden="true"], .settings-nav-chevron,
  .admin-console-nav-chevron, .admin-console-report-back > svg,
  .drive-link-arrow > svg, .library-entry-back > svg,
  #studyNoteToolbar [data-study-cmd="undo"] > svg,
  #studyNoteToolbar [data-study-cmd="redo"] > svg,
  #studyNoteToolbar [data-study-cmd="indent"] > svg,
  #studyNoteToolbar [data-study-cmd="outdent"] > svg,
  .anatomy-image-editor-modal [data-undo] > svg,
  .anatomy-image-editor-modal [data-redo] > svg):not(:where(.study-note-display *, .study-edit-surface *)){direction:ltr;unicode-bidi:isolate;transform:scaleX(-1)}:root[dir="rtl"] .microscope-slide-group-chevron{direction:ltr;unicode-bidi:isolate;transform:scaleX(-1)}:root[dir="rtl"] .microscope-slide-group[open] .microscope-slide-group-chevron{transform:scaleX(-1) rotate(90deg)}/* Physical globe geometry stays LTR; its independent UI chrome follows the app. */:root[dir="rtl"] :is(.admin-presence-globe-legend, .admin-presence-globe-tooltip, .admin-presence-globe-close){direction:rtl}:root[dir="rtl"] :is(.admin-presence-globe-people button > span:not(.admin-console-identity-avatar),
  .admin-presence-globe-tooltip > strong > span:not(.admin-console-identity-avatar)){unicode-bidi:plaintext;min-inline-size:0;overflow-wrap:anywhere}
