/* R113: shared 28 CSS-pixel radius. Height limits are handled by CSS's
   standard radius normalization. Artwork and gameplay shapes are untouched. */
:root{--yq-ui-radius:28px}
body.yunqi-front{--radius:var(--yq-ui-radius)}
body.yunqi-front :is(#ui,.mp-ov) :is(.panel,.auth-card,.auth-perks>div,.auth-beta,.auth-warn,.auth-keep,.auth-card .err:not(:empty), .mm-item,.trainer,.mm-sp,.mm-season,.mm-sp-menu,.mm-sp-menu button,.mm-sp-pod,.mm-sp-row,.mm-sp-me,.mm-sp-prizes,.mm-foot details[open], .ls-hero,.ls-show,.ls-card,.ls-tile,.ls-step,.ls-stagecard,.ls-ready,.ls-shiny-note,.ls-near,.ls-passive,.ls-move,.ls-ult,.ls-mate,.ls-stats .stat-row,.ls-run-row, .sp-card,.sp-show,.sp-move,.dx-left,.dx-tile,.dx-show,.dx-info,.dx-entry,.dx-coll,.dx-ms,.dx-skin,.dx-nb,.dx-rs-done,.yq-codex-signature,.yq-codex-fact, .rg-item,.rg-window,.rg-about,.rg-name,.rg-partner,.rg-boss,.rg-stop,.rg-side,.rg-mode,.rg-how,.rg-tier,.rg-md,.rg-boost,.yq-prepare-record, .lab-card,.ic,.it-empty,.it-slots,.lab-mode,.q-card,.tk-col,.tk-bagpanel,.tk-card,.tk-prize,.tk-pi,.tk-boost,.tk-note, .bd-main,.bd-kind,.bd-kind-tab,.bd-mode,.bd-mode-t,.bd-pick,.bd-prizes,.bd-prize,.bd-msg,.bd-break,.bd-found,.bd-mons,.bd-mon-t,.bd-list,.bd-row,.bd-mpbox,.pod, .st-tab,.st-pane,.st-row,.seg,.st-key,.lk-cell,.lk-title-cell,.cr-legal,.upd-bar,.season-row,.kgoal, .cl-guest,.cl-hero,.cl-row,.cl-mem,.cl-slots-max,.cl-prize,.cl-frow,.cl-req,.cl-reqmsg,.cl-acc-opt,.cf-opt,.cf-acc,.fr-row,.fr-req,.ml-msg,.ml-res-row, .cl-ev,.cl-rd-pts,.cl-rd-stat,.cl-rd-zone,.cl-rd-item,.pf-clan,.pf-mon,.pf-stat,.pf-map,.pf-tro,.pf-run, .nw-card,.nw-reader,.nw-body .nw-box,.nw-body .nw-img,.nw-thumb,.fb-kind,.fb-note,.lang-list,.lang-opt, .card,.item-row,.evo-card,.kitrow,.sm,.sm-hero,.sm-kpi,.sm-card,.sm-empty,.sm-note,.sm-dust,.sm-facts>div,.sm-mon,.sm-task,.sm-kill,.sm-rs, .pz-hero,.pz-ability,.pz-move,.pz-other,.pz-detail,.pz-item,.pz-eff,.pz-vit,.pz-stats,.pz-tabs,.pz-tab,.ml-row,.ml-col, .mp-panel,.mp-sec,.mp-move,.mp-closed,.mp-slots,.mp-bar,.mp-seg,.pk-body>section,.pk-move,.pk-item,.pk-vit,.pk-note,.gl-row, .rs-cover,.rs-ms,.rs-detail,.rs-fam,.sl-window,.sl-reel,.tt,.tt-facts,.mv-facts,.mv-group,.mv-levels,.mv-diff, .tour-card,.run-hint,.yq-forget-modal,.yq-fusion-panel,.yq-fusion-card,.yq-debate-panel,.yq-coop-card,.yq-coop-hud, .yq-continuation,.yq-session-row,.yq-session-expired,.yq-login-recovery,.yq-altar-ledger,.yq-operation-status,.yq-save-status,.yq-password-card,.yq-clan-contribution, .sg-panel,.sg-task,.sg-stages>div,.yq-mobile-quality,.yq-native-prompt, .hud-top,.bb-body,.cap-plate,.cap-note,.toast,.prompt,.bossintro .plate,.bigmap,.slot,.itm,.tc-btn,.tc-sm,.tc-aim),
body.yunqi-front :is(#ui,.mp-ov) :is(.btn,.back-btn,.lang-btn,.gl-btn,.pill,.chip,kbd,.dx-search,.dx-type,.rg-link,.q-reward,.q-claim,.tk-reward,.tk-reroll,.tk-claim,.currency,.lab-buy,.ic-buy,.ic-link,.it-f,.bd-search,.st-val,.pz-tab,.yq-coop-choice,.yq-fusion-button,.yq-fusion-search,.yq-debate-actions button,.yq-coop-actions button,.yq-coop-actions input,.yq-coop-actions select,.yq-coop-hud button,.gl-tabs button,.mp-seg button,.mp-sel select,.seg button,.auth-tabs button,.auth-card input,.auth-card select,.cf input,.cl input,.fr input,.st-pane input:not([type=range]):not([type=checkbox]),.st-pane select,.yq-password-card input){
 border-radius:var(--yq-ui-radius)!important;
}
body.yunqi-front :is(.yq-coop-card,.yq-coop-hud,.yq-fusion-panel,.yq-debate-panel,.yq-continuation,.yq-password-card,.yq-operation-status,.yq-save-status),
#yq-boot-recovery,#yq-boot-recovery button,#yq-boot .yq-boot-retry{border-radius:var(--yq-ui-radius)!important}
/* Match attached header/footer corners without introducing overflow:hidden,
   which would crop dropdowns, focus rings, badges and tooltips. */
body.yunqi-front #ui :is(.auth-card,.panel,.ls-card,.st-pane,.tk-col,.tk-bagpanel,.rg-side) > :is(.ribbon,.st-pane-head,.tk-head,.rg-side-head){border-radius:var(--yq-ui-radius) var(--yq-ui-radius) 0 0!important}
body.yunqi-front #ui :is(.card,.lab-card,.ic) > .top{border-radius:var(--yq-ui-radius) var(--yq-ui-radius) 0 0!important}
body.yunqi-front #ui .mm-item::before{border-radius:var(--yq-ui-radius) 0 0 var(--yq-ui-radius)!important}
body.yunqi-front #ui .tour-card::before{border-radius:var(--yq-ui-radius) var(--yq-ui-radius) 0 0!important}
body.yunqi-front #ui .pod-base{border-radius:0 0 var(--yq-ui-radius) var(--yq-ui-radius)!important}
body.yunqi-front #ui .cl-rd-hero{border-radius:var(--yq-ui-radius) var(--yq-ui-radius) 0 0!important}
