/* GZWL — ダーク系ページ共通スタイル（admin / admin-player / mypage / entry / tournament）
   鉄則: 全対象ページで宣言が一致するものだけを置く。値がページごとに異なるもの
   （input の padding、header img の高さ、.msg の margin など）は各ページの <style> に残す。
   各ページの <style> はこのファイルより後に読み込むため、ページ側の指定が優先される。 */
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #16181C; color: #FFFFFF;
       font-family: 'Noto Sans JP', sans-serif; -webkit-font-smoothing: antialiased; }

/* ---- ヘッダー ---- */
header { display: flex; align-items: center; gap: 16px; padding: 14px clamp(16px,4vw,40px);
         border-bottom: 1px solid #2A2F36; }
header .spacer { margin-left: auto; }
header a { font-size: 13px; font-weight: 700; color: #AEB9C2; text-decoration: none; }
header a:hover { color: #5BC8F2; }
header a.nav-btn { display: inline-block; font-weight: 800; color: #16181C; background: #FFFFFF;
                   padding: 8px 16px; border-radius: 5px; transition: background .15s, color .15s; }
header a.nav-btn:hover { background: #5BC8F2; color: #16181C; }

/* ---- ボタン（管理系） ---- */
button.btn { background: #1FA8E0; border: none; border-radius: 4px; color: #FFFFFF;
  font-size: 13px; font-weight: 800; padding: 10px 18px; cursor: pointer; font-family: inherit; }
button.btn:hover { background: #1690c5; }
button.btn.ghost { background: #2C3138; border: 1px solid #3A414A; }
button.btn.ghost:hover { border-color: #1FA8E0; }
button.btn.danger { background: none; border: 1px solid #5A2A2A; color: #FF8585; padding: 7px 12px; font-size: 12px; }
button.btn.danger:hover { border-color: #FF6B6B; }
button.btn:disabled { opacity: .5; cursor: default; }
.btn.danger-solid { background: #D9534F; border: none; color: #FFFFFF; }
.btn.danger-solid:hover { background: #c9302c; }

/* ---- レイアウト部品 ---- */
.card { background: #1C1F24; border: 1px solid #2A2F36; border-radius: 8px; padding: 18px 20px; margin-bottom: 14px; }
.list-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #22262C; }
.list-item:last-child { border-bottom: none; }
.list-item .grow { flex: 1; min-width: 0; }
.row { display: flex; gap: 12px; flex-wrap: wrap; }
.row > * { flex: 1; min-width: 120px; }

/* ---- テキスト・状態 ---- */
.muted { color: #8A95A0; font-size: 12.5px; }
.empty { color: #5A636D; font-size: 13px; }
.msg { font-size: 13px; }
.msg.err { color: #FF6B6B; }
.msg.ok { color: #3DDC84; }
.medal-thumb { width: 40px; height: 40px; object-fit: contain; background: #22262C; border-radius: 6px; }

/* ---- 確認モーダル（ui.js の askConfirm が使用） ---- */
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.62); z-index: 100;
                 display: flex; align-items: center; justify-content: center; }
.modal { background: #1C1F24; border: 1px solid #3A414A; border-radius: 10px;
         padding: 24px; width: calc(100% - 40px); max-width: 420px; }
.modal-title { font-size: 15px; font-weight: 900; margin-bottom: 10px; }
.modal-body { font-size: 13px; color: #C6D0D9; line-height: 1.7; margin-bottom: 22px; }
.modal-actions { display: flex; gap: 10px; justify-content: flex-end; }
.modal-actions .btn { padding: 10px 18px; font-size: 13px; }
