﻿/* Cloud single-admin, smartphone UI. Never hide administrative controls. */
.cloud-banner{display:flex;align-items:center;gap:14px;padding:8px 16px;background:#181e24;border-bottom:2px solid #d44d35;color:#eee;font-size:12px}
.cloud-banner strong{color:#fa694f;letter-spacing:.03em}.cloud-banner span{color:#b3beca}
.cloud-password-button{position:fixed;right:12px;bottom:12px;z-index:80;background:#252d35;color:#fff;border:1px solid #ba5839;border-radius:8px;padding:10px 13px;box-shadow:0 4px 12px #0009}
.cloud-password-dialog{background:#202630;color:#fff;border:1px solid #a24b38;max-width:94vw;width:420px;border-radius:12px;padding:22px}
.cloud-password-dialog::backdrop{background:#000a}.cloud-password-dialog form{display:grid;gap:14px}
.cloud-password-dialog label{display:grid;gap:5px}.cloud-password-dialog input{font-size:16px;padding:11px;background:#111923;color:#fff;border:1px solid #53606f}
.cloud-password-dialog form>div{display:flex;gap:12px;justify-content:flex-end}
@media(max-width:800px){
  html,body{max-width:100%;overflow-x:hidden}
  .cloud-banner{gap:5px;flex-wrap:wrap;padding:7px 10px}
  .topbar{min-width:0!important}.brand-wrap{flex-wrap:wrap;gap:4px}.brand-links{overflow:hidden;text-overflow:ellipsis}
  .topnav{display:flex;overflow-x:auto;overscroll-behavior-x:contain;white-space:nowrap;-webkit-overflow-scrolling:touch;gap:2px;padding:6px 5px}
  .topnav .tab{flex:0 0 auto;min-width:75px;min-height:40px;padding:8px 10px}
  main,.panel,.card,.section-title{max-width:100%;min-width:0;box-sizing:border-box}
  .statusbar{display:flex;flex-wrap:wrap;gap:8px;padding:8px}.statusbar .stat{font-size:12px}
  .toolbar{display:flex;flex-wrap:wrap;gap:6px}.toolbar input{min-width:0;max-width:100%}
  .table-shell,.online-shell,.offline-shell{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  button,input,select{min-height:36px}input[type=checkbox]{min-height:initial}
  .players-splitter{touch-action:pan-x}
  .login-card{max-width:calc(100vw - 36px);box-sizing:border-box}
  #mapViewport{max-width:100%}.map-workspace{display:block}.map-sidebar{max-width:100%}
  .cloud-password-button{bottom:8px;right:8px;padding:7px 10px;font-size:11px;opacity:.95}
}

/* Combat history modal */
.combat-filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.combat-filters .active{background:#b73a29;color:white}
.combat-dialog{max-height:90vh;overflow:auto}
@media(max-width:740px){#combatHistoryModal .stats-dialog{width:96vw;max-width:96vw;padding:14px}#combatHistoryModal .stat-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#combatHistoryModal .detail-table-wrap{overflow-x:auto}#combatHistoryModal .stats-detail-table{min-width:950px}}

/* v1.27.4: Original message (left) and translated message (right) side by side. */
#tab-chat .chat-column-head,#tab-chat .chat-entry{grid-template-columns:74px 67px minmax(88px,155px) minmax(160px,1fr) minmax(160px,1fr) 30px;gap:7px}
#tab-chat .chat-translated-cell{min-width:0;max-width:100%;font-size:12px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;color:#9fe0b6;max-height:5.5em;overflow-y:auto;padding:3px 5px;border-left:1px solid #385d55}
#tab-chat .chat-translated-cell.chat-translate-error{color:#ffbaa9}
#tab-chat .chat-auto-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;color:#b6f0cd}
#tab-chat .chat-auto-label input,#tab-chat .chat-team-translate-label input{width:17px;height:17px;accent-color:#34a977}
#tab-chat .chat-team-translate-label{display:inline-flex;align-items:center;gap:5px}
body.light #tab-chat .chat-translated-cell{color:#206e41;border-left-color:#b7d5bf}
@media(min-width:761px) and (max-width:1050px){
 #tab-chat .chat-column-head,#tab-chat .chat-entry{grid-template-columns:68px 56px 100px minmax(120px,1fr) minmax(120px,1fr) 26px;gap:5px}
}
/* Smartphone-only management shell: safe area, large touch targets, fixed navigation. */
.m-topbar,.m-status,.m-page-title,.m-player-search,.m-teams,.m-player-cards,.m-list-title,.m-load-more,.m-bottom-nav,.m-more-overlay{display:none}
@media(max-width:760px){
 html,body{width:100%;max-width:100%;overflow-x:hidden}
 body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
 .topbar,.statusbar,.cloud-banner{display:none!important}
 .m-topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#131e28;border-bottom:1px solid #536473;padding:12px 14px 8px;color:#f7fcff}
 .m-brand{display:grid;gap:0}.m-brand b{font-size:17px;letter-spacing:.04em}.m-brand small{font-size:10px;letter-spacing:.21em;color:#e67e62}
 .m-server-name{max-width:45%;text-align:right;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;color:#9ab3c3}
 .m-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:9px 11px;background:#17232d}
 .m-status-card{min-width:0;display:grid;gap:2px;background:#233240;border:1px solid #3b4e5b;border-radius:9px;padding:9px 10px}
 .m-status-card span{font-size:10px;color:#acbcc9}.m-status-card b{font-size:17px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
 .m-page-title{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:#17232d;border-bottom:1px solid #384b5b}
 .m-page-title strong{font-size:17px}.m-refresh{background:#28495d;color:#e6f8ff;border:1px solid #507a93;border-radius:6px;padding:8px 14px}
 main{padding:8px!important;margin:0!important;width:100%!important;min-width:0!important;height:auto!important;max-height:none!important}
 .panel.active{height:auto!important;min-height:55vh;overflow:visible!important}
 #tab-players .section-title,#tab-players .table-shell,#playersPaneSplitter,#tab-players .players-splitter{display:none!important}
 .m-player-search,.m-teams,.m-player-cards,.m-list-title{display:block}
 .m-player-search{padding:6px 0 9px}.m-player-search input{width:100%;padding:11px 12px;border:1px solid #536b7d;border-radius:9px;background:#142431;color:white;font-size:16px}
 .m-teams{background:#1b2b36;border:1px solid #37536a;padding:10px;border-radius:10px;margin-bottom:12px}
 .m-teams h2,.m-list-title{font-size:14px;margin:0 0 9px;color:#cbe4f2}.m-list-title{margin:14px 0 9px;padding-left:3px}
 .m-team-chips{display:flex;flex-wrap:wrap;gap:7px}.m-team-chip{border:1px solid #47778f;background:#223d50;color:#d5f1ff;border-radius:15px;padding:7px 11px;font-size:12px;min-height:37px}
 .m-player-card{border:1px solid #3b5365;border-left:3px solid #2378aa;border-radius:11px;background:#1b2b37;padding:12px;margin-bottom:9px;box-shadow:0 3px 10px #0002}
 .m-player-head{display:flex;align-items:flex-start;justify-content:space-between;gap:7px}.m-player-title{min-width:0;display:grid;gap:4px}.m-player-name{overflow-wrap:anywhere;font-size:14px;color:#e7f8ff}.m-player-id{font:11px/1.3 Consolas,monospace;color:#8eaabd}
 .m-player-online{font-size:10px;background:#353e49;color:#c1cad3;padding:4px 7px;border-radius:4px}.m-player-online.is-online{background:#18563d;color:#a5f3cd}
 .m-player-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:10px 0}.m-meta{font-size:11px;color:#bfd2df}.m-meta.is-danger{color:#ff9a9a}
 .m-player-actions{display:flex;flex-wrap:wrap;gap:6px}.m-player-actions button{min-height:42px;border-radius:7px;padding:7px 10px;background:#2b3b4a;color:#e6f4fc;border:1px solid #557184;font-size:12px}
 .m-player-actions .m-primary{background:#205980;border-color:#4387ae}.m-player-actions .m-combat{background:#6a3c24;border-color:#af7556}
 .m-load-more{display:block;margin:9px auto 17px;padding:11px 17px;color:#eef7ff;background:#27485f;border:1px solid #527c93;border-radius:8px}
 .m-load-more[hidden],.m-more-overlay[hidden]{display:none!important}
 .m-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:7000;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:5px 5px calc(5px + env(safe-area-inset-bottom));background:#12222e;border-top:1px solid #597080;box-shadow:0 -4px 16px #0008}
 .m-nav-btn{min-height:55px;display:grid;place-items:center;background:transparent;border:0;border-radius:7px;color:#bdd4e3;font-size:12px;white-space:pre-line;line-height:1.45;text-align:center;padding:3px;min-width:0}
 .m-nav-btn.active{color:#fff;background:#275778;font-weight:700}
 .m-more-overlay{position:fixed;inset:0;z-index:7100;background:#000b;display:flex;align-items:flex-end;justify-content:center}
 .m-more-sheet{width:100%;max-height:80vh;overflow:auto;background:#1b2c3c;border-radius:17px 17px 0 0;padding:15px 14px calc(18px + env(safe-area-inset-bottom));display:grid;gap:9px}
 .m-more-head{display:flex;justify-content:space-between;align-items:center}.m-more-head button{padding:8px 11px}
 .m-more-item{width:100%;text-align:left;border:1px solid #46677c;border-radius:9px;background:#263f50;color:#e7f5ff;padding:13px;min-height:48px}
 #tab-chat.panel.active{height:calc(100dvh - 220px)!important;min-height:400px;overflow:hidden!important}
 #tab-chat .chat-header-title{flex-wrap:wrap}#tab-chat .chat-toolbar{flex-wrap:wrap;gap:7px}
 #tab-chat .chat-channel-buttons{max-width:100%;overflow-x:auto}
 #tab-chat .chat-controls{flex-wrap:wrap;gap:8px}
 #tab-chat .chat-column-head{display:none}
 #tab-chat .chat-entry{display:grid;grid-template-columns:70px 1fr 28px;align-items:start;gap:4px 7px;padding:9px}
 #tab-chat .chat-entry-time{grid-column:1;grid-row:1}#tab-chat .chat-badge{grid-column:1;grid-row:2}
 #tab-chat .chat-entry-name{grid-column:2;grid-row:1;font-size:13px;white-space:normal}
 #tab-chat .chat-entry-message{grid-column:2;grid-row:2;white-space:normal;min-height:auto;line-height:1.5;font-size:14px}
 #tab-chat .chat-translated-cell{grid-column:2;grid-row:3;font-size:14px;line-height:1.5;color:#a5efbd;border-left:3px solid #3f9863;background:#152d29;padding:7px 9px;border-radius:4px;max-height:unset}
 #tab-chat .chat-expand-btn{grid-column:3;grid-row:1 / span 3}
 #tab-chat .chat-entry-details{grid-column:1/-1;padding:8px}
 #tab-chat .chat-advanced-body{width:min(96vw,680px);right:-5px;max-height:55vh}
 #tab-chat .chat-search-box{min-width:0;flex:1 1 100%}#tab-chat .chat-search-box input{font-size:16px}
 .stats-modal,.name-history-overlay,.drawer{z-index:7050!important}
 .stats-dialog,.team-dialog,.drawer-card,.name-history-dialog{width:min(96vw,700px)!important;max-width:96vw!important;max-height:calc(100dvh - 95px)!important;overflow:auto}
 #combatHistoryModal .detail-table-wrap{overflow-x:auto}#combatHistoryModal .stats-detail-table{min-width:850px}
 .cloud-password-button{bottom:calc(75px + env(safe-area-inset-bottom));z-index:6000}
}

@media(max-width:760px){
 body:has(#login:not(.hidden)) .m-bottom-nav,
 body:has(#login:not(.hidden)) .m-page-title,
 body:has(#login:not(.hidden)) .m-status{display:none!important}
}
