:root{--ink: #e6f1f7;--muted: #9db6c4;--panel: rgba(8, 22, 33, .86);--edge: rgba(150, 205, 235, .25);--accent: #6cc3ee;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;font-variant-numeric:tabular-nums;color:var(--ink)}html,body{margin:0;height:100%;background:#0b1a26;overflow:hidden}#app,#viewport{position:fixed;inset:0}#canvas{display:block;width:100%;height:100%}#hud{position:fixed;inset:0;pointer-events:none}#hud>*{pointer-events:auto}.topbar{position:absolute;top:0;left:0;right:0;display:flex;gap:18px;align-items:center;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--edge)}.topbar .name{font-weight:600;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .date{color:var(--muted);white-space:nowrap}.topbar .speeds{display:flex;flex:none;gap:2px;margin-left:auto}.topbar .files{flex:none}button{font:inherit;color:var(--ink);background:#ffffff0f;border:1px solid var(--edge);border-radius:4px;padding:3px 9px;cursor:pointer}button.on{background:var(--accent);color:#04131d}.card{position:absolute;background:var(--panel);border:1px solid var(--edge);border-radius:6px;padding:12px 16px}.card.sanctuary{top:calc(var(--topbar-bottom, 46px) + 10px);left:14px;width:340px}.card.regions{top:calc(var(--topbar-bottom, 46px) + 10px);right:14px;width:420px}.card h2{margin:0 0 4px;font-size:18px}.card .place,.card .note{margin:0 0 10px;color:var(--muted)}.card dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0}.card dt{color:var(--muted)}.card dd{margin:0}.card table{width:100%;border-collapse:collapse}.card th,.card td{text-align:left;padding:2px 6px 2px 0}.card th{color:var(--muted);font-weight:400}.card td.num{text-align:right;white-space:nowrap}.card tr.here td{color:var(--accent)}.card .dep{color:var(--muted)}.card tr.here .dep{color:inherit}.card .log{margin:12px 0 0;color:var(--muted)}.toast{position:absolute;bottom:18px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--edge);border-radius:6px;padding:8px 14px}.tabs{display:none}button{touch-action:manipulation}@media(max-width:1100px),(max-width:960px)and (max-height:520px){:root{font-size:14px}.topbar{flex-wrap:wrap;gap:6px 10px;padding:calc(6px + env(safe-area-inset-top)) 10px 6px}.topbar .date{margin-left:auto;white-space:nowrap}.topbar .files{display:flex;gap:4px}.topbar .speeds{order:3;width:100%;margin-left:0}.topbar .speeds button{flex:1;padding:9px 0;min-width:0}.topbar .files button{padding:7px 10px}.card.sanctuary,.card.regions{display:none;position:fixed;top:auto;left:0;right:0;bottom:calc(48px + env(safe-area-inset-bottom));width:auto;max-height:42vh;overflow-y:auto;border-radius:12px 12px 0 0;border-bottom:none;padding:12px 14px}#hud[data-panel=sanctuary] .card.sanctuary,#hud[data-panel=world] .card.regions{display:block}.card table{font-size:13px}.card td.num{white-space:nowrap}.tabs{display:flex;position:fixed;left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom);background:var(--panel);border-top:1px solid var(--edge)}.tabs button{flex:1;height:48px;border:none;border-radius:0;background:none}.tabs button.on{color:var(--accent);background:#6cc3ee1f}.toast{bottom:calc(60px + env(safe-area-inset-bottom));max-width:90vw}}@media(max-width:520px){.topbar .name{display:none}.topbar .date{margin-left:0}.topbar .files{margin-left:auto}.topbar .speeds button{font-size:13px;padding:10px 0}}@media(max-width:960px)and (max-height:520px){.topbar{flex-wrap:nowrap;gap:8px;padding:4px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left))}.topbar .name{display:none}.topbar .date{margin-left:0}.topbar .speeds{order:0;width:auto;margin-left:auto}.topbar .speeds button{flex:none;padding:7px 8px;font-size:13px}.topbar .files button{padding:7px 8px}.card.sanctuary,.card.regions{top:var(--topbar-bottom, 46px);bottom:calc(44px + env(safe-area-inset-bottom));left:auto;right:0;width:46%;max-height:none;border-radius:12px 0 0}.tabs button{height:44px}}@media(max-width:360px){.topbar .speeds{gap:2px}.topbar .speeds button{font-size:11px}.card.sanctuary,.card.regions{max-height:36vh}}
