/* Final shared layout rules: controls stay in the document flow at every size. */
*,*::before,*::after{box-sizing:border-box}
html,body,#app{min-width:0;max-width:100%}
.main,.content,.panel,.card,.stat,.page-head>div,.section-head>div{min-width:0}
.row,.section-head,.page-head,.top-actions{flex-wrap:wrap;gap:12px}
.row>.btn,.section-head>.btn,.page-head>.btn{flex-shrink:1;max-width:100%}
.btn{white-space:normal;overflow-wrap:anywhere;line-height:1.45;min-height:42px}
.field,.admin-field{min-width:0;overflow-wrap:anywhere}
input,select,textarea{min-width:0;max-width:100%}
.field input,.field select,.field textarea,.admin-field input,.admin-field select{width:100%}
.sidebar{overflow-y:auto;overscroll-behavior:contain}
.sidebar>.brand,.sidebar>.nav,.sidebar>.nav-label{flex-shrink:0}
.side-bottom{position:static;margin-top:auto;padding-top:20px;flex-shrink:0}
.brand.brand-image{display:block;font-size:0;width:100%;max-width:220px;height:auto;flex-shrink:0;margin:0 0 18px}
.brand-image img{display:block;width:100%;height:auto;border-radius:12px;background:#fff;object-fit:contain}
.auth-art>.brand-image{max-width:300px}
.topbar{min-height:80px;height:auto;padding-top:12px;padding-bottom:12px;gap:12px}
.top-actions{justify-content:flex-end;min-width:0}
.user-chip{min-width:0;max-width:100%}.user-chip>div{min-width:0}.user-chip strong,.user-chip small{overflow-wrap:anywhere;white-space:normal}
.table-wrap{max-width:100%;overflow:auto;overscroll-behavior:contain}
table td,table th{vertical-align:top}.table-wrap .row{gap:8px}
dialog{position:fixed;overflow:auto;overscroll-behavior:contain;max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px);padding-top:28px}
dialog>h2{padding-right:46px;overflow-wrap:anywhere;line-height:1.35;min-height:36px}
dialog>.close{position:absolute;float:none;top:10px;right:10px;display:grid;place-items:center;width:40px;height:40px;min-width:40px;padding:0;line-height:1;border-radius:10px;background:var(--bg);z-index:10}
.admin-popup-footer{position:static;bottom:auto;padding-bottom:0;display:flex;flex-wrap:wrap}
.admin-popup-footer .btn{min-width:120px;flex:1 1 120px}
.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-toggle{padding-right:76px;min-height:64px}.admin-toggle input{right:16px}.admin-toggle .switch-track{position:absolute;right:16px}
.admin-catalog-row>.row{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}
.admin-reward-row,.admin-region-row,.admin-limit-row{min-width:0}
.player-search{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin-bottom:20px}
.player-search .field{flex:1 1 240px;margin:0}.player-search .check{margin:0;padding:12px 0}
.player-list{display:grid;gap:14px}.player-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,.7fr) minmax(240px,1.5fr);align-items:center;gap:20px;margin:0}
.player-row h3{margin:0 0 8px;overflow-wrap:anywhere}.player-row small{color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.player-row>div>strong{display:block;margin-top:8px}
.player-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.player-actions .btn{font-size:12px;min-height:42px}
dialog.player-dialog{width:min(980px,calc(100vw - 24px));max-width:980px}
.player-summary{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:18px 0;line-height:1.6}.player-summary strong{font-size:22px}
.player-asset-section{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.player-asset-section .section-head{display:flex;justify-content:space-between;align-items:center}.player-asset-section h3{margin:0;line-height:1.5}
.player-asset-list{display:grid;gap:10px;margin-top:14px}.player-asset-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.player-asset-row>div{min-width:0}.player-asset-row strong{display:block;overflow-wrap:anywhere}.player-asset-row small{display:block;color:var(--muted);line-height:1.7;margin-top:8px}
.player-back{margin-bottom:18px}.player-editor-section{margin-top:20px;border:1px solid var(--line);padding:16px;border-radius:12px}.player-editor-section>summary{font-weight:650;line-height:1.5;cursor:pointer}.player-editor-section[open]>summary{margin-bottom:20px}
.player-fault-row{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:12px;border-bottom:1px solid var(--line);padding:16px 0}.player-fault-row .check{font-size:12px;line-height:1.6}
.impersonation-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:18px;border:1px solid var(--accent);border-radius:12px;background:var(--panel);margin-bottom:24px}
.impersonation-banner>div{flex:1 1 240px;min-width:0}.impersonation-banner strong,.impersonation-banner span{display:block;line-height:1.6;overflow-wrap:anywhere}.impersonation-banner span{font-size:12px;color:var(--muted);margin-top:5px}
.password-reset-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.password-reset-page>.panel{width:min(520px,100%)}.password-reset-page .brand{max-width:240px;margin:auto auto 24px}.password-reset-page h1{font-size:26px;line-height:1.3}
#toast{max-width:calc(100vw - 32px);overflow-wrap:anywhere;pointer-events:none}
@media(max-width:1100px){.player-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.player-row>.player-actions{grid-column:1/-1}.topbar .breadcrumbs{display:none}}
@media(max-width:760px){
 .admin-form-grid,.player-fault-row{grid-template-columns:minmax(0,1fr)}
 .topbar{padding:12px;gap:8px;flex-wrap:nowrap;min-height:72px}.top-actions{flex-wrap:nowrap;gap:8px;flex:1}.topbar .user-chip{display:none}.topbar .balance{font-size:clamp(13px,4vw,19px)}.topbar .balance small{font-size:9px}.top-actions .btn{min-width:40px;padding:8px}
 .sidebar .brand-image{max-width:200px}.auth-art>.brand-image{max-width:220px}.auth-art h1{font-size:32px}
 .player-row{grid-template-columns:minmax(0,1fr);padding:18px;gap:12px}.player-row>.player-actions{grid-column:auto}.player-actions .btn{flex:1 1 130px}.player-search>.btn{width:100%}
 .player-asset-row{align-items:stretch;flex-direction:column}.player-asset-row .player-actions{width:100%}.player-asset-section .section-head .btn{min-width:100px}
 dialog.player-dialog,dialog.admin-settings-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);padding:20px 16px;max-height:calc(100dvh - 16px)}
 dialog h2{font-size:21px}.player-editor-section{padding:12px}.impersonation-banner>.btn{width:100%}
 .admin-popup-footer .btn{min-width:0}.admin-toggle{padding-right:72px}.auth-form .tabs{flex-wrap:wrap}
}
