/* ================================================================
   AI Boss Roguelike v9
   Design: Tactical Dark RPG — pixel-precise, information-dense
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=DotGothic16&family=Zen+Antique+Soft&display=swap');

:root {
    /* カラーパレット */
    --bg:       #07080f;
    --bg2:      #0c0d17;
    --bg3:      #111320;
    --bg4:      #161829;
    --border:   #1c1f33;
    --border2:  #252840;
    --accent:   #6d28d9;
    --accent-h: #7c3aed;
    --cyan:     #0891b2;
    --cyan-h:   #06b6d4;
    --gold:     #d97706;
    --gold-h:   #f59e0b;
    --red:      #dc2626;
    --red-h:    #ef4444;
    --green:    #059669;
    --green-h:  #10b981;
    --text:     #cbd5e1;
    --text2:    #64748b;
    --text3:    #334155;
    --hp:       #22c55e;
    --hp-lo:    #ef4444;
    --mp:       #60a5fa;
    --food:     #fbbf24;
    --xp:       #a78bfa;
    --font:     'DotGothic16', 'MS Gothic', monospace;
    --font-t:   'Zen Antique Soft', serif;
    --r:        2px;
    --gp:       0 0 8px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{height:100%}
body{
    height:100dvh;
    background:var(--bg);
    color:var(--text);
    font-family:var(--font);
    overflow:hidden;
    touch-action:manipulation;
    -webkit-text-size-adjust:100%;
    background-image:
        radial-gradient(ellipse 100% 50% at 50% -10%, rgba(109,40,217,.06) 0%,transparent 60%);
}
button{font-family:var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;transition:all .1s}
button:active:not(:disabled){transform:translateY(1px)}
input,select{font-family:var(--font);background:var(--bg);color:var(--text);border:1px solid var(--border2);border-radius:var(--r);outline:none}
input:focus,select:focus{border-color:var(--accent-h);box-shadow:0 0 0 2px rgba(124,58,237,.2)}
::-webkit-scrollbar{width:3px;height:3px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* ================================================================
   タイトル・拠点
   ================================================================ */
.full-screen{
    position:fixed;inset:0;
    display:flex;flex-direction:column;
    justify-content:center;align-items:center;
    background:var(--bg);z-index:100;
    overflow-y:auto;
    padding:20px 16px;
    padding-bottom:max(20px,env(safe-area-inset-bottom));
}
.full-screen h1{
    font-family:var(--font-t);
    font-size:clamp(26px,7vw,54px);
    font-weight:400;color:#fff;
    text-align:center;margin-bottom:4px;letter-spacing:.04em;
    text-shadow:0 0 30px rgba(109,40,217,.9),0 0 80px rgba(109,40,217,.4);
}
.full-screen .subtitle{
    font-size:clamp(9px,2vw,12px);color:var(--text2);
    letter-spacing:5px;margin-bottom:32px;text-align:center;text-transform:uppercase;
}
.menu-list{display:flex;flex-direction:column;align-items:center;width:100%;max-width:300px}
.menu-list button{
    display:flex;align-items:center;gap:10px;
    width:100%;max-width:280px;
    padding:clamp(9px,2.5vw,13px) 16px;
    margin-bottom:8px;
    font-size:clamp(12px,3.5vw,16px);
    background:var(--bg3);
    color:var(--text);
    border:1px solid var(--border2);
    border-radius:var(--r);
    position:relative;overflow:hidden;
}
.menu-list button::before{
    content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
    background:linear-gradient(180deg,var(--accent-h),var(--cyan));
    opacity:0;transition:opacity .1s;
}
.menu-list button:hover{background:var(--bg4);border-color:var(--border2)}
.menu-list button:hover::before{opacity:1}
#base-status-text{
    font-size:clamp(10px,2.5vw,13px);color:var(--text2);
    margin-bottom:14px;padding:7px 12px;
    border:1px solid var(--border);background:var(--bg2);
    border-radius:var(--r);text-align:center;width:100%;max-width:460px;
}

/* ================================================================
   ゲーム画面レイアウト
   ================================================================ */
#game-screen{position:fixed;inset:0;display:flex;flex-direction:column}
#game-wrapper{display:flex;flex-direction:row;width:100%;height:100dvh;overflow:hidden}

/* マップ列 */
#map-column{flex:1 1 0;min-width:0;display:flex;flex-direction:column;overflow:hidden}
#map-wrapper{
    flex:1 1 0;min-height:0;position:relative;
    overflow:hidden;background:var(--bg);
    border-right:1px solid var(--border);
}
#map-container{
    display:grid;gap:0;position:absolute;
    transition:transform .06s linear;will-change:transform;
}

/* 技モードバー */
#skill-mode-indicator{
    display:none;
    background:linear-gradient(90deg,rgba(109,40,217,.25),rgba(8,145,178,.25));
    border-top:1px solid var(--accent);
    color:#c4b5fd;font-size:10px;padding:4px 8px;
    text-align:center;flex-shrink:0;letter-spacing:1px;
    animation:skpulse 1s infinite alternate;
}
@keyframes skpulse{
    from{background:linear-gradient(90deg,rgba(109,40,217,.15),rgba(8,145,178,.15))}
    to  {background:linear-gradient(90deg,rgba(109,40,217,.35),rgba(8,145,178,.35))}
}

/* ログウィンドウ */
#log-window{
    flex-shrink:0;height:68px;
    background:rgba(0,0,0,.7);
    border-top:1px solid var(--border);
    border-right:1px solid var(--border);
    padding:4px 8px;overflow-y:auto;
    line-height:1.6;font-size:clamp(9px,1.3vw,11px);color:var(--text2);
}
#log-window p{margin:0}

/* ================================================================
   サイドパネル（右カラム）
   ================================================================ */
#side-panel{
    width:200px;flex-shrink:0;
    display:flex;flex-direction:column;
    gap:3px;padding:4px;
    overflow-y:auto;
    background:var(--bg2);
}

/* ---- ステータス ---- */
#status-window{
    background:var(--bg3);
    border:1px solid var(--border);
    border-radius:var(--r);
    padding:6px 7px;flex-shrink:0;
}
.sw-header{
    display:flex;justify-content:space-between;align-items:center;
    margin-bottom:5px;padding-bottom:4px;
    border-bottom:1px solid var(--border);
}
#dungeon-floor-display{
    color:var(--gold-h);font-size:11px;font-weight:bold;
    text-shadow:var(--gp) rgba(245,158,11,.5);
}
#status-window-title{font-size:8px;color:var(--text3);letter-spacing:2px;text-transform:uppercase}

.stat-row{margin-bottom:4px}
.stat-label-row{display:flex;justify-content:space-between;font-size:9px;margin-bottom:1px}
.stat-label{color:var(--text3);letter-spacing:1px;text-transform:uppercase}
.stat-val-hp {color:var(--hp);font-weight:bold}
.stat-val-mp {color:var(--mp);font-weight:bold}
.stat-val-food{color:var(--food);font-weight:bold}
.bar-bg{
    width:100%;height:5px;
    background:rgba(255,255,255,.04);
    border-radius:99px;overflow:hidden;
}
.bar-hp  {height:100%;background:linear-gradient(90deg,#15803d,#22c55e);transition:width .2s;border-radius:99px}
.bar-mp  {height:100%;background:linear-gradient(90deg,#1d4ed8,#60a5fa);transition:width .2s;border-radius:99px}
.bar-food{height:100%;background:linear-gradient(90deg,#92400e,#fbbf24);transition:width .2s;border-radius:99px}
.bar-xp  {height:100%;background:linear-gradient(90deg,#5b21b6,#a78bfa);transition:width .3s;border-radius:99px}

.stat-misc{display:flex;flex-wrap:wrap;gap:2px;margin-top:5px}
.stat-badge{
    background:rgba(255,255,255,.03);
    border:1px solid var(--border);
    border-radius:var(--r);
    padding:1px 4px;color:var(--text2);font-size:9px;
}
.stat-badge.gold  {color:var(--gold-h);border-color:rgba(217,119,6,.3)}
.stat-badge.prompt{color:#e9d5ff;border-color:rgba(167,139,250,.3)}
.stat-badge.lv    {color:#fff;border-color:var(--border2);font-weight:bold}

#equip-display{margin-top:4px;font-size:9px;border-top:1px solid var(--border);padding-top:4px}
.equip-row{color:var(--text3);margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.equip-row span{color:var(--text2)}

#status-badge{margin-top:3px;font-size:9px;text-align:center;padding:2px 3px;border-radius:var(--r);display:none}
#status-badge.poison{display:block;color:#e879f9;background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.3)}
#status-badge.sleep {display:block;color:#67e8f9;background:rgba(6,182,212,.1);border:1px solid rgba(6,182,212,.3)}

/* ---- アクションパネル ---- */
#action-panel{
    background:var(--bg3);border:1px solid var(--border);
    border-radius:var(--r);padding:6px;
    display:flex;flex-direction:column;gap:3px;flex-shrink:0;
}
#action-panel label{font-size:8px;color:var(--text3);letter-spacing:1px;text-transform:uppercase}
#action-panel select{
    width:100%;padding:3px 4px;font-size:10px;
    border-radius:var(--r);
    background:var(--bg);color:var(--text);
    border:1px solid var(--border2);
}
.action-btn-row{display:flex;gap:3px}

/* ---- コントロール ---- */
#control-section{
    background:var(--bg3);border:1px solid var(--border);
    border-radius:var(--r);padding:5px;flex-shrink:0;
}
#menu-btn-row{display:flex;gap:3px;margin-bottom:4px}
#control-pad{text-align:center}
#control-pad button,#btn-wait-turn{
    width:clamp(34px,5vw,40px);height:clamp(34px,5vw,40px);margin:1px;
    background:var(--bg4);color:var(--text2);
    border:1px solid var(--border2);border-radius:var(--r);
    font-size:13px;
}
#control-pad button:hover,#control-pad button:active{
    background:rgba(8,145,178,.15);
    border-color:var(--cyan-h);color:var(--cyan-h);
    box-shadow:var(--gp) rgba(6,182,212,.4);
}
#btn-wait-turn{color:var(--text3);font-size:11px}
#btn-wait-turn:hover{background:var(--bg4);color:var(--text2);box-shadow:none}
#turn-counter{font-size:8px;color:var(--text3);text-align:center;margin-top:2px}
#turn-counter.warning{color:var(--red-h);animation:pulse-text .7s infinite alternate}

/* 共通ボタン */
.menu-btn{
    width:100%;padding:5px 4px;
    background:rgba(109,40,217,.1);color:var(--text);
    border:1px solid var(--border2);border-radius:var(--r);
    font-size:10px;
}
.menu-btn:hover:not(:disabled){background:rgba(109,40,217,.22);border-color:var(--accent-h)}
.menu-btn:disabled{background:rgba(255,255,255,.02);color:var(--text3);cursor:not-allowed;border-color:var(--border)}
.menu-btn.danger {background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.3);color:#fca5a5}
.menu-btn.danger:hover:not(:disabled){background:rgba(220,38,38,.2);border-color:var(--red-h)}
.menu-btn.success{background:rgba(5,150,105,.1);border-color:rgba(5,150,105,.3);color:#6ee7b7}
.menu-btn.success:hover:not(:disabled){background:rgba(5,150,105,.2);border-color:var(--green-h)}
.menu-btn.small{padding:3px 4px;font-size:9px;width:auto;flex:1}

/* ミニマップ */
#minimap-container{
    position:absolute;bottom:4px;right:4px;
    background:rgba(0,0,0,.88);
    border:1px solid var(--border2);border-radius:var(--r);
    overflow:hidden;z-index:10;
    width:76px;height:51px;
}
#minimap-canvas{display:block}

/* ================================================================
   タイル & マップ描画
   ================================================================ */
.tile{
    display:flex;justify-content:center;align-items:center;
    font-size:20px;font-weight:bold;line-height:1;
    width:var(--tile-size,24px);
    height:var(--tile-size,24px);
}
.player,.enemy,.boss,.wall,.floor,.stairs,.item,.trap,.grass,.terminal,.hunter{
    color:transparent!important;text-shadow:none!important;
    background-color:transparent!important;
    background-position:center;background-repeat:no-repeat;
}
.wall,.floor{background-size:95%}
.player,.enemy,.boss,.stairs,.item{background-size:80%}
.trap,.grass,.terminal{background-size:80%}
.hunter{background-size:90%;filter:drop-shadow(0 0 4px #ef4444);animation:ha .7s infinite alternate}
@keyframes ha{from{filter:drop-shadow(0 0 3px red)}to{filter:drop-shadow(0 0 12px darkred)}}

/* プレイヤー・ボスのグロー */
.player{filter:drop-shadow(0 0 3px rgba(109,40,217,.9))}
.boss  {filter:drop-shadow(0 0 5px rgba(220,38,38,.9));animation:bp .9s infinite alternate}
@keyframes bp{from{filter:drop-shadow(0 0 3px rgba(220,38,38,.7))}to{filter:drop-shadow(0 0 9px rgba(220,38,38,1))}}

/* 地形 */
.oil  {background-color:rgba(20,20,20,.95)!important;border:1px solid #333}
.water{background-color:rgba(30,58,138,.55)!important;border:1px solid #3b82f6}
.unexplored  {background-image:none!important;background-color:#000!important}
.explored-fog{filter:brightness(.13) saturate(.4)}

/* ダンジョンテーマ背景色 */
body.theme-forest   {--bg-map:#020602}
body.theme-cave     {--bg-map:#020204}
body.theme-castle   {--bg-map:#040207}
body.theme-ruins    {--bg-map:#020408}
body.theme-volcano  {--bg-map:#080200}
body.theme-abyss    {--bg-map:#020007}
body.theme-nightmare{--bg-map:#000000}
body.theme-chaos    {--bg-map:#050008}
#map-wrapper{background:var(--bg-map,#000)}

/* ダメージポップアップ */
.damage-popup{
    position:absolute;pointer-events:none;
    font-size:12px;font-weight:bold;z-index:50;
    animation:pa .85s ease-out forwards;
    text-shadow:0 1px 3px rgba(0,0,0,.95);
    border-radius:2px;padding:1px 3px;
    white-space:nowrap;
}
.damage-popup.enemy-hit {color:#fde68a;background:rgba(0,0,0,.55)}
.damage-popup.player-hit{color:#fca5a5;background:rgba(0,0,0,.55)}
.damage-popup.heal      {color:#6ee7b7;background:rgba(0,0,0,.55)}
@keyframes pa{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-28px);opacity:0}}

/* ================================================================
   アニメーション共通
   ================================================================ */
@keyframes pulse-text{from{opacity:.6}to{opacity:1}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.screen-shake{animation:shake .28s ease}

/* ================================================================
   モーダル
   ================================================================ */
.modal-overlay{
    position:fixed;inset:0;
    background:rgba(0,0,0,.9);
    backdrop-filter:blur(3px);
    display:flex;justify-content:center;align-items:flex-start;
    z-index:200;
    padding:max(10px,env(safe-area-inset-top)) 8px 8px;
    overflow-y:auto;
}
.modal-content{
    background:var(--bg2);
    border:1px solid var(--border2);
    border-radius:4px;
    padding:16px;
    width:min(580px,96vw);
    color:var(--text);
    box-shadow:0 20px 60px rgba(0,0,0,.95),0 0 0 1px rgba(109,40,217,.08);
    margin:auto;animation:slideIn .18s ease;
}
.modal-content h2{
    font-family:var(--font-t);font-weight:400;
    font-size:clamp(14px,3vw,19px);
    margin-bottom:12px;padding-bottom:8px;
    border-bottom:1px solid var(--border);color:#fff;
}
.modal-content h3{
    font-size:9px;color:var(--text3);
    letter-spacing:2px;text-transform:uppercase;
    margin-bottom:6px;padding-bottom:3px;
    border-bottom:1px solid var(--border);
}
.modal-content select{
    width:100%;padding:5px;font-size:11px;
    background:var(--bg);border-radius:var(--r);margin-bottom:7px;
}

/* ボスローディング */
#boss-loading-screen{
    position:fixed;inset:0;background:rgba(0,0,0,.97);
    display:none;flex-direction:column;
    justify-content:center;align-items:center;
    z-index:300;gap:12px;
}
#boss-loading-screen h2{
    font-family:var(--font-t);font-size:clamp(15px,4vw,22px);
    color:var(--red-h);font-weight:400;
    text-shadow:0 0 20px rgba(239,68,68,.8);
    animation:pulse-text .7s infinite alternate;
}
.loading-dots::after{content:'';animation:dots 1.5s steps(3,end) infinite}
@keyframes dots{0%{content:''}33%{content:'.'}66%{content:'..'}100%{content:'...'}}

/* ================================================================
   ダンジョン選択
   ================================================================ */
#dungeon-list{width:100%;max-width:320px}
.dungeon-btn{
    display:flex;flex-direction:column;width:100%;
    padding:9px 12px;margin-bottom:7px;
    background:var(--bg3);border:1px solid var(--border);
    border-radius:var(--r);cursor:pointer;
    font-family:var(--font);text-align:left;transition:all .1s;
    position:relative;overflow:hidden;
}
.dungeon-btn::after{
    content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
    background:linear-gradient(180deg,var(--accent-h),var(--cyan));
    opacity:0;transition:opacity .1s;
}
.dungeon-btn:hover{background:var(--bg4);border-color:var(--border2)}
.dungeon-btn:hover::after{opacity:1}
.dungeon-btn .dname{font-size:clamp(12px,3vw,15px);color:#fff;margin-bottom:2px}
.dungeon-btn .dinfo{font-size:clamp(9px,2vw,10px);color:var(--text3)}
.dungeon-btn .ddiff{font-size:9px;margin-top:2px;letter-spacing:1px}
.dungeon-btn .dhint{font-size:9px;color:rgba(217,119,6,.4);margin-top:1px}
.dungeon-btn:hover .dhint{color:var(--gold-h)}
.dungeon-cleared-badge{font-size:8px;color:var(--green-h);background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);border-radius:2px;padding:1px 3px;margin-left:5px}
.locked-dungeon{opacity:.25;cursor:not-allowed!important}
.locked-dungeon:hover{background:var(--bg3)!important;border-color:var(--border)!important}
.locked-dungeon:hover::after{opacity:0!important}
.diff-easy  {color:#4ade80}
.diff-normal{color:var(--gold-h)}
.diff-hard  {color:#f87171}
.diff-extra {color:#e879f9;text-shadow:0 0 8px rgba(232,121,249,.5)}

/* ================================================================
   ボス図鑑・グローバルボス
   ================================================================ */
.bge-card{display:flex;gap:8px;padding:9px 0;border-bottom:1px solid var(--border);animation:fadeIn .25s ease both}
.bge-card:last-child{border-bottom:none}
.bge-icon{font-size:28px;flex-shrink:0;width:34px;text-align:center;padding-top:2px}
.bge-body{flex:1;min-width:0}
.bge-name{font-size:13px;color:#fbbf24;font-weight:bold;margin-bottom:1px}
.bge-desc{font-size:10px;color:var(--text3);margin-bottom:2px}
.bge-stats{font-size:9px;color:var(--text3);margin-bottom:1px}
.bge-meta{font-size:9px;color:var(--border2);margin-bottom:1px}
.bge-prompts{font-size:9px;color:#c4b5fd}
.bge-challenge-btn{
    margin-top:4px;padding:4px 9px;
    background:rgba(109,40,217,.12);
    border:1px solid rgba(109,40,217,.35);
    border-radius:var(--r);
    color:#c4b5fd;font-size:10px;
    font-family:var(--font);cursor:pointer;
    transition:all .1s;
}
.bge-challenge-btn:hover{background:rgba(109,40,217,.28);border-color:var(--accent-h)}

/* ================================================================
   実績
   ================================================================ */
.ach-summary{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;padding:7px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r);font-size:10px;color:var(--text2)}
.ach-summary span{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:2px 5px}
.ach-entry{display:flex;gap:7px;padding:6px 3px;border-bottom:1px solid var(--border)}
.ach-entry:last-child{border-bottom:none}
.ach-entry.locked{opacity:.3}
.ach-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}
.ach-title{font-size:11px;color:var(--text2);margin-bottom:1px}
.ach-entry.unlocked .ach-title{color:#fde68a}
.ach-desc{font-size:9px;color:var(--text3)}
.ach-entry.unlocked .ach-desc{color:var(--text3)}

/* 実績バナー */
#achievement-banner{
    position:fixed;top:-80px;left:50%;transform:translateX(-50%);
    background:linear-gradient(135deg,rgba(109,40,217,.97),rgba(8,145,178,.97));
    border:1px solid rgba(255,255,255,.15);
    border-radius:4px;padding:7px 16px;z-index:1000;
    font-family:var(--font);font-size:clamp(10px,2.5vw,12px);
    color:#fff;text-align:center;min-width:180px;white-space:nowrap;
    transition:top .4s cubic-bezier(.34,1.56,.64,1);
    box-shadow:0 8px 24px rgba(109,40,217,.55);line-height:1.5;
}
#achievement-banner.show{top:12px}

/* ================================================================
   認証・小ボタン
   ================================================================ */
.small-btn{
    font-size:10px;font-family:var(--font);padding:3px 7px;
    background:rgba(255,255,255,.03);color:var(--text2);
    border:1px solid var(--border2);border-radius:var(--r);cursor:pointer;
}
.small-btn:hover{background:rgba(255,255,255,.07);color:var(--text)}
#login-modal input{width:100%;padding:7px 9px;font-size:12px;border-radius:var(--r)}

/* ランキング */
.rank-row{display:flex;align-items:center;gap:8px;padding:6px 3px;border-bottom:1px solid var(--border);font-size:11px}
.rank-row:last-child{border-bottom:none}
.rank-num{width:26px;text-align:center;font-size:13px;flex-shrink:0}

/* ================================================================
   スマホ縦向き ≤680px
   ================================================================ */
@media(max-width:680px),(orientation:portrait)and(max-width:960px){
    #game-wrapper{flex-direction:column}
    #map-column{flex:0 0 auto;height:55dvh;min-height:175px;overflow:hidden}
    #log-window{
        height:46px;border-right:none;font-size:9px;line-height:1.5;
        border-top:1px solid var(--border);padding:3px 7px;
    }
    #side-panel{
        flex:1 1 0;min-height:0;width:100%;
        flex-direction:column;overflow-y:auto;overflow-x:hidden;
        gap:3px;padding:4px;background:var(--bg2);
        border-top:1px solid var(--border2);
        padding-bottom:max(6px,env(safe-area-inset-bottom));
    }
    /* ステータス2列グリッド */
    #status-window{display:grid;grid-template-columns:1fr 1fr;column-gap:7px}
    .sw-header,#status-badge,#equip-display{grid-column:1/-1}
    /* アクション2列グリッド */
    #action-panel{
        display:grid;grid-template-columns:1fr 1fr;
        grid-template-rows:auto auto auto;column-gap:7px;
    }
    #lbl-skill {grid-column:1;grid-row:1}
    #lbl-item  {grid-column:2;grid-row:1}
    #skill-select{grid-column:1;grid-row:2}
    #item-select {grid-column:2;grid-row:2}
    #skill-btn-row{grid-column:1;grid-row:3}
    #item-btn-row {grid-column:2;grid-row:3}
    /* コントロール横並び */
    #control-section{display:flex;flex-direction:row;align-items:center;gap:7px}
    #control-pad{flex-shrink:0}
    #menu-btn-row{flex-direction:column;gap:2px;margin-bottom:0;flex:1}
    #menu-btn-row .menu-btn{width:100%}
    #turn-counter{display:none}
    #control-pad button,#btn-wait-turn{
        width:clamp(40px,11vw,50px);height:clamp(40px,11vw,50px);font-size:16px;
    }
    #minimap-container{width:56px;height:37px}
    #minimap-canvas{width:56px;height:37px}
    #map-wrapper{border-right:none;border-bottom:1px solid var(--border)}
}
@media(max-width:375px){
    #map-column{height:52dvh}
    #control-pad button,#btn-wait-turn{width:37px;height:37px;font-size:14px}
}
@media(min-width:681px)and(max-width:1100px)and(orientation:landscape){
    #side-panel{width:190px}
}

/* ログ色 */
.log-damage{color:#fca5a5}
.log-heal  {color:#6ee7b7}
.log-level {color:#fde68a;font-weight:bold}
.log-boss  {color:#fb923c;font-weight:bold}
.log-info  {color:#93c5fd}
.log-warn  {color:var(--gold-h)}
.log-system{color:#c4b5fd}
