:root{--bg:#10161c;--panel:#161c24d1;--panel-solid:#1b232d;--line:#ffffff1f;--text:#f2ede2;--muted:#a9b0b8;--accent:#e3b04b;--accent-dark:#9c7426;--danger:#d65a4a;--touch:44px;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#view{width:100vw;height:100vh;height:100dvh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}button{min-width:var(--touch);min-height:var(--touch);font:inherit;color:var(--text);background:var(--panel-solid);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:0 14px}button:active{transform:scale(.96)}button.primary{background:linear-gradient(#e9bd5e, var(--accent-dark));color:#22180a;border:none;font-weight:700}button.icon{width:var(--touch);padding:0;font-size:20px}select,input{min-height:var(--touch);font:inherit;color:var(--text);background:var(--panel-solid);border:1px solid var(--line);border-radius:10px;padding:0 10px}.loading{background:radial-gradient(circle at 50% 35%, #26313d, var(--bg));place-items:center;display:grid;position:absolute;inset:0}.loading .box{text-align:center;width:min(420px,70vw)}.loading h1{letter-spacing:.04em;margin:0 0 6px}.loading .bar{border:1px solid var(--line);background:#0b1015;border-radius:6px;height:12px;overflow:hidden}.loading .fill{background:linear-gradient(90deg, var(--accent-dark), var(--accent));width:0;height:100%;transition:width .15s}.loading .label{color:var(--muted);margin-top:10px;font-size:14px}.menu{padding:calc(12px + var(--safe-t)) calc(12px + var(--safe-r)) calc(12px + var(--safe-b)) calc(12px + var(--safe-l));background:radial-gradient(circle at 30% 20%,#2d3a2a,#0e1418 70%);place-items:center;display:grid;position:absolute;inset:0;overflow:auto}.menu .card{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(560px,92vw);padding:18px 22px}.menu h1{letter-spacing:.05em;color:var(--accent);margin:0;font-size:clamp(26px,5vw,40px)}.menu .sub{color:var(--muted);margin:0 0 14px}.menu .grid{grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;display:grid}.menu .row{gap:8px;display:flex}.menu .row>*{flex:1;min-width:0}.menu .row>button.icon{flex:0 0 var(--touch)}.menu .actions{gap:10px;margin-top:14px;display:flex}.menu .actions .primary{flex:1;font-size:18px}.hud-top{padding:calc(6px + var(--safe-t)) calc(8px + var(--safe-r)) 0 calc(8px + var(--safe-l));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.hud-top>*{pointer-events:auto}.res-bar{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:4px;padding:4px 8px;display:flex}.res{font-variant-numeric:tabular-nums;align-items:center;gap:4px;min-width:62px;font-weight:600;display:flex}.res .ico{font-size:18px}.age{color:var(--accent);padding:0 6px;font-weight:700}.hud-buttons{gap:6px;display:flex}.hud-buttons button{background:var(--panel)}.minimap{right:calc(8px + var(--safe-r));bottom:calc(8px + var(--safe-b));touch-action:none;background:#000;border:2px solid #3a3226;border-radius:8px;position:absolute;box-shadow:0 2px 10px #00000080}.bottom-bar{left:calc(8px + var(--safe-l));bottom:calc(8px + var(--safe-b));gap:6px;display:flex;position:absolute}.bottom-bar button{background:var(--panel);position:relative}.badge{background:var(--accent);color:#22180a;text-align:center;pointer-events:none;border-radius:10px;min-width:20px;height:20px;padding:0 5px;font-size:12px;font-weight:800;line-height:20px;display:none;position:absolute;top:-6px;right:-6px}.idle-btn{font-size:20px}.groups{left:calc(8px + var(--safe-l));bottom:calc(60px + var(--safe-b));grid-template-columns:repeat(2, var(--touch));gap:6px;display:grid;position:absolute}.group-btn{background:var(--panel);touch-action:manipulation;font-weight:800;position:relative}.group-btn .badge{background:#fff;top:auto;bottom:-5px;right:-5px}.sel-wrap{left:calc(118px + var(--safe-l));right:calc(var(--mm,150px) + 18px + var(--safe-r));bottom:calc(8px + var(--safe-b));pointer-events:none;justify-content:center;display:flex;position:absolute}.sel-panel{background:var(--panel);border:1px solid var(--line);pointer-events:auto;border-radius:12px;width:min(320px,100%);padding:6px 10px}.sel-name{font-weight:700}.hp-bar{border:1px solid var(--line);background:#0b1015;border-radius:4px;height:8px;margin:4px 0;overflow:hidden}.hp-fill{background:#58c25a;width:100%;height:100%}.sel-info{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.sel-hint{color:var(--accent);margin-top:2px;font-size:12px}.selection-box{z-index:5;background:#78c8ff2e;border:2px solid #ffffffe6;border-radius:3px;position:fixed;pointer-events:none!important}.toast{left:50%;top:calc(64px + var(--safe-t));background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:10px;padding:8px 14px;font-size:14px;transition:opacity .3s;position:absolute;transform:translate(-50%)}.overlay{background:#0000008c;place-items:center;display:grid;position:absolute;inset:0}.overlay .card{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;min-width:min(380px,90vw);padding:16px 20px}.overlay h2{margin:0 0 12px}.overlay .dialog-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.overlay .grid{grid-template-columns:auto 1fr;align-items:center;gap:10px 12px;display:grid}.debug{left:calc(8px + var(--safe-l));top:calc(60px + var(--safe-t));color:#9f9;pointer-events:none;white-space:pre;background:#0009;border-radius:6px;padding:6px 8px;font:12px/1.35 ui-monospace,Consolas,monospace;position:absolute}@media (max-width:600px){.hud-top{flex-wrap:wrap}.hud-buttons{order:1;margin-left:auto}.res-bar{flex:100%;order:2;justify-content:space-between;padding:4px 6px}.res{gap:2px;min-width:0}.res .ico{font-size:16px}.age{padding:0 2px;font-size:14px}.debug{top:calc(108px + var(--safe-t))}.sel-wrap{left:calc(8px + var(--safe-l));right:calc(8px + var(--safe-r));bottom:calc(var(--mm,150px) + 22px + var(--safe-b))}}
