/* AOX TOWN UI リデザイン（最後に読み込む）: 明るくやさしい配色 / 大きい文字 / 親指で押せるボタン / キャラが主役
   文字: 本文15-16px以上・重要16-18px・名前16-20px・見出し20-24px・ボタン16px以上・補助14px以上（12px以下は使わない） */
:root{--ink:#1f2547;--paper:#ffffff;--sun:#ffc83d;--coral:#ff6b6b;--aox:#2f6df6;--aox-soft:#e6eeff;--line:#dde4f3}
html,body{background:#eaf1ff;font-size:16px;-webkit-text-size-adjust:100%}
button,input,select,textarea{font-size:16px}
button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus)!important}
#app{height:100dvh;min-height:-webkit-fill-available}
/* ---- HUD: 時計・コインだけ。明るい白ベース ---- */
#hud{background:#fff;color:var(--ink);box-shadow:0 2px 12px rgba(47,109,246,.14);gap:12px;padding:calc(8px + var(--safe-t)) 14px 8px}
#clk{font-size:30px;color:var(--aox);letter-spacing:.5px}
#phase{font-size:14px;opacity:1;color:var(--c-sub)}
#phase b{font-size:16px;color:var(--ink)}
#coin{background:var(--aox-soft);color:var(--ink);font-size:18px;padding:6px 12px}
#hud .ib{background:var(--aox-soft);color:var(--aox);width:44px;height:44px;font-size:20px}
/* ---- 下部ナビ: 5つ・アイコン+文字・44px以上・safe-area ---- */
#dock{background:#fff;padding:6px 6px calc(6px + var(--safe-b));box-shadow:0 -2px 12px rgba(47,109,246,.14);gap:2px;border-top:1px solid var(--line)}
#dock button{color:var(--c-sub);font-size:13px;font-weight:800;min-width:0;flex:1;min-height:56px;padding:4px 2px;gap:1px;justify-content:center}
#dock button i{font-size:24px}
#dock button:active,#dock button.on{background:var(--aox-soft);color:var(--aox)}
#dock button .dot{font-size:12px;min-width:18px;height:18px;line-height:18px;right:14px}
#backBtn{background:#fff;color:var(--ink);font-size:16px;padding:11px 16px;min-height:44px;box-shadow:0 2px 8px rgba(31,37,71,.2)}
#sceneTitle{background:rgba(255,255,255,.94);color:var(--ink);font-size:16px;box-shadow:0 2px 8px rgba(31,37,71,.2)}
#banner{font-size:16px;padding:12px 16px}
#ticker div{font-size:15px;padding:7px 12px}
/* ---- 街: 建物名・家の名前 ---- */
.bld .nm{font-size:13px;font-weight:900;letter-spacing:0}
.bld .hrs{font-size:12px;font-weight:800;opacity:.9;background:rgba(255,255,255,.85);border-radius:8px;padding:0 6px}
.house .nm{font-size:14px;font-weight:900;background:rgba(255,255,255,.9);border-radius:9px;padding:0 7px}
.chipf{width:26px;height:26px;font-size:14px;line-height:20px}
/* ---- 名前タグ: 短く・大きく・白縁・半透明の白地。キャラの足元に置き、顔を隠さない ---- */
.actor .tag,.spot-actor .tag,.ractor .tag{left:0;width:auto;min-width:0;transform:translate(-50%,var(--tg,0px));top:7px;font-size:15px;line-height:1.15;font-weight:900;color:var(--ink);background:rgba(255,255,255,.9);border:2px solid #fff;border-radius:11px;padding:1px 8px;box-shadow:0 2px 6px rgba(31,37,71,.35);white-space:nowrap;z-index:7;transition:transform .25s}
.actor.ME .tag{background:#ff9a3d;color:#fff;border-color:#fff}
.actor.pop .tag,.actor:active .tag{font-size:18px;z-index:9}
.spot-actor .tag{top:8px;font-size:17px}.ractor .tag{top:5px;font-size:15px}
.spot-actor .say{font-size:15px;width:120px;left:-60px}
.ractor .sub{font-size:14px;width:96px;left:-48px}
.bub{font-size:20px;padding:2px 9px}
/* ---- シート（ボトムシート）: 明るい・ゆったり・大きい文字 ---- */
#ov{background:rgba(31,37,71,.42)}
.sheet{background:#fff;border-radius:26px 26px 0 0;padding:16px 16px calc(16px + var(--safe-b));max-height:90%}
.sheet h2{font-size:22px;margin:2px 0 10px}
.sheet h3{font-size:16px;opacity:1;color:var(--c-sub);margin:14px 0 8px}
.sheet .x{width:44px;height:44px;font-size:18px;background:var(--aox-soft);color:var(--aox)}
.btn{min-height:48px;font-size:16px;padding:12px 16px;border-radius:16px;background:var(--aox);box-shadow:0 3px 0 rgba(31,79,201,.45)}
.btn.sun{background:var(--sun);color:var(--ink);box-shadow:0 3px 0 rgba(160,110,0,.35)}
.btn.coral{background:var(--coral);box-shadow:0 3px 0 rgba(170,40,40,.35)}
.btn.mint{background:#22b99a}
.btn.ghost{background:var(--aox-soft);color:var(--aox);box-shadow:none}
.btn.xl{min-height:56px;font-size:18px}
.card{font-size:16px;min-height:96px;padding:10px 8px;border:2px solid var(--line);border-radius:18px;gap:4px;line-height:1.3}
.card i{font-size:34px}
.card small{font-size:14px;opacity:.8}
.pill{font-size:15px;padding:2px 10px;background:var(--aox-soft);color:var(--aox)}
.bar{height:12px}
.say{font-size:17px;line-height:1.6;padding:12px 14px;border-radius:18px;border:2px solid var(--line)}
.hint{font-size:15px}
.mini{font-size:14px;opacity:.8}
.rel button{font-size:15px;padding:8px 12px;min-height:48px;border-radius:14px}
.empty{font-size:16px}
.wds{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}.wds span{background:#fff3c4;border-radius:999px;padding:3px 11px;font-size:15px;font-weight:900}
.who .big{width:84px;height:104px}.who .big .rig{transform:scale(1.7)}
/* ---- 会話: 吹き出し 16-18px・名前は上 ---- */
.conv .l{font-size:17px;line-height:1.55;padding:10px 14px;max-width:88%;border-radius:18px}
.conv .l b{font-size:15px;margin-bottom:2px}
/* ---- ニュース / アルバム / タブ ---- */
.tabs button{font-size:16px;padding:9px 16px;min-height:44px;border-radius:14px;background:var(--aox-soft);color:var(--aox)}
.tabs button.on{background:var(--aox);color:#fff}
.news{font-size:16px;line-height:1.5;padding:12px 0;border-bottom:1px solid var(--line);gap:10px;align-items:flex-start}
.news time{font-size:14px;min-width:50px;opacity:.7}
.news>span:first-child:not(time){font-size:26px}
.alb{border:0;border-radius:18px;padding:12px 14px;box-shadow:0 3px 12px rgba(47,109,246,.18);background:#fff;transform:rotate(-.6deg)}
.alb:nth-child(even){transform:rotate(.6deg)}
.alb b{font-size:17px}.alb small{font-size:14px;opacity:.8}
.stamp{font-size:14px}
input.t,.fld input{font-size:18px;min-height:48px;border-radius:14px;border:2px solid var(--line)}
.toast .tb{font-size:20px}.toast small{font-size:15px}
/* ---- LEVEL UP ---- */
.lv.up{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:34px;color:var(--aox);line-height:1.1;margin:8px 0 4px}
.lv.up small{font-size:18px;color:var(--ink)}
.lv.up b{font-size:30px;color:var(--coral);background:#fff3c4;border-radius:999px;padding:4px 18px;margin-top:4px}
.grid.rw{grid-template-columns:1fr 1fr}
.grid.rw .card{min-height:120px}.grid.rw .card b{font-size:16px}.grid.rw .card small{font-size:14px;font-weight:700}
.gain span{font-size:16px}
/* ---- ショップ: 2列カード ---- */
.shopgrid,.sheet .grid{gap:10px}
.sheet .grid .card{min-height:112px}
/* ---- 家具ミニゲームなどの文字 ---- */
.pdots{font-size:14px}
.eatstage .rx{font-size:56px}
@media (max-width:340px){#dock button{font-size:12px}.sheet{padding-left:12px;padding-right:12px}.grid3{gap:6px}.card{font-size:15px}#clk{font-size:26px}}
/* 微調整（看板・シート内） */
.bld .nm{font-size:12px;letter-spacing:-.2px;white-space:nowrap;text-shadow:0 0 3px #fff,0 0 3px #fff}
.bld .hrs{white-space:nowrap;font-size:12px}
.house .nm{font-size:13px;padding:0 5px;white-space:nowrap}
.sheet .grid3 .card{font-size:15px;padding:10px 4px;letter-spacing:-.3px}
.sheet .grid3 .card i{font-size:32px}
.sheet h3{font-size:15px;letter-spacing:-.2px}
.sheet .bar{min-width:60px}
.sheet [style*="width:76px"]{width:96px!important;white-space:nowrap;flex:none}
.grid.shop{grid-template-columns:1fr 1fr;gap:12px}
.grid.shop .card{min-height:136px;padding:12px 8px}
.grid.shop .card i{font-size:44px}
.grid.shop .card b{font-size:17px}
.grid.shop .card .pr{font-size:17px;font-weight:900;opacity:1;color:var(--aox)}
.grid.shop .card .own{font-size:14px;font-weight:800;background:#e9fbf4;color:#14866c;border-radius:999px;padding:1px 10px}
.ae-poses button{min-height:44px!important;font-size:15px!important}
