html,body,#root{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}:root{--rb-bg: #1a1f29;--rb-bg-2: #25344A;--rb-fg: #F2F2F2;--rb-fg-dim: #98a4bb;--rb-border: #424A57;--rb-accent: #5a8edf;--rb-accent-2: #ff9c3a;--rb-stage-bg: #2c3744;--rb-stage-done:#3a7d4b;--rb-stage-run: #d28a2a;--rb-radius: .75rem;--rb-radius-lg: 1.5rem}body{background:var(--rb-bg);color:var(--rb-fg)}button{background:var(--rb-bg-2);color:var(--rb-fg);border:1px solid var(--rb-border);padding:5px 12px;cursor:pointer;border-radius:var(--rb-radius);font-size:12px;font-weight:500;transition:background .12s ease,transform 80ms ease}button:hover:not(:disabled){background:#324a6c}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}select{background:var(--rb-bg-2);color:var(--rb-fg);border:1px solid var(--rb-border);padding:4px 8px;border-radius:var(--rb-radius);font-size:12px}.rb-topbar{display:flex;align-items:center;padding:8px 14px;gap:10px;border-bottom:1px solid var(--rb-border);background:linear-gradient(180deg,#1f2937 0%,var(--rb-bg) 100%);flex-wrap:wrap}.rb-title{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;color:var(--rb-accent);letter-spacing:.5px;margin-right:8px}.rb-meta{font-size:11px;color:var(--rb-fg-dim);margin-left:8px}.rb-menu-trigger.open{border-color:var(--rb-accent);color:var(--rb-accent)}.rb-menu-trigger .caret{font-size:.75em;opacity:.8}.rb-menu-panel{background:var(--rb-bg-2);color:var(--rb-fg);border:1px solid var(--rb-border);border-radius:var(--rb-radius);box-shadow:0 8px 24px #00000080;padding:6px;min-width:190px;display:flex;flex-direction:column;gap:2px;font-size:13px}.rb-menu-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.rb-menu-item:hover{background:#ffffff0f}.rb-menu-item input{margin:0}.rb-menu-sep{height:1px;background:var(--rb-border);margin:4px 2px}.rb-menu-heading{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--rb-fg-dim);padding:4px 8px 2px}.rb-menu-action{width:100%;text-align:left;margin:0}.rb-menu-number{justify-content:space-between;cursor:default}.rb-menu-number>span{flex:1}.rb-menu-number input[type=number]{width:64px;padding:3px 6px;font-size:12px;text-align:right}.rb-stage-strip{display:flex;gap:8px;margin-left:auto}.rb-stage{padding:4px 10px;border-radius:var(--rb-radius);background:var(--rb-stage-bg);color:var(--rb-fg-dim);font-size:11px;min-width:88px;text-align:center;border:1px solid transparent;transition:background .2s ease,color .2s ease,border-color .2s ease}.rb-stage.running{background:var(--rb-stage-run);color:#1a1f29;border-color:#b06a16}.rb-stage.done{background:var(--rb-stage-done);color:#e0fce5;border-color:#1f5a30}.rb-stage .label{font-weight:600}.rb-stage .sub{opacity:.85;margin-left:4px}.rb-main{display:flex;flex:1;min-height:0;background:var(--rb-bg)}.rb-grid-pane{width:30%;min-width:360px;padding:10px;border-right:1px solid var(--rb-border);display:flex;flex-direction:column}.rb-svg-pane{flex:1;position:relative;min-width:0;padding:10px}.ZoomableSVGContainer{height:100%;width:100%;overflow:auto;background-color:#fff;border-radius:var(--rb-radius-lg);box-shadow:0 4px 18px #00000059}.rb-roller,.rb-cheat-group{transition:transform .22s cubic-bezier(.22,.61,.36,1)}.rb-tracker{transition:y2 .22s cubic-bezier(.22,.61,.36,1),y1 .22s cubic-bezier(.22,.61,.36,1)}use{transition:y .22s cubic-bezier(.22,.61,.36,1)}.rb-floating-panel{background-color:#25344aeb;color:var(--rb-fg);border:1px solid var(--rb-border);border-radius:var(--rb-radius);padding:14px 18px;font-size:12px;box-shadow:0 6px 20px #00000073;max-width:360px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.rb-floating-panel .name{font-weight:600;color:var(--rb-accent);font-size:13px;margin-bottom:6px}.rb-floating-panel .kv{display:grid;grid-template-columns:80px auto;row-gap:3px;column-gap:8px;font-family:source-code-pro,Menlo,Monaco,monospace;font-size:11px}.rb-floating-panel .kv .k{color:var(--rb-fg-dim)}.rb-summary{padding:6px 14px;border-top:1px solid var(--rb-border);font-size:11px;color:var(--rb-fg-dim);background:#1f2937;font-family:source-code-pro,Menlo,Monaco,monospace}.rb-summary b{color:var(--rb-fg);font-weight:600}.rb-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:999;animation:rb-fade-in .14s ease both}.rb-data-panel{position:fixed;top:56px;left:50%;transform:translate(-50%);width:min(760px,92vw);height:min(78vh,820px);background:#25344af5;color:var(--rb-fg);border:1px solid var(--rb-border);border-radius:var(--rb-radius-lg);box-shadow:0 10px 40px #0009;z-index:1000;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rb-pop-in .18s cubic-bezier(.22,.61,.36,1) both}.rb-data-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;border-bottom:1px solid var(--rb-border)}.rb-data-panel-header strong{font-family:source-code-pro,Menlo,Monaco,monospace;color:var(--rb-accent);letter-spacing:.5px}.rb-data-panel-close{background:transparent;color:var(--rb-fg-dim);border:none;font-size:22px;line-height:1;padding:0 4px;cursor:pointer;border-radius:4px;transition:color .12s ease}.rb-data-panel-close:hover{color:var(--rb-fg);background:transparent}.rb-data-panel-body{flex:1;display:flex;flex-direction:column;gap:12px;padding:14px 18px 18px;min-height:0}.rb-data-panel-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}@keyframes rb-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rb-pop-in{0%{opacity:0;transform:translate(-50%) translateY(-12px) scale(.97)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.rb-grid{border-radius:var(--rb-radius);overflow:hidden}.rb-table{width:100%;border-collapse:collapse;font-size:12px;color:#ddd}.rb-table th{position:sticky;top:0;background:#2a2a2e;color:#bbb;text-align:left;padding:4px 6px;border-bottom:1px solid #444;font-weight:600}.rb-table td{padding:0;border-bottom:1px solid #333}.rb-table tr.rb-row-selected td{background:#2d3a4d}.rb-cell-input{width:100%;box-sizing:border-box;background:transparent;border:1px solid transparent;color:inherit;font:inherit;padding:3px 6px}.rb-cell-input:focus{outline:none;background:#1c1c20;border-color:#5a7}
