/* OREUMUP v1.9.21 / v1.9.19 original + scoped 13px reading text.
   Protected: original topbar (logo/name/search/controls) and complete hero incl. 3 CTAs.
   Topbar search results and notification popovers are reading surfaces, so are 13px.
   Keep the original personal size preference: 90-130%, steps of 5%.
   No font changes to protected children, no page zoom, no hero layout patch. */
:root {
  --oreumup-reading-base: 13px;
  --oreumup-reading-size: calc(var(--oreumup-reading-base) * var(--oreumup-font-scale, 1));
}
/* These roots originally inherited the 16px body baseline. Preserve it even though
   their parent wrappers are now reading surfaces; their own original px/clamp
   declarations, line heights, spacing, breakpoints and scaling stay untouched. */
.topbar, .hero { font-size: calc(16px * var(--oreumup-font-scale, 1)); }
body :where(*):not(:where(.topbar, .topbar *, .hero, .hero *, svg, svg *,
  .modal-close, .search-close, .notification-close, .mini-handoff-close, .member-doc-remove)),
:where(#searchResult, #searchResult *, #notificationPanel, #notificationPanel *):not(:where(svg, svg *,
  .modal-close, .search-close, .notification-close, .mini-handoff-close, .member-doc-remove)) {
  font-size: var(--oreumup-reading-size) !important;
  letter-spacing: normal !important;
}
/* Match the legacy mobile room selectors to remove its separate 15/16/24px sizes. */
#ownerRoomModal .room-header h2,
#ownerRoomModal .room-header p,
#ownerRoomModal .operator-line,
#ownerRoomModal .operator-badge,
#ownerRoomModal .crown,
#ownerRoomModal .band-b,
#ownerRoomModal .band-btn,
#ownerRoomModal .room-tab,
#ownerRoomModal .room-avatar,
#ownerRoomModal .room-name,
#ownerRoomModal .mine-badge,
#ownerRoomModal .role-badge,
#ownerRoomModal .connect-owner,
#ownerRoomModal .room-bubble,
#ownerRoomModal .room-time,
#ownerRoomModal .room-compose input,
#ownerRoomModal .room-compose button,
#ownerRoomModal .connection-avatar,
#ownerRoomModal .connection-main strong,
#ownerRoomModal .connection-main small,
#ownerRoomModal .connection-state,
#ownerRoomModal .connection-actions button,
#ownerRoomModal .request-box h3,
#ownerRoomModal .request-box p,
#ownerRoomModal .request-actions button {
  font-size: var(--oreumup-reading-size) !important;
}
/* Reading text can wrap; graphic controls and protected main areas are untouched. */
#searchResult input::placeholder, .modal-backdrop input::placeholder,
.modal-backdrop textarea::placeholder { font-size: inherit; }
.modal-backdrop input, .modal-backdrop textarea, .modal-backdrop select { font-family: inherit; }
.modal-close, .search-close, .notification-close, .mini-handoff-close, .member-doc-remove { flex-shrink: 0; }
.pr-name, .pr-meta, .pr-ing, .pr-source, .pr-cell span, .stock-row small, .stock-row strong,
.quick-selected strong, .quick-selected small, .question-body, .detail-meta,
.application-meta, .member-roster-meta { overflow-wrap: anywhere; }
.pr-meta, .pr-ing, .pr-cell span { white-space: normal; }
.pr-actions { min-width: 0; }
.pr-actions button { white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
.notice-badge { flex-shrink: 0; white-space: nowrap; }
.notice-text { min-width: 0; flex: 1; }
.notice-more { flex-shrink: 0; white-space: nowrap; }
.stat, .stat>div:last-child, .service>div { min-width: 0; }
.stat>div:last-child { overflow-wrap: anywhere; }
.modal-head h2, .modal-head p { overflow-wrap: anywhere; }
.service h3, .service p { white-space: normal; word-break: keep-all; overflow-wrap: anywhere; line-height: 1.5; }
.room-topline { flex-wrap: wrap; }
.room-bubble, #ownerRoomModal .room-name { overflow-wrap: anywhere; }
.font-size-value { min-width: 0; }
.trade-badge, .category-badge, .test-seed-badge, .tag, .mine-badge, .role-badge { white-space: nowrap; flex-shrink: 0; }
.inventory-board-top, .question-board-top, .operator-line { flex-wrap: wrap; row-gap: 6px; }
.operator-line>.crown, .operator-line>span:nth-child(2) { flex-shrink: 0; white-space: nowrap; }
.operator-badge { word-break: keep-all; }
#recentStockRows .row-item { grid-template-columns: 38px minmax(0,1fr) auto; row-gap: 5px; padding: 8px 0; }
#recentStockRows .row-item>.thumb { grid-column: 1; grid-row: 1 / span 2; }
#recentStockRows .row-item>.item-name { grid-column: 2 / -1; grid-row: 1; min-width: 0; }
#recentStockRows .row-item>.tag { grid-column: 2; grid-row: 2; justify-self: start; }
#recentStockRows .row-item>.category-badge { grid-column: 3; grid-row: 2; justify-self: end; }
#recentStockRows .row-item>.time { grid-column: 2 / -1; grid-row: 3; white-space: normal; }
@media(max-width:760px) {
  .mobile-bottom { height: auto; min-height: 72px; }
  .mnav { min-height: 50px; line-height: 1.4; overflow-wrap: anywhere; padding: 3px 2px; }
  .stat label { word-break: keep-all; }
  .stock-qty { white-space: normal; word-break: keep-all; max-width: 110px; text-align: center; }
  #ownerRoomModal .room-header { display: grid !important; grid-template-columns: minmax(0,1fr) 44px; align-items: start !important; gap: 8px !important; }
  #ownerRoomModal .room-header-main { grid-column: 1 / -1; grid-row: 1; padding-right: 54px; }
  #ownerRoomModal .room-header>.modal-close { grid-column: 2; grid-row: 1; align-self: start; justify-self: end; }
  #ownerRoomModal .band-slot { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
}
@media(max-width:520px) {
  .inventory-board-head, .question-board-head { flex-wrap: wrap; align-items: flex-start; gap: 5px; }
  .inventory-board-head>strong { flex-shrink: 0; white-space: nowrap; }
  .inventory-board-head>span { flex-basis: 100%; line-height: 1.5; }
  /* Keep the user's existing 72px trade row, with the title on its own line. */
  .my-trade-open { grid-template-columns: auto minmax(0,1fr); grid-template-rows: auto auto; gap: 3px 6px; padding: 8px 62px 8px 12px; }
  .my-trade-copy { display: contents; }
  .my-trade-copy strong { grid-column: 1 / -1; grid-row: 1; min-width: 0; }
  .my-trade-copy small { grid-column: 2; grid-row: 2; min-width: 0; margin: 0; }
  .my-trade-kind { grid-column: 1; grid-row: 2; justify-self: start; padding: 3px 6px; line-height: 1.15; }
  .my-trade-actions { top: 6px; right: 9px; flex-direction: column; gap: 4px; }
  .my-trade-actions button { padding: 4px 6px; line-height: 1.15; }
  .my-trade-go { position: absolute; right: 60px; top: 23px; }
}
@media(max-width:410px) {
  .cardline.stat { flex-direction: column; gap: 4px; text-align: center; }
}
/* Don't animate intermediate text sizes while changing the preference. */
.toast { transition-property: opacity, transform; }
