/* Shared account warning and scoped admin layout cleanup. */
/* Account-only rules prevent unrelated login/contact themes from changing alignment. */
body #accountBan .notice-game-box{width:min(680px,100%)!important;gap:0!important;padding:28px!important;box-sizing:border-box!important;text-align:center!important}
body #accountBan .notice-game-heading{width:100%;min-width:0;text-align:center!important}
body #accountBan .notice-game-heading h2{margin:0 0 18px!important;text-align:center!important;line-height:1.4!important;overflow-wrap:anywhere!important}
body #accountBan .notice-game-content{width:100%;min-width:0;min-height:0;overflow:auto;box-sizing:border-box;padding:0 2px}
body #accountBan #accountBanMessage{margin:0!important;padding:0!important;width:100%!important;text-align:left!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important;line-height:1.8!important;font-size:18px!important}
body #accountBan .notice-game-support{display:grid!important;gap:12px!important;margin:24px 0 0!important;padding:18px 0 0!important;border-top:1px solid #ffffff26;min-width:0}
body #accountBan .notice-game-support>strong{margin:0!important;text-align:center!important;line-height:1.5!important}
body #accountBan .notice-game-support .contact-help-list{display:flex!important;flex-wrap:wrap!important;align-items:stretch!important;justify-content:center!important;gap:12px!important;width:100%!important;margin:0!important}
body #accountBan .notice-game-support .contact-channel{position:static!important;display:flex!important;flex:1 1 210px!important;min-width:0!important;max-width:300px!important;min-height:50px!important;padding:12px 16px!important;margin:0!important;gap:10px!important;align-items:center!important;justify-content:center!important;text-align:center!important;box-sizing:border-box!important;border:1px solid #ffffff38!important;border-radius:12px!important;background:#111627ad!important}
body #accountBan .notice-game-support .contact-channel>span{min-width:0!important;text-align:center!important}
body #accountBan .notice-game-support .contact-channel b{line-height:1.5!important;overflow-wrap:anywhere!important;white-space:normal!important}
body #accountBan .notice-game-actions{width:100%!important;display:grid!important;margin-top:22px!important;flex-shrink:0!important}
body #accountBan .notice-game-confirm{min-height:48px!important;padding:12px 18px!important;font-size:17px!important;line-height:1.45!important}
body .account-support-message{white-space:pre-wrap!important;overflow-wrap:anywhere!important;text-align:left!important;line-height:1.8!important}
body #accountBan .notice-term,body .account-support-message .notice-term,body .ban-terms-field .notice-term{font-weight:inherit!important;-webkit-text-fill-color:currentColor!important}
body.admin-body .ban-terms-field{min-width:0;grid-column:1/-1}
body.admin-body .ban-terms-field>[data-ban-term-add]{margin-top:12px}
body.admin-body .ban-term-status{font-size:14px!important;line-height:1.6!important;overflow-wrap:anywhere}
body.admin-body .ban-term-row-hint{grid-column:1/-1;margin:0!important;font-size:14px!important;line-height:1.6!important;color:#ffb3bb!important;overflow-wrap:anywhere}
body.admin-body .ban-term-row.has-error{border-color:#ff949c}
body.admin-body .ban-term-status.has-error{color:#ffb3bb!important}
body.admin-body .ban-terms-field .copy-color-preview{white-space:pre-wrap!important;text-align:left!important;line-height:1.8!important;min-height:80px}
@media(max-width:640px){body #accountBan .notice-game-box{padding:22px 18px!important}body #accountBan #accountBanMessage{font-size:16px!important}body #accountBan .notice-game-support .contact-channel{flex-basis:100%!important;max-width:100%!important}}
@media(max-height:540px){body #accountBan .notice-game-box{padding:14px 18px!important}body #accountBan .notice-game-heading h2{margin-bottom:10px!important}body #accountBan .notice-game-support{margin-top:16px!important;padding-top:12px!important;gap:8px!important}body #accountBan .notice-game-actions{margin-top:12px!important}}



.admin-body .admin-main,.admin-body .admin-content,.admin-body .admin-card,.admin-body .admin-field,.admin-body .map-config-card{min-width:0}
.admin-body .admin-toolbar{gap:12px;flex-wrap:wrap;align-items:flex-start}.admin-body .admin-toolbar>div{min-width:0}
.admin-body .row-actions,.admin-body .admin-actions,.admin-body .sample-button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-body .row-actions form{display:flex;gap:8px;flex-wrap:wrap}.admin-body button,.admin-body .btn{white-space:normal;line-height:1.4;min-height:36px;max-width:100%}
.admin-body .form-grid{gap:14px}.admin-body .form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-body .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-body .table-wrap{max-width:100%;overflow-x:auto}.admin-body .clean-table{min-width:580px}.admin-body .clean-table th,.admin-body .clean-table td{vertical-align:top}
.admin-body .map-admin-tabs,.admin-body .sample-button-row{display:flex;flex-wrap:wrap;gap:8px;height:auto;overflow:visible;align-items:stretch}
.admin-body .map-admin-tabs>*{position:static!important;float:none!important;margin:0!important;flex:0 1 auto;max-width:100%;height:auto;line-height:1.45;padding:10px 13px;white-space:normal}
.admin-body .admin-workflow-shortcuts{margin:16px 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-body .admin-account-policy{margin:16px 0}.admin-body .admin-account-policy h2{font-size:17px;margin-top:0}
.admin-body .quick-card{min-width:0}.admin-body .quick-card strong,.admin-body .quick-card span{overflow-wrap:anywhere}.admin-body .admin-subtitle{line-height:1.6}
.admin-body .mobile-admin-menu{gap:8px;flex-wrap:wrap;max-width:100%;height:auto}.admin-body .mobile-admin-menu a{white-space:normal}
@media(max-width:1000px){.admin-body .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-body .admin-profile-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.admin-body .admin-main{padding:12px}.admin-body .admin-content{padding:0}.admin-body .admin-card{padding:16px}.admin-body .form-grid.two,.admin-body .form-grid.three,.admin-body .admin-workflow-shortcuts,.admin-body .grid.two,.admin-body .asset-adjust-grid{grid-template-columns:minmax(0,1fr)}.admin-body .admin-field.wide{grid-column:1/-1}.admin-body .admin-actions>.btn,.admin-body .admin-actions>button{flex:1 1 140px}.admin-body .admin-top{gap:12px;flex-wrap:wrap;align-items:flex-start}.admin-body .map-admin-tabs>*{flex:1 1 135px}}

/* Focused GM navigation: low-frequency areas stay collapsed. */
.admin-body .admin-nav-section{border:0;background:transparent;margin:4px 0;padding:0;box-shadow:none}
.admin-body .admin-nav-section>summary{cursor:pointer;list-style:none;padding:12px 10px;display:flex;justify-content:space-between;align-items:center;border-radius:7px;font-size:12px;letter-spacing:.04em}
.admin-body .admin-nav-section>summary::after{content:'＋';opacity:.55}.admin-body .admin-nav-section[open]>summary::after{content:'−'}
.admin-body .admin-nav-items{display:grid;gap:3px;padding-bottom:8px}.admin-body .admin-nav-link{min-height:38px;padding:9px 11px;line-height:1.4;border-radius:7px;font-size:13px}
.admin-body .admin-nav-icon{width:20px;opacity:.7;font-size:15px}.admin-body .admin-top{border-bottom:1px solid #ffffff12;padding-bottom:17px;margin-bottom:22px}
.admin-body .admin-sidebar{overflow-y:auto;scrollbar-width:thin}.admin-body .admin-card{border-radius:12px;margin-bottom:16px;border-color:#ffffff16;background:#1d1930;box-shadow:none}
.admin-body .admin-card h2{font-size:17px;line-height:1.5}.admin-body .admin-card p{line-height:1.65}.admin-body .admin-card>form{margin-top:14px}
.admin-body .mobile-admin-menu>summary{cursor:pointer;padding:13px 16px;font-weight:700}.admin-body .mobile-admin-menu>nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 12px 12px}
.admin-body .admin-content>h1{margin-top:4px;margin-bottom:12px;font-size:25px}.admin-body .admin-content>p{max-width:900px;color:#c9c3da;line-height:1.7}
.map-earnings-summary{display:grid;gap:5px;margin-top:10px}.map-earnings-summary small{font-size:12px;color:#c5c8d8;line-height:1.5}

/* P2.8.2: every GM text control has a matching dark surface, including inputs
   whose type is omitted. Keep native toggles, swatches, sliders and file buttons
   out of this rule; this stylesheet is also loaded on player login pages. */
body.admin-body {
  --admin-control-bg:#101727;
  --admin-control-text:#f5f0ff;
  --admin-control-muted:#b2b9cb;
  --admin-control-border:#637088;
  --admin-control-focus:#e9bf70;
}
body.admin-body input:not([type="checkbox"],[type="radio"],[type="hidden"],[type="range"],[type="color"],[type="file"],[type="button"],[type="submit"],[type="reset"],[type="image"]),
body.admin-body select,
body.admin-body textarea {
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
  min-height:42px;
  border:1px solid var(--admin-control-border);
  border-radius:8px;
  padding:10px 12px;
  background-color:var(--admin-control-bg);
  background-image:none;
  color:var(--admin-control-text);
  -webkit-text-fill-color:currentColor;
  caret-color:var(--admin-control-focus);
  color-scheme:dark;
  font:inherit;
  line-height:1.5;
  vertical-align:middle;
  opacity:1;
}
body.admin-body textarea {
  display:block;
  width:100%;
  min-height:104px;
  resize:vertical;
}
body.admin-body select {
  padding-right:30px;
  text-overflow:ellipsis;
}
body.admin-body select option,
body.admin-body select optgroup {
  background-color:var(--admin-control-bg);
  color:var(--admin-control-text);
  -webkit-text-fill-color:currentColor;
}
body.admin-body input::placeholder,
body.admin-body textarea::placeholder {
  color:var(--admin-control-muted);
  -webkit-text-fill-color:var(--admin-control-muted);
  opacity:1;
}
body.admin-body input:not([type="hidden"]):focus-visible,
body.admin-body select:focus-visible,
body.admin-body textarea:focus-visible {
  outline:2px solid var(--admin-control-focus);
  outline-offset:2px;
}
body.admin-body input[readonly],
body.admin-body textarea[readonly] {
  border-style:dashed;
  cursor:default;
}
body.admin-body input:disabled,
body.admin-body select:disabled,
body.admin-body textarea:disabled,
body.admin-body select option:disabled {
  color:var(--admin-control-muted);
  -webkit-text-fill-color:var(--admin-control-muted);
  cursor:not-allowed;
  opacity:1;
}
body.admin-body input:-webkit-autofill,
body.admin-body input:-webkit-autofill:focus {
  -webkit-box-shadow:0 0 0 1000px var(--admin-control-bg) inset;
  -webkit-text-fill-color:var(--admin-control-text);
  caret-color:var(--admin-control-focus);
}
body.admin-body input[type="checkbox"],
body.admin-body input[type="radio"] {
  width:18px;
  height:18px;
  min-width:18px;
  min-height:18px;
  max-width:18px;
  padding:0;
  margin:0;
  flex:0 0 18px;
  vertical-align:middle;
  accent-color:var(--admin-control-focus);
  color-scheme:dark;
}
body.admin-body input[type="color"] {
  box-sizing:border-box;
  min-height:42px;
  max-width:100%;
  padding:4px;
  vertical-align:middle;
}
body.admin-body input[type="range"] {
  min-height:24px;
  max-width:100%;
  accent-color:var(--admin-control-focus);
}
body.admin-body input[type="file"] {
  box-sizing:border-box;
  max-width:100%;
  color:var(--admin-control-text);
  font:inherit;
}
body.admin-body input[type="file"]::file-selector-button {
  margin-right:10px;
  padding:9px 12px;
  border:1px solid var(--admin-control-border);
  border-radius:8px;
  background:#263249;
  color:var(--admin-control-text);
  font:inherit;
  cursor:pointer;
}
body.admin-body label {
  min-width:0;
  line-height:1.55;
  overflow-wrap:anywhere;
}
body.admin-body label:has(>input[type="checkbox"]),
body.admin-body label:has(>input[type="radio"]) {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:9px;
}
/* Newer screens use a label wrapper instead of .admin-field. Give those
   controls an explicit row/column rhythm, without changing legacy tables. */
body.admin-body form[action^="/admin/map-templates"]>label,
body.admin-body form[action^="/admin/bank-risk"]>label {
  display:grid;
  gap:7px;
  margin:12px 0;
}
body.admin-body form[action^="/admin/map-templates"]>label>input,
body.admin-body form[action^="/admin/map-templates"]>label>select,
body.admin-body form[action^="/admin/bank-risk"]>label>select {
  width:100%;
}
body.admin-body form[action="/admin/map-templates/create"],
body.admin-body form[action="/admin/map-templates/assign"],
body.admin-body form[method="get"][action="/admin/map-templates"] {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
}
body.admin-body form[action="/admin/map-templates/create"]>label,
body.admin-body form[action="/admin/map-templates/assign"]>label,
body.admin-body form[method="get"][action="/admin/map-templates"]>label {
  flex:1 1 220px;
  margin:0;
}
body.admin-body form[action="/admin/map-templates/assign"]>p {
  flex-basis:100%;
  margin:0;
}
body.admin-body form[action^="/admin/bank-risk"]>.art-admin-grid {
  margin:14px 0;
  gap:16px;
}
@media(max-width:640px) {
  body.admin-body form[action="/admin/map-templates/create"]>label,
  body.admin-body form[action="/admin/map-templates/assign"]>label,
  body.admin-body form[method="get"][action="/admin/map-templates"]>label {
    flex-basis:100%;
  }
  body.admin-body .map-template-grid {
    grid-template-columns:minmax(0,1fr);
  }
}
