.rbac-page{--pp-accent: #c4b5fd;--pp-accent-2: #ddd6fe;--pp-accent-soft: rgba(167, 139, 250, .04);--pp-accent-line: rgba(167, 139, 250, .3);--pp-accent-glow: rgba(167, 139, 250, .16)}.rbac-page .rbac-hero{position:relative;padding:48px 0 0;isolation:isolate;overflow:visible}.rbac-page .rbac-hero-grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(to right,var(--pp-accent-soft) 1px,transparent 1px),linear-gradient(to bottom,var(--pp-accent-soft) 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000 30%,transparent 80%)}.rbac-page .rbac-hero-glow{position:absolute;top:-120px;left:50%;transform:translate(-50%);width:800px;height:400px;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,var(--pp-accent-glow),transparent 60%);filter:blur(40px)}.rbac-page .rbac-hero-inner{position:relative;z-index:2;padding:0 32px}.rbac-page .rbac-headline{max-width:1200px;margin:28px auto;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:end}@media (max-width: 980px){.rbac-page .rbac-headline{grid-template-columns:1fr;gap:28px}}.rbac-page .rbac-headline h1{font-size:clamp(40px,5.4vw,72px);font-weight:600;letter-spacing:-.038em;line-height:.98}.rbac-page .rbac-headline h1 em{color:var(--pp-accent)}.rbac-page .rbac-headline h1 code{font-family:JetBrains Mono,monospace;font-size:.78em;color:var(--pp-accent);background:#a78bfa14;border:1px solid var(--pp-accent-line);padding:0 10px;border-radius:8px;margin:0 4px;letter-spacing:-.01em}.rbac-page .rbac-headline .right p{font-size:16px;color:var(--pp-ink-3);line-height:1.5;margin-bottom:16px}.rbac-page .rbac-headline .right .ctas{display:flex;gap:10px;flex-wrap:wrap}.rbac-page .rbac-editor{max-width:1200px;margin:0 auto;border:1px solid var(--pp-line-2);border-radius:14px;background:var(--pp-bg-1);overflow:hidden;box-shadow:0 40px 80px -30px var(--pp-accent-glow)}.rbac-page .rbac-editor-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--pp-bg-2);border-bottom:1px solid var(--pp-line);font-family:JetBrains Mono,monospace;font-size:11px;color:var(--pp-ink-4)}.rbac-page .rbac-editor-bar .dots{display:flex;gap:6px}.rbac-page .rbac-editor-bar .dots span{width:9px;height:9px;border-radius:50%;background:var(--pp-line-2)}.rbac-page .rbac-editor-bar .right{margin-left:auto;display:flex;gap:14px}.rbac-page .rbac-editor-bar .right .ok{color:#86efac}.rbac-page .rbac-editor-bar .right .info{color:var(--pp-ink-3)}.rbac-page .rbac-editor-grid{display:grid;grid-template-columns:1.4fr 1fr}@media (max-width: 980px){.rbac-page .rbac-editor-grid{grid-template-columns:1fr}}.rbac-page .rbac-editor-code{font-family:JetBrains Mono,monospace;font-size:12.5px;line-height:1.7;display:grid;grid-template-columns:40px 1fr;border-right:1px solid var(--pp-line);background:#0a0c11}@media (max-width: 980px){.rbac-page .rbac-editor-code{border-right:0;border-bottom:1px solid var(--pp-line)}}.rbac-page .rbac-editor-code .gutter{background:var(--pp-bg-2);color:var(--pp-ink-5);text-align:right;padding:16px 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-right:1px solid var(--pp-line);font-size:11px}.rbac-page .rbac-editor-code .gutter span{display:block;line-height:1.7}.rbac-page .rbac-editor-code .gutter span.curr{color:var(--pp-accent);background:#a78bfa14}.rbac-page .rbac-editor-code pre{margin:0;padding:16px 18px;white-space:pre;overflow-x:auto;color:var(--pp-ink-2)}.rbac-page .rbac-editor-code pre .kw{color:var(--pp-accent)}.rbac-page .rbac-editor-code pre .str{color:#93c5fd}.rbac-page .rbac-editor-code pre .com{color:var(--pp-ink-5);font-style:italic}.rbac-page .rbac-editor-code pre .op{color:var(--pp-ink-4)}.rbac-page .rbac-editor-code pre .num{color:#f5b74b}.rbac-page .rbac-editor-code pre .res{color:#86efac}.rbac-page .rbac-editor-code pre .curr{background:#a78bfa14}.rbac-page .rbac-editor-side{display:flex;flex-direction:column;background:var(--pp-bg-1)}.rbac-page .rbac-side-pane{padding:16px 18px;border-bottom:1px solid var(--pp-line)}.rbac-page .rbac-side-pane:last-child{border-bottom:0}.rbac-page .rbac-side-pane .label{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--pp-ink-4);letter-spacing:.08em;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.rbac-page .rbac-side-pane .label .lat{color:var(--pp-accent)}.rbac-page .rbac-verdict{display:flex;flex-direction:column;gap:6px;font-family:JetBrains Mono,monospace;font-size:11.5px}.rbac-page .rbac-verdict .input{padding:10px 12px;background:var(--pp-bg-2);border:1px solid var(--pp-line);border-radius:6px;display:grid;grid-template-columns:56px 1fr;gap:4px 10px;color:var(--pp-ink-3)}.rbac-page .rbac-verdict .input .k{color:var(--pp-ink-4)}.rbac-page .rbac-verdict .input .v{color:var(--pp-ink-2)}.rbac-page .rbac-verdict .step{display:grid;grid-template-columns:14px 1fr auto;gap:10px;padding:7px 12px;border:1px solid var(--pp-line);border-radius:6px;font-size:11px;background:var(--pp-bg-1)}.rbac-page .rbac-verdict .step .ic{font-size:11px}.rbac-page .rbac-verdict .step .lat{color:var(--pp-ink-5);font-size:10px}.rbac-page .rbac-verdict .step.allow{color:#86efac;border-color:#4ade804d;background:#4ade800a}.rbac-page .rbac-verdict .step.ok{color:var(--pp-ink-3)}.rbac-page .rbac-verdict .final{margin-top:4px;padding:12px 14px;background:linear-gradient(90deg,#4ade801f,#4ade800a);border:1px solid rgba(74,222,128,.4);border-radius:6px;color:#86efac;font-weight:600;font-family:JetBrains Mono,monospace;font-size:13px;display:flex;justify-content:space-between;align-items:center}.rbac-page .rbac-scope-inspector{display:flex;flex-direction:column;gap:4px;font-family:JetBrains Mono,monospace;font-size:11px}.rbac-page .rbac-scope-inspector .row{display:grid;grid-template-columns:56px 1fr;padding:7px 12px;border:1px solid var(--pp-line);border-radius:5px;background:var(--pp-bg-2);gap:6px 10px}.rbac-page .rbac-scope-inspector .row .k{color:var(--pp-accent)}.rbac-page .rbac-scope-inspector .row .v{color:var(--pp-ink-2)}.rbac-page .rbac-scope-inspector .row .note{grid-column:2;color:var(--pp-ink-5);font-size:10px}.rbac-page .rbac-graph{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:0;border:1px solid var(--pp-line);border-radius:14px;overflow:hidden;background:var(--pp-bg-1)}@media (max-width: 880px){.rbac-page .rbac-graph{grid-template-columns:1fr}}.rbac-page .rbac-graph .col{padding:28px 24px;border-right:1px solid var(--pp-line);display:flex;flex-direction:column;gap:14px}.rbac-page .rbac-graph .col:last-child{border-right:0}.rbac-page .rbac-graph .col .lbl{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--pp-ink-4);letter-spacing:.08em}.rbac-page .rbac-graph .col h3{font-size:18px;font-weight:550;letter-spacing:-.018em}.rbac-page .rbac-graph .col p{font-size:13.5px;color:var(--pp-ink-3);line-height:1.55}.rbac-page .rbac-graph .col.middle{background:linear-gradient(180deg,var(--pp-bg-1),rgba(167,139,250,.04));border-left:1px solid rgba(167,139,250,.2);border-right:1px solid rgba(167,139,250,.2)}.rbac-page .rbac-graph .col.middle h3{color:var(--pp-accent-2)}.rbac-page .rbac-graph .col.middle h3 code{font-family:JetBrains Mono,monospace;font-size:.85em;color:var(--pp-accent-2)}.rbac-page .rbac-graph .col .pieces{display:flex;flex-wrap:wrap;gap:6px;font-family:JetBrains Mono,monospace;font-size:10.5px}.rbac-page .rbac-graph .col .pieces span{padding:4px 9px;border:1px solid var(--pp-line-2);border-radius:4px;background:var(--pp-bg-2);color:var(--pp-ink-2)}.rbac-page .rbac-graph .col.middle .pieces span{border-color:var(--pp-accent-line);background:#a78bfa0f;color:var(--pp-accent-2)}.rbac-page .rbac-mx{border:1px solid var(--pp-line-2);border-radius:14px;background:var(--pp-bg-1);overflow:hidden;box-shadow:0 30px 80px -30px #c4b5fd2e}.rbac-page .rbac-mx-bar{padding:12px 16px;background:var(--pp-bg-2);border-bottom:1px solid var(--pp-line);display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:JetBrains Mono,monospace;font-size:11px}.rbac-page .rbac-mx-bar .left,.rbac-page .rbac-mx-bar .right{display:flex;align-items:center;gap:8px}.rbac-page .rbac-mx-bar .right{margin-left:auto}.rbac-page .rbac-mx-bar .lbl{color:var(--pp-ink-5)}.rbac-page .rbac-mx-bar .val{color:var(--pp-ink-2)}.rbac-page .rbac-mx-bar .dim{color:var(--pp-line-2)}.rbac-page .rbac-mx-bar .ok{color:#86efac;font-size:9px}.rbac-page .rbac-mx-bar .chip{padding:4px 10px;font-size:10.5px;border:1px solid var(--pp-line-2);border-radius:4px;color:var(--pp-ink-3);background:var(--pp-bg-1);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.rbac-page .rbac-mx-bar .chip:hover{color:var(--pp-ink);border-color:var(--pp-ink-5)}.rbac-page .rbac-mx-bar .chip.on{color:var(--pp-accent);border-color:#c4b5fd66;background:#c4b5fd14}.rbac-page .rbac-mx-grid{display:grid;grid-template-columns:200px repeat(9,1fr) 200px;font-family:JetBrains Mono,monospace;font-size:11px;background:var(--pp-line);gap:1px;padding:1px}@media (max-width: 1100px){.rbac-page .rbac-mx-grid{grid-template-columns:160px repeat(9,1fr) 160px;font-size:10px}}@media (max-width: 880px){.rbac-page .rbac-mx-grid{grid-template-columns:140px repeat(9,minmax(36px,1fr))}.rbac-page .rbac-mx-grid .rbac-mx-acth.scope,.rbac-page .rbac-mx-grid .rbac-mx-scope{display:none}}.rbac-page .rbac-mx-corner{background:var(--pp-bg-2);padding:14px 16px;min-height:70px;display:flex;flex-direction:column;justify-content:space-between;border-bottom:1px solid var(--pp-line)}.rbac-page .rbac-mx-corner .x{color:var(--pp-ink-3);font-weight:500;letter-spacing:.04em}.rbac-page .rbac-mx-corner .y{color:var(--pp-ink-5);font-size:9.5px;align-self:flex-end;letter-spacing:.04em}.rbac-page .rbac-mx-acth{background:var(--pp-bg-2);padding:10px 6px;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;position:relative;border-bottom:1px solid var(--pp-line)}.rbac-page .rbac-mx-acth .n{color:var(--pp-ink-2);font-size:11px;font-weight:500}.rbac-page .rbac-mx-acth .bar{width:100%;height:24px;display:flex;align-items:flex-end;justify-content:center;padding:2px 0}.rbac-page .rbac-mx-acth .bar span{width:4px;min-height:2px;background:linear-gradient(to top,var(--pp-accent),rgba(196,181,253,.3));border-radius:1px 1px 0 0}.rbac-page .rbac-mx-acth .pc{font-size:9px;color:var(--pp-ink-5);letter-spacing:.04em}.rbac-page .rbac-mx-acth.scope .n{color:var(--pp-ink-4);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.rbac-page .rbac-mx-rowh{background:var(--pp-bg-2);padding:12px 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:56px}.rbac-page .rbac-mx-rowh .dot{width:8px;height:8px;border-radius:2px;flex-shrink:0;margin-right:2px}.rbac-page .rbac-mx-rowh .rn{color:var(--pp-ink);font-weight:500;font-size:12px;letter-spacing:-.005em}.rbac-page .rbac-mx-rowh .ri{width:100%;font-size:9.5px;color:var(--pp-ink-5);letter-spacing:.02em;margin-left:14px;margin-top:-1px}.rbac-page .rbac-mx-cell{background:var(--pp-bg-1);display:grid;place-items:center;min-height:56px;position:relative;transition:background .12s;cursor:default}.rbac-page .rbac-mx-cell:hover{background:var(--pp-bg-2)}.rbac-page .rbac-mx-cell .g{font-family:JetBrains Mono,monospace;font-size:11px;line-height:1;letter-spacing:0}.rbac-page .rbac-mx-cell.c-y{background:#86efac0f}.rbac-page .rbac-mx-cell.c-y .g{color:#86efac;font-size:14px}.rbac-page .rbac-mx-cell.c-y:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid rgba(134,239,172,.2);border-radius:3px;pointer-events:none}.rbac-page .rbac-mx-cell.c-n{background:var(--pp-bg-1)}.rbac-page .rbac-mx-cell.c-n .g{color:var(--pp-line-2);font-size:14px}.rbac-page .rbac-mx-cell.c-c{background:#c4b5fd0f}.rbac-page .rbac-mx-cell.c-c .g{color:var(--pp-accent);font-size:9.5px;padding:2px 5px;border:1px solid rgba(196,181,253,.4);border-radius:3px;letter-spacing:.04em;font-style:italic}.rbac-page .rbac-mx-cell.c-t{background:#a5b4fc0f}.rbac-page .rbac-mx-cell.c-t .g{color:#a5b4fc;font-size:9px;padding:2px 5px;border:1px solid rgba(165,180,252,.3);border-radius:3px;letter-spacing:.06em}.rbac-page .rbac-mx-cell.c-m{background:#f5b74b0f}.rbac-page .rbac-mx-cell.c-m .g{color:#f5b74b;font-size:9px;padding:2px 5px;border:1px solid rgba(245,183,75,.3);border-radius:3px;letter-spacing:.06em;text-transform:uppercase}.rbac-page .rbac-mx-cell.c-o{background:#5eead40f;background-image:repeating-linear-gradient(45deg,transparent 0 4px,rgba(94,234,212,.04) 4px 5px)}.rbac-page .rbac-mx-cell.c-o .g{color:#5eead4;font-size:14px}.rbac-page .rbac-mx-cell.c-o:after{content:"override";position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:8px;color:#5eead4;letter-spacing:.06em;text-transform:uppercase}.rbac-page .rbac-mx-scope{background:var(--pp-bg-2);padding:10px 12px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:56px;font-size:10px}.rbac-page .rbac-mx-scope .sc{padding:2px 6px;border-radius:3px;border:1px solid var(--pp-line-2);font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.02em;white-space:nowrap}.rbac-page .rbac-mx-scope .sc.all{color:var(--pp-ink-3)}.rbac-page .rbac-mx-scope .sc.team{color:#a5b4fc;border-color:#a5b4fc4d;background:#a5b4fc0f}.rbac-page .rbac-mx-scope .sc.res{color:#fcd34d;border-color:#fcd34d4d;background:#fcd34d0f}.rbac-page .rbac-mx-scope .sc.cond{color:var(--pp-accent);border-color:#c4b5fd4d;background:#c4b5fd0f}.rbac-page .rbac-mx-scope .sc.time{color:var(--pp-ink-4);border-style:dashed}.rbac-page .rbac-mx-legend{padding:12px 16px;background:var(--pp-bg-2);border-top:1px solid var(--pp-line);display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-family:JetBrains Mono,monospace;font-size:10.5px}.rbac-page .rbac-mx-legend .grp{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rbac-page .rbac-mx-legend .grp.right{margin-left:auto;color:var(--pp-ink-5)}.rbac-page .rbac-mx-legend .lbl{color:var(--pp-ink-5);letter-spacing:.06em}.rbac-page .rbac-mx-legend .lg{display:inline-flex;align-items:center;gap:5px;color:var(--pp-ink-3)}.rbac-page .rbac-mx-legend .lg .g{display:inline-grid;place-items:center;min-width:16px;height:16px;font-size:10px}.rbac-page .rbac-mx-legend .lg.c-y .g{color:#86efac;font-size:12px}.rbac-page .rbac-mx-legend .lg.c-n .g{color:var(--pp-line-2);font-size:12px}.rbac-page .rbac-mx-legend .lg.c-c .g{color:var(--pp-accent);padding:1px 4px;border:1px solid rgba(196,181,253,.4);border-radius:2px;font-size:9px;font-style:italic}.rbac-page .rbac-mx-legend .lg.c-t .g{color:#a5b4fc;padding:1px 4px;border:1px solid rgba(165,180,252,.3);border-radius:2px;font-size:9px}.rbac-page .rbac-mx-legend .lg.c-m .g{color:#f5b74b;padding:1px 4px;border:1px solid rgba(245,183,75,.3);border-radius:2px;font-size:9px;text-transform:uppercase}.rbac-page .rbac-mx-legend .lg.c-o .g{color:#5eead4;font-size:12px}.rbac-page .rbac-mx-legend .who{color:var(--pp-accent)}.rbac-page .rbac-scope-block{width:100%;font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--pp-ink-2)}.rbac-page .rbac-scope-block .row{display:grid;grid-template-columns:70px 1fr;padding:10px 0;border-bottom:1px dashed var(--pp-line);gap:14px}.rbac-page .rbac-scope-block .row:last-child{border-bottom:0}.rbac-page .rbac-scope-block .row .scope{color:var(--pp-accent-2)}.rbac-page .rbac-scope-block .row .val{color:var(--pp-ink-2)}.rbac-page .rbac-scope-block .row .note{color:var(--pp-ink-5);font-size:10.5px;margin-top:2px}.rbac-page .rbac-policy{width:100%;font-family:JetBrains Mono,monospace;font-size:11.5px;background:var(--pp-bg-2);border:1px solid var(--pp-line);border-radius:10px;padding:16px;line-height:1.7;white-space:pre}.rbac-page .rbac-policy .kw{color:var(--pp-accent)}.rbac-page .rbac-policy .str{color:var(--pp-accent-2)}.rbac-page .rbac-policy .com{color:var(--pp-ink-5)}.rbac-page .rbac-policy .op{color:var(--pp-ink-4)}.rbac-page .rbac-decision{width:100%;display:flex;flex-direction:column;gap:8px;font-family:JetBrains Mono,monospace;font-size:11px}.rbac-page .rbac-decision .req{padding:10px 12px;background:var(--pp-bg-2);border:1px solid var(--pp-line);border-radius:6px;display:grid;grid-template-columns:60px 1fr;gap:8px;color:var(--pp-ink-3)}.rbac-page .rbac-decision .req .k{color:var(--pp-ink-4)}.rbac-page .rbac-decision .check{padding:8px 12px;border:1px solid;border-radius:6px;display:grid;grid-template-columns:1fr auto;gap:8px}.rbac-page .rbac-decision .check.allow{background:#4ade800f;border-color:#4ade804d;color:#86efac}.rbac-page .rbac-decision .check.deny{background:#f26b6b0f;border-color:#f26b6b4d;color:#fca5a5}.rbac-page .rbac-decision .check .lat{color:var(--pp-ink-5);font-size:10px}.rbac-page .rbac-decision .final{padding:10px 12px;background:#4ade800f;border:1px solid rgba(74,222,128,.4);border-radius:6px;color:#86efac;font-weight:500}
