.sim-btn{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink);font:500 13px/1 var(--font-sans);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;transition:all .2s;display:inline-flex}.sim-btn i{border-radius:50%;width:8px;height:8px}.sim-btn:hover:not(:disabled){border-color:var(--color-signal);background:var(--color-signal-soft)}.sim-btn.reset:hover:not(:disabled){border-color:var(--color-pulse);background:var(--color-pulse-soft)}.sim-btn[aria-pressed=true]{border-color:var(--color-signal);background:var(--color-signal-soft)}.sim-map .zone rect{fill:none;stroke:var(--color-line);stroke-width:1.5px;stroke-dasharray:5 5;transition:all .4s}.sim-map .zone text{font:500 11px var(--font-mono);fill:var(--color-ink-3)}.sim-map .zone.down rect{stroke:var(--color-signal);fill:var(--color-signal-soft);stroke-dasharray:none}.sim-map .zone.cut rect{stroke:var(--color-signal);stroke-width:2.5px;stroke-dasharray:2 6}.sim-map .db circle.body{fill:var(--color-ink);transition:fill .4s, r .4s var(--ease-keen)}.sim-map .db.primary circle.body{fill:var(--color-keen);r:26px}.sim-map .db.failing circle.body{fill:var(--color-signal);animation:.25s linear infinite sim-shake}.sim-map .db.fenced circle.body,.sim-map .db.offline circle.body{fill:#cfcbe0}.sim-map .db.rebuilding circle.body{fill:#cfcbe0;animation:1s ease-in-out infinite sim-pulse}@keyframes sim-shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes sim-pulse{50%{opacity:.5}}.sim-map .db text{font:500 11px var(--font-mono);fill:var(--color-ink-2)}.sim-map .db .role{fill:var(--color-ink);font-weight:600}.sim-map .db.primary .role{fill:var(--color-keen)}.sim-map .db.failing .role,.sim-map .db.fenced .role{fill:var(--color-signal)}.sim-map .db .fence{opacity:0;stroke:var(--color-signal);stroke-width:3px;stroke-linecap:round;transition:opacity .3s}.sim-map .db.fenced .fence{opacity:1}.sim-map .edge{fill:none;stroke-width:2.5px;stroke-dasharray:5 7;animation:.8s linear infinite flow}.sim-map .edge.app{stroke:var(--color-keen)}.sim-map .edge.sync{stroke:var(--color-pulse)}.sim-map .edge.async{stroke:var(--color-pulse);stroke-opacity:.45}.sim-map .app-box rect{fill:#fff;stroke:var(--color-line);stroke-width:1.5px}.sim-map .app-box text{font:600 13px var(--font-sans);fill:var(--color-ink)}
