:root{--bg:#0c0e12;--panel:#14171d;--panel-2:#1b1f27;--line:#2a2f3a;--fg:#c9d1d9;--muted:#7d8794;--accent:#6fb3ff;--hp-good:#3fa63f;--hp-warn:#ede34a;--hp-bad:#d23c3c;--map-bg:#06070a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--fg);-webkit-user-select:none;user-select:none;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#app{max-width:760px;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;margin:0 auto;display:flex}#statusbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 10px;font-size:12.5px;line-height:1.3;display:flex}#statusbar .title{color:#fff;flex-basis:100%;font-weight:600}#statusbar .stat b{color:var(--fg);font-weight:600}#statusbar .stat{color:var(--muted);font-variant-numeric:tabular-nums}#statusbar .hpbar{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;flex:120px;min-width:120px;height:16px;position:relative;overflow:hidden}#statusbar .hpbar>i{border-radius:3px;transition:width .15s;display:block;position:absolute;inset:0 auto 0 0}#statusbar .hpbar>span{color:#fff;text-shadow:0 1px 2px #000;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}#statusbar .conds{flex-basis:100%;gap:4px;display:flex}#statusbar .cond{color:#ff9a9a;background:#3a1f1f;border:1px solid #5a2a2a;border-radius:3px;padding:0 5px;font-size:11px}#messages{background:var(--panel-2);border-bottom:1px solid var(--line);min-height:44px;max-height:88px;padding:5px 10px;font-size:13px;overflow-y:auto}#messages .m{color:var(--fg)}#messages .m.old{color:var(--muted)}#mapwrap{background:var(--map-bg);flex:auto;min-height:0;position:relative}#map{touch-action:none;width:100%;height:100%;display:block}#overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:5;background:#06070ad1;flex-direction:column;padding:14px;display:flex;position:absolute;inset:0}#overlay.hidden{display:none}#overlay .sheet{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;max-height:100%;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000080}#overlay .sheet h2{border-bottom:1px solid var(--line);color:#fff;margin:0;padding:12px 14px;font-size:14px}#overlay .list{padding:6px;overflow-y:auto}#overlay .row{border-radius:7px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;display:flex}#overlay .row.head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:12px;font-size:11px;font-weight:600}#overlay .row.item{cursor:pointer}#overlay .row.item:active{background:var(--panel-2)}#overlay .row.item .acc{width:22px;color:var(--accent);font-family:ui-monospace,monospace;font-weight:700}#overlay .row.item.sel{background:#20303f}#overlay .row.item.sel .acc:after{content:" ✓";color:var(--hp-good)}#overlay .foot{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}#overlay .foot button{flex:1}#overlay .prompt-q{color:#fff;padding:14px;font-size:15px}#overlay .choices{flex-wrap:wrap;gap:8px;padding:0 14px 14px;display:flex}#overlay input[type=text]{background:var(--panel-2);border:1px solid var(--line);color:var(--fg);border-radius:7px;margin:0 14px 12px;padding:10px;font-size:16px}#controls{background:var(--panel);border-top:1px solid var(--line);align-items:stretch;gap:10px;padding:8px 10px 10px;display:flex}#dpad{flex:none;grid-template-rows:repeat(3,46px);grid-template-columns:repeat(3,46px);grid-template-areas:"nw n ne""w c e""sw s se";gap:4px;display:grid}#actions{flex:auto;grid-template-columns:repeat(4,1fr);align-content:start;gap:6px;display:grid}button{font:inherit;color:var(--fg);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:8px 6px}button:active{background:#2a3140;transform:translateY(1px)}.dir{place-items:center;padding:0;font-size:20px;display:grid}.dir.mid{color:var(--muted);font-size:16px}.act{font-size:13px}.act.on{border-color:var(--accent);color:#fff;background:#223047}.choices button{min-width:44px;padding:10px 14px;font-size:16px}.choices button.def{border-color:var(--accent);color:#fff}.hidden{display:none!important}
