/* v46: centered vertical downloads; retained v45 account, recharge and dialog layouts. */
.header .nav.wrap,.dashboard-site .header .nav.wrap{width:100%;max-width:none;margin:0;padding-inline:24px}
.admin-top{padding-inline:24px}
@media(max-width:650px){.header .nav.wrap,.dashboard-site .header .nav.wrap{padding-inline:16px}.admin-top{padding-inline:16px}}
/* Public download text always has separate blocks rather than concatenated fragments. */
.download-shell{padding:26px 24px 28px}
.download-shell .download-card{width:100%;max-width:760px;margin:32px auto 0;padding:40px 48px;border-radius:20px;text-align:center}
.download-shell.download-theme-phone .download-card{max-width:660px;border-radius:36px}
.download-shell.download-theme-minimal .download-card{border-radius:0}
/* One centered column in every template, regardless of QR visibility or viewport. */
.download-overview,.download-overview.has-qr{display:flex;flex-direction:column;align-items:stretch;text-align:center}
.download-overview>.download-hero{display:block;width:100%;min-width:0}
.download-details{display:block;margin:0;text-align:left}
.download-shell .download-stats{width:100%;max-width:560px;margin:24px auto 0;min-width:0}
.download-stats>span{min-width:0;overflow-wrap:anywhere}
.download-theme-phone .download-hero:before{margin:0 auto 24px}
.download-card h1{line-height:1.4;overflow-wrap:anywhere}
.download-card .download-hero{padding:0;border:0;min-width:0}
.download-card .download-hero .app-icon{float:none;display:block;margin:0 auto 22px}
.download-identity{min-width:0}
.download-meta{display:grid;gap:10px;margin:16px 0 0;font-size:14px;line-height:1.65}
.download-meta-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 14px;min-width:0}
.download-meta-line>span{overflow-wrap:anywhere}
.download-meta .tag{line-height:1.5;padding:5px 10px}
/* Grid gap keeps notice, action and help apart; sibling margins cannot collapse. */
.download-install{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:100%;max-width:560px;margin:28px auto 0;min-width:0}
.download-install>*{margin:0}
.download-install>.notice{padding:16px 18px;line-height:1.85;text-align:left;overflow-wrap:anywhere;white-space:normal}
.download-install>.install-button{min-height:52px;padding:14px 20px;font-size:17px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.download-card .download-install-help{margin:0;min-width:0;overflow-wrap:anywhere}
.download-install-help{line-height:1.9;white-space:normal}
.download-install-help>.textlink{display:block;margin-top:8px}
.download-qr{display:flex;align-items:center;flex-direction:column;gap:16px;width:100%;max-width:560px;margin:32px auto 0;min-width:0}
.download-qr>.qr{display:block;width:180px;height:180px;margin:0;max-width:100%;object-fit:contain}
.download-scan-caption{margin:0;line-height:1.8;max-width:28em}
.download-card .release-notes{margin-top:28px;padding-top:24px;min-width:0}
.download-card .release-notes h3{font-size:20px;line-height:1.5;letter-spacing:0;margin-bottom:12px}
.download-card .release-notes p{margin:0 0 12px;line-height:1.9;font-size:15px;overflow-wrap:anywhere}
.download-card .release-notes p:last-child{margin-bottom:0}
.download-card summary{cursor:pointer;line-height:1.7}
.download-card details[open]>summary{margin-bottom:14px}
.download-version-list{display:grid;gap:0}
.download-version-row{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);line-height:1.7}
.download-version-row:last-child{border-bottom:0}
.download-shell .footer-mini{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;line-height:1.8;margin-top:22px}
.download-theme-game .download-stats{background:#204836}.download-theme-game .download-stats strong{color:#eefef5}
.download-theme-game .release-notes p,.download-theme-game .download-version-row time{color:#bedbca}
.download-theme-game .download-version-row{border-color:#39654e}
.download-lock-card>p{margin:20px 0;line-height:1.85}.download-lock-card #unlock-form{max-width:640px;margin:24px auto 0;text-align:left}
.download-lock-card #unlock-form label{display:block;margin:16px 0 8px}.download-lock-card #unlock-form .btn{margin-top:20px}
@media(min-width:1024px){
 .download-shell{padding:26px 32px 32px}
 .download-shell .download-card{margin:32px auto 0}
 .download-card .download-hero .app-icon{width:104px;height:104px;margin:0 auto 22px;border-radius:24px}
 .download-card h1{font-size:32px}
 .download-theme-qr .download-qr>.qr{width:200px;height:200px}
}
@media(max-width:650px){
 .download-shell{padding:20px 16px 24px}
 .download-shell .download-card{margin:26px auto 0;padding:28px 20px}
 .download-shell.download-theme-phone .download-card{border-width:4px;border-radius:30px}
 .download-meta-line{gap:8px 12px}
 .download-install{gap:16px;margin-top:24px}
 .download-install>.notice{padding:14px 16px}
 .download-card .release-notes p{font-size:14px}
 .download-qr{margin-top:28px}
}
/* Explicit rhythm for confirmation, delete and moderation text. */
.moderation-dialog{max-width:min(620px,calc(100vw - 32px));width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:28px;line-height:1.75}
.moderation-dialog h2{font-size:25px;line-height:1.4;letter-spacing:0;margin:0 0 18px}
.moderation-dialog>p,.moderation-dialog .dialog-message p{margin:0 0 14px;font-size:15px;line-height:1.9;overflow-wrap:anywhere;letter-spacing:0}
.moderation-dialog .dialog-message{margin:0 0 22px}
.moderation-dialog label{display:block;margin:18px 0 9px;font-weight:650;line-height:1.7}
.moderation-dialog .input{display:block;width:100%;margin:0;min-width:0;line-height:1.5}
.moderation-dialog .actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}
.moderation-dialog [role=alert]:not(:empty){margin-top:16px;padding:10px 12px;color:#af313b;background:#fff3f4;border-radius:8px;line-height:1.7}
.download-notice{max-width:min(480px,calc(100vw - 32px))}.download-notice .actions{justify-content:center}
/* Amount chips now sit in the balance card; no second oversized amount panel. */
.wallet-workspace .wallet-recharge-card.card{padding:0;margin-bottom:20px;overflow:hidden}
.wallet-recharge-card .wallet-balance{border:0;border-radius:0;margin:0;padding:14px 18px;gap:12px;min-height:62px}
.wallet-recharge-card .wallet-balance-icon{width:34px;height:34px;border-radius:9px}.wallet-recharge-card .wallet-balance-icon .ui-icon{width:20px;height:20px}
.wallet-recharge-card .wallet-balance>div{display:flex;align-items:baseline;gap:10px 18px;flex-wrap:wrap}
.wallet-recharge-card .wallet-balance strong{font-size:24px;margin:0;line-height:1.4}.wallet-recharge-card .wallet-balance p{font-size:12px;margin:0}
.recharge-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;padding:16px 18px;border-top:1px solid var(--line)}
.recharge-picker-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;grid-column:1/-1;font-size:15px}
.recharge-picker-label>span{color:var(--muted);font-size:12px}
.recharge-composer .recharge-presets{display:flex;flex-wrap:wrap;gap:10px;margin:0;align-items:center}
.recharge-composer .recharge-preset,.recharge-composer .recharge-preset[data-amount=custom]{padding:9px 16px;min-height:42px;border-radius:8px;font-size:16px;font-weight:650;line-height:1.4}
.recharge-confirm{display:flex;align-items:center;gap:18px;font-size:13px;color:var(--muted)}
.recharge-confirm>span{display:flex;gap:8px;align-items:baseline;white-space:nowrap}.recharge-confirm strong{color:var(--ink);font-size:20px}
.recharge-confirm .btn{min-height:42px;white-space:nowrap}
.recharge-composer .recharge-custom{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0;max-width:none;grid-column:1;grid-row:3}
.recharge-composer .recharge-custom .input{width:180px;min-width:0}.recharge-composer .recharge-custom label{margin:0;font-size:14px}
.recharge-composer .recharge-tip{grid-column:1/-1;font-size:12px;margin:0;line-height:1.7}
.recharge-composer #recharge-error:empty{display:none}.recharge-composer #recharge-error{grid-column:1/-1}
.wallet-recharge-page .recharge-history .orders-empty{padding:28px 16px}
.recharge-payment-page .wallet-workspace .wallet-recharge-card.card{margin-bottom:12px}
.recharge-payment-page .wallet-recharge-card .wallet-balance{padding:8px 14px;min-height:50px}
@media(max-width:1200px){.recharge-composer{grid-template-columns:1fr}.recharge-confirm{grid-column:1;justify-content:space-between}.recharge-composer .recharge-custom{grid-row:auto}.recharge-composer .recharge-presets{gap:8px}}
@media(max-width:650px){.wallet-recharge-card .wallet-balance{flex-wrap:nowrap;padding:12px}.wallet-recharge-card .wallet-balance>div{display:block}.wallet-recharge-card .wallet-balance>.btn{margin:0;white-space:nowrap}.wallet-recharge-card .wallet-balance p{display:none}.recharge-composer{padding:14px;gap:14px}.recharge-composer .recharge-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.recharge-composer .recharge-presets>button:last-child{grid-column:auto}.recharge-composer .recharge-preset,.recharge-composer .recharge-preset[data-amount=custom]{padding:10px 6px;font-size:14px}.recharge-confirm{flex-wrap:wrap}.recharge-composer .recharge-custom input{flex:1}.recharge-picker-label{gap:6px}.recharge-payment-page .wallet-recharge-card .wallet-balance p{display:none}}
/* Native dialog had inherited a 480px max-width; override both constraints. */
.admin-user-dialog{width:min(1120px,calc(100vw - 40px));max-width:1120px;height:min(880px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);padding:0;overflow:hidden;box-sizing:border-box}
.admin-user-dialog[open]{display:flex;flex-direction:column}
.admin-user-dialog>header{flex:none;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line)}
.admin-user-dialog>header .actions{display:flex;gap:10px;flex-wrap:wrap}.admin-user-dialog>header h2{font-size:23px;letter-spacing:0;line-height:1.4}.admin-user-dialog>header p{font-size:13px;margin:6px 0 0;overflow-wrap:anywhere}
.admin-user-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px;scrollbar-gutter:stable}
.admin-user-content .settings-history-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.admin-user-content .settings-history-grid span{min-width:0;line-height:1.65}.admin-user-content .settings-history-grid strong{line-height:1.7;margin-top:8px;overflow-wrap:anywhere}
.admin-user-content h3{margin:26px 0 16px;line-height:1.5}.admin-user-content form{padding:20px;border:1px solid var(--line);border-radius:12px}
.admin-user-content .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-user-content form label{line-height:1.7}
.admin-user-content .admin-user-history>div{padding:16px 0}.admin-user-history small,.admin-user-history p{line-height:1.8}
.admin-user-dialog>footer{display:flex;justify-content:flex-end;gap:12px;padding:12px 24px;border-top:1px solid var(--line);background:white;flex:none}
.admin-user-app-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.admin-user-app-filters input{flex:1;min-width:180px}.admin-user-app-filters select{width:auto}
.admin-user-app-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.admin-user-app-card{border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0}
.admin-user-app-card .appcard-main{padding:0;gap:14px}.admin-user-app-card .app-icon{width:54px;height:54px;flex:none}.admin-user-app-card h3{font-size:18px;margin:0;overflow-wrap:anywhere}.admin-user-app-card .small{overflow-wrap:anywhere;margin:6px 0;line-height:1.6}
.admin-user-app-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0;font-size:13px;color:var(--muted)}.admin-user-app-meta strong{display:block;font-size:15px;color:var(--ink);line-height:1.6;margin-top:4px;overflow-wrap:anywhere}
.admin-user-app-card .actions{gap:10px;flex-wrap:wrap;margin-top:14px}.admin-user-app-card .tag{margin-top:12px}.admin-user-app-card .copy-row{margin-top:12px;display:flex;gap:8px;min-width:0}.admin-user-app-card .copy-row .input{margin:0;min-width:0;flex:1}
.admin-user-app-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;font-size:13px;flex-wrap:wrap}.admin-user-app-pagination .actions{gap:10px}
@media(max-width:700px){.admin-user-dialog{width:calc(100vw - 20px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}.admin-user-dialog>header{padding:14px 16px;flex-wrap:wrap}.admin-user-content{padding:16px}.admin-user-content .settings-history-grid{grid-template-columns:1fr 1fr;gap:16px}.admin-user-app-list{grid-template-columns:1fr}.admin-user-dialog>footer{padding:12px 16px}.admin-user-content form{padding:14px}}
@media(max-width:420px){.admin-user-content .settings-history-grid,.admin-user-content .settings-grid{grid-template-columns:1fr}.moderation-dialog{padding:22px}}
@media(min-width:1100px) and (max-height:740px){.recharge-payment-page .wallet-workspace .wallet-recharge-card.card{margin-bottom:6px}.recharge-payment-page .wallet-recharge-card .wallet-balance{padding-block:6px}}

/* v48-admin-app-list: compact, administrator-only table; no card rows. */
.admin-user-dialog.admin-user-apps-dialog {
 width:min(1480px,calc(100vw - 40px));max-width:1480px;
 height:min(820px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);
}
.admin-user-apps-dialog>header {padding:16px 22px;min-height:78px;box-sizing:border-box}
.admin-user-apps-dialog>header h2 {font-size:22px;line-height:1.4}
.admin-user-apps-dialog>header p {margin:4px 0 0;line-height:1.5}
.admin-user-apps-dialog .admin-user-content {
 display:flex;flex-direction:column;gap:14px;overflow:hidden;padding:16px 22px 0;scrollbar-gutter:auto;
}
.admin-user-apps-dialog .admin-user-content .admin-user-app-filters {
 display:flex;align-items:center;flex-wrap:nowrap;gap:10px;flex:none;
 border:0;border-radius:0;padding:0;margin:0;min-height:38px;
}
.admin-user-apps-dialog .user-app-search {display:flex;align-items:center;position:relative;flex:1;max-width:480px;min-width:170px}
.admin-user-apps-dialog .user-app-search>.ui-icon {position:absolute;left:12px;width:16px;height:16px;color:var(--muted);pointer-events:none}
.admin-user-apps-dialog .admin-user-app-filters .input {
 margin:0;min-height:38px;height:38px;padding:8px 11px;line-height:1.4;font-size:13px;box-sizing:border-box;
}
.admin-user-apps-dialog .admin-user-app-filters .user-app-search .input {width:100%;min-width:0;padding-left:36px}
.admin-user-apps-dialog .admin-user-app-filters select {flex:0 0 138px;width:138px;min-width:0}
.admin-user-apps-dialog .admin-user-app-filters .btn {min-height:38px;padding:8px 16px;font-size:13px;white-space:nowrap}
.admin-user-apps-dialog .user-app-query-status {font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap}
.admin-user-apps-dialog .admin-user-app-table-wrap {
 flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:10px;
 background:white;scrollbar-gutter:stable;
}
.admin-user-apps-dialog .admin-user-app-table {table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:1170px;margin:0;font-size:13px}
.admin-user-apps-dialog .admin-user-app-table .col-app {width:15%}
.admin-user-apps-dialog .admin-user-app-table .col-platform {width:5.5%}
.admin-user-apps-dialog .admin-user-app-table .col-package {width:13%}
.admin-user-apps-dialog .admin-user-app-table .col-version {width:8%}
.admin-user-apps-dialog .admin-user-app-table .col-size {width:8.5%}
.admin-user-apps-dialog .admin-user-app-table .col-downloads {width:7%}
.admin-user-apps-dialog .admin-user-app-table .col-status {width:6.5%}
.admin-user-apps-dialog .admin-user-app-table .col-created {width:14%}
.admin-user-apps-dialog .admin-user-app-table .col-link {width:15%}
.admin-user-apps-dialog .admin-user-app-table .col-action {width:7.5%}
.admin-user-apps-dialog .admin-user-app-table th {
 position:sticky;top:0;z-index:2;background:#f4f8f6;border:0;border-bottom:1px solid var(--line);
 padding:12px 10px;text-align:left;font-size:12px;font-weight:650;color:#5b746b;white-space:nowrap;line-height:1.4;
}
.admin-user-apps-dialog .admin-user-app-table td {
 height:58px;box-sizing:border-box;padding:10px;border:0;border-bottom:1px solid #edf2ef;
 vertical-align:middle;line-height:1.5;white-space:nowrap;color:var(--ink);
}
.admin-user-apps-dialog .admin-user-app-table tbody tr:last-child td {border-bottom:0}
.admin-user-apps-dialog .admin-user-app-table tbody tr:hover td,
.admin-user-apps-dialog .admin-user-app-table tbody tr:focus-within td {background:#f5fbf8}
.admin-user-apps-dialog .user-app-identity {display:flex;align-items:center;gap:10px;min-width:0}
.admin-user-apps-dialog .user-app-identity .app-icon {width:32px;height:32px;flex:0 0 32px;border-radius:8px;font-size:15px}
.admin-user-apps-dialog .user-app-identity strong {display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.5;font-weight:650}
.admin-user-apps-dialog .user-app-ellipsis {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-width:0}
.admin-user-apps-dialog .user-app-package,.admin-user-apps-dialog time {color:var(--muted);font-size:12px}
.admin-user-apps-dialog .user-app-platform {font-size:12px;font-weight:550}
.admin-user-apps-dialog .user-app-number {font-variant-numeric:tabular-nums;font-size:12px}
.admin-user-apps-dialog .user-app-status {display:inline-block;padding:4px 8px;font-size:11px;line-height:1.3;border-radius:5px;background:#e9f7f0;color:#168165}
.admin-user-apps-dialog .user-app-status.is-paused {background:#fff4df;color:#9d6a1b}
.admin-user-apps-dialog .user-app-status.is-banned {background:#fff0f0;color:#b74444}
.admin-user-apps-dialog .user-app-link {display:flex;align-items:center;gap:6px;min-width:0}
.admin-user-apps-dialog .user-app-link>a {color:var(--green);font-size:12px;flex:1;min-width:0}
.admin-user-apps-dialog .admin-user-app-table .btn {min-height:30px;height:30px;padding:5px 8px;font-size:12px;line-height:1.4;gap:4px;border-radius:6px;white-space:nowrap}
.admin-user-apps-dialog .admin-user-app-table .btn .ui-icon {width:13px;height:13px}
.admin-user-apps-dialog .admin-user-app-table .user-app-copy {width:28px;flex:0 0 28px;padding:5px;border-color:transparent;background:transparent}
.admin-user-apps-dialog .admin-user-app-table .user-app-copy:hover {border-color:var(--line);background:white}
.admin-user-apps-dialog>footer {display:flex;align-items:center;gap:18px;padding:12px 22px;min-height:64px;box-sizing:border-box}
.admin-user-apps-dialog .admin-user-app-pagination {flex:1;display:flex;align-items:center;justify-content:flex-start;gap:18px;flex-wrap:wrap;margin:0;font-size:12px;color:var(--muted)}
.admin-user-apps-dialog .admin-user-app-pagination .actions {margin:0;gap:8px}
.admin-user-apps-dialog .user-app-page-size {display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap}
.admin-user-apps-dialog .user-app-page-size .input {margin:0;width:80px;height:32px;min-height:32px;padding:5px 8px;font-size:12px}
.admin-user-apps-dialog>footer .btn {font-size:12px;min-height:32px;padding:6px 12px;white-space:nowrap}
.admin-user-apps-dialog .user-app-sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.admin-user-apps-dialog .user-app-load-error {padding:24px;line-height:1.7}
.admin-user-apps-dialog .user-app-load-error .error {margin-bottom:14px}
.admin-user-apps-dialog .orders-empty {padding:48px 16px;text-align:center}
.admin-user-apps-dialog .orders-empty h3 {margin:0 0 12px;font-size:17px}
.admin-user-apps-dialog .orders-empty p {font-size:13px;line-height:1.7}
.admin-user-apps-dialog :is(button,a,select,input,.admin-user-app-table-wrap):focus-visible {outline:2px solid var(--green);outline-offset:2px}
@media(max-width:700px) {
 .admin-user-dialog.admin-user-apps-dialog {width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}
 .admin-user-apps-dialog>header {padding:12px 14px;min-height:70px}
 .admin-user-apps-dialog>header h2 {font-size:19px}
 .admin-user-apps-dialog .admin-user-content {padding:12px 12px 0;gap:12px}
 .admin-user-apps-dialog .admin-user-content .admin-user-app-filters {flex-wrap:wrap;gap:8px}
 .admin-user-apps-dialog .user-app-search {flex:1 0 100%;max-width:none;min-width:0}
 .admin-user-apps-dialog .admin-user-app-filters select {flex:1;min-width:110px;width:auto}
 .admin-user-apps-dialog .admin-user-app-filters .btn {padding-inline:12px}
 .admin-user-apps-dialog .user-app-query-status {display:none}
 .admin-user-apps-dialog .admin-user-app-table-wrap {scrollbar-gutter:auto}
 .admin-user-apps-dialog>footer {padding:10px 12px;gap:10px;align-items:flex-end}
 .admin-user-apps-dialog .admin-user-app-pagination {gap:8px 12px;font-size:11px}
 .admin-user-apps-dialog .admin-user-app-pagination>span {width:100%;line-height:1.5}
 .admin-user-apps-dialog .user-app-page-size {gap:5px}
 .admin-user-apps-dialog .user-app-page-size .input {width:72px}
 .admin-user-apps-dialog .admin-user-app-pagination .actions {gap:6px}
 .admin-user-apps-dialog>footer .btn {font-size:11px;padding:6px 8px}
}

/* Few applications should not leave an oversized empty dialog. */
.admin-user-dialog.admin-user-apps-dialog.user-apps-short-list {height:fit-content;min-height:260px}
.admin-user-apps-dialog.user-apps-short-list .admin-user-content {flex:0 1 auto}
