html,body,#root{height:100%;margin:0}body{overflow:hidden}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--olo-fg-3);border-radius:6px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--olo-fg-2);background-clip:content-box}.ob-table{width:100%;border-collapse:collapse;font-family:var(--olo-font-body);font-size:13px}.ob-table thead th{text-align:left;font-family:var(--olo-font-display);font-weight:600;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--olo-fg-2);padding:12px 14px;border-bottom:1px solid var(--olo-fg-4);background:transparent;position:sticky;top:0;z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ob-table tbody td{padding:14px;border-bottom:1px solid var(--olo-fg-4);color:var(--olo-fg-1);vertical-align:middle}.ob-table tbody tr{transition:background var(--olo-dur) var(--olo-ease)}.ob-table tbody tr:hover{background:var(--olo-fg-4)}.mono{font-family:var(--olo-font-mono);font-size:12px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-family:var(--olo-font-body);font-weight:500;padding:3px 10px;border-radius:100px;letter-spacing:.3px}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.active{background:var(--olo-vert-tint);color:var(--olo-vert)}.status-pill.revoked{background:var(--olo-rose-tint);color:var(--olo-rose)}.status-pill.expired{background:var(--olo-fg-4);color:var(--olo-fg-2)}.status-pill.expiring{background:var(--olo-ambre-tint);color:var(--olo-ambre)}:root[data-mode=light] .status-pill.active{color:var(--olo-vert)}:root[data-mode=light] .status-pill.expiring{color:var(--olo-ambre)}.tenant-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:6px;background:var(--olo-violet-tint);color:var(--olo-violet);font-family:var(--olo-font-mono)}:root[data-mode=light] .tenant-chip{color:var(--olo-violet)}.sparkline{display:inline-block;vertical-align:middle}.ob-sidebar{width:248px;background:var(--olo-bg-bottom);border-right:1px solid var(--olo-fg-4);display:flex;flex-direction:column;flex-shrink:0}:root[data-mode=light] .ob-sidebar{background:var(--olo-surface)}.ob-nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--olo-fg-1);cursor:pointer;font-size:13.5px;transition:background var(--olo-dur);font-family:var(--olo-font-body);font-weight:500;border:0;background:transparent;width:100%;text-align:left;position:relative}.ob-nav-item:hover{background:var(--olo-fg-4)}.ob-nav-item.active{background:var(--olo-fg-4);color:var(--olo-fg)}.ob-nav-item.active:before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--olo)}.ob-topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--olo-fg-4);flex-shrink:0}.ob-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s var(--olo-ease);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}:root[data-mode=light] .ob-modal-overlay{background:#1b134066}.ob-modal{background:var(--olo-card);border:1px solid var(--olo-fg-3);border-radius:var(--olo-r);max-width:540px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--olo-shadow-dialog);animation:slideUp .28s var(--olo-ease)}.ob-modal.wide{max-width:640px}.ob-modal-head{padding:22px 26px 16px;border-bottom:1px solid var(--olo-fg-4)}.ob-modal-body{padding:22px 26px;overflow-y:auto}.ob-modal-foot{padding:16px 26px 20px;border-top:1px solid var(--olo-fg-4);display:flex;justify-content:flex-end;gap:10px}.ob-slideover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;justify-content:flex-end;animation:fadeIn .2s var(--olo-ease)}:root[data-mode=light] .ob-slideover-overlay{background:#1b13404d}.ob-slideover{background:var(--olo-card);border-left:1px solid var(--olo-fg-3);width:540px;max-width:100%;height:100%;display:flex;flex-direction:column;animation:slideLeft .32s var(--olo-ease)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.ob-field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.ob-field label{font-size:12px;color:var(--olo-fg-1);font-weight:500;font-family:var(--olo-font-body)}.ob-field .hint{font-size:11.5px;color:var(--olo-fg-2);margin-top:2px}select.olo-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23999' stroke-width='1.5' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.olo-input option{background:var(--olo-bg-bottom);color:var(--olo-fg)}.ob-secret-box{background:var(--olo-bg-top);border:1px solid var(--olo-fg-3);border-radius:var(--olo-r);padding:14px 16px;font-family:var(--olo-font-mono);font-size:13px;color:var(--olo);word-break:break-all;line-height:1.5;position:relative}:root[data-mode=light] .ob-secret-box{background:#faf7f0;border-color:var(--olo-fg-3)}.ob-secret-warn{background:var(--olo-rose-tint);border-left:3px solid var(--olo-rose);padding:12px 14px;border-radius:0 8px 8px 0;color:var(--olo-fg-1);font-size:12.5px;line-height:1.5}.ob-filterbar{display:flex;gap:10px;align-items:center;padding:14px 28px;border-bottom:1px solid var(--olo-fg-4)}.ob-search{display:flex;align-items:center;gap:8px;background:var(--olo-fg-4);border:1px solid var(--olo-fg-3);border-radius:8px;padding:7px 12px;flex:1;max-width:360px;transition:border-color var(--olo-dur)}.ob-search:focus-within{border-color:var(--olo)}.ob-search input{flex:1;background:transparent;border:0;outline:none;color:var(--olo-fg);font-family:var(--olo-font-body);font-size:13px}.ob-search input::placeholder{color:var(--olo-fg-2)}.ob-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;border:1px solid var(--olo-fg-3);background:transparent;color:var(--olo-fg-1);font-family:var(--olo-font-body);font-size:12px;cursor:pointer;transition:all var(--olo-dur) var(--olo-ease)}.ob-chip:hover{border-color:var(--olo-fg-2)}.ob-chip.active{background:var(--olo-tint);color:var(--olo);border-color:transparent}.ob-pager{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-top:1px solid var(--olo-fg-4);font-size:12.5px;color:var(--olo-fg-2)}.ob-pager-buttons{display:flex;gap:4px}.ob-pager-btn{width:30px;height:30px;border-radius:6px;border:1px solid var(--olo-fg-3);background:transparent;color:var(--olo-fg-1);cursor:pointer;font-family:var(--olo-font-body);font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--olo-dur)}.ob-pager-btn:hover:not(:disabled){background:var(--olo-fg-4)}.ob-pager-btn:disabled{opacity:.4;cursor:not-allowed}.ob-pager-btn.active{background:var(--olo);color:var(--olo-bg-bottom);border-color:transparent}.ob-audit-row{display:grid;grid-template-columns:90px 32px 1fr 140px;gap:16px;align-items:center;padding:14px 28px;border-bottom:1px solid var(--olo-fg-4);transition:background var(--olo-dur)}.ob-audit-row:hover{background:var(--olo-fg-4)}.ob-empty{text-align:center;padding:80px 20px;color:var(--olo-fg-2)}.ob-empty-icon{width:56px;height:56px;border-radius:14px;background:var(--olo-fg-4);display:inline-flex;align-items:center;justify-content:center;margin-bottom:18px}.ob-action-btn{width:28px;height:28px;border-radius:6px;border:0;background:transparent;color:var(--olo-fg-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--olo-dur)}.ob-action-btn:hover{background:var(--olo-fg-4);color:var(--olo-fg)}.ob-action-btn.destroy:hover{background:var(--olo-rose-tint);color:var(--olo-rose)}.ob-toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column-reverse;gap:8px;z-index:200;pointer-events:none}.ob-toast{background:var(--olo-card);border:1px solid var(--olo-fg-3);border-radius:10px;padding:12px 16px;font-size:13px;color:var(--olo-fg-1);display:flex;align-items:center;gap:10px;min-width:280px;max-width:380px;pointer-events:all;box-shadow:var(--olo-shadow-dialog);animation:slideUp .28s var(--olo-ease)}.ob-toast.success{border-left:3px solid var(--olo-vert)}.ob-toast.error{border-left:3px solid var(--olo-rose)}.ob-toast.info{border-left:3px solid var(--olo)}.ob-ring{width:30px;height:30px;border-radius:50%;background:conic-gradient(from 130deg,#2dd4bf,#34d399,#f59e0b,#f472b6,#a855f7,#2dd4bf);-webkit-mask:radial-gradient(circle,transparent 38%,#000 42%);mask:radial-gradient(circle,transparent 38%,#000 42%);flex-shrink:0}.key-prefix{color:var(--olo-fg-2);font-family:var(--olo-font-mono);font-size:12.5px}.key-prefix .visible{color:var(--olo-fg-1)}.scope-banner{background:var(--olo-violet-tint);border-bottom:1px solid var(--olo-fg-4);padding:8px 28px;font-size:12px;color:var(--olo-violet);display:flex;align-items:center;gap:8px;font-family:var(--olo-font-body)}:root[data-mode=light] .scope-banner{color:var(--olo-violet)}.ob-detail{width:380px;flex-shrink:0;border-left:1px solid var(--olo-fg-4);background:var(--olo-bg-bottom);display:flex;flex-direction:column}:root[data-mode=light] .ob-detail{background:var(--olo-surface)}body.olo-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(168,85,247,.05) 1px,transparent 1px);background-size:24px 24px;z-index:0}.ob-table-wrap{flex:1;overflow:auto;min-height:0}.ob-doc-nav{width:264px;flex-shrink:0;overflow:auto;padding:18px 14px;border-right:1px solid var(--olo-fg-4);background:var(--olo-bg-bottom)}:root[data-mode=light] .ob-doc-nav{background:var(--olo-surface)}.ob-doc-link{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--olo-fg-2);font-family:var(--olo-font-body);font-size:12.5px;font-weight:500;padding:6px 10px;border-radius:7px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--olo-dur) var(--olo-ease),color var(--olo-dur) var(--olo-ease)}.ob-doc-link:hover{background:var(--olo-fg-4);color:var(--olo-fg)}.ob-doc-link.active{background:var(--olo-fg-4);color:var(--olo-fg);box-shadow:inset 2px 0 0 var(--olo)}.ob-doc-scroll{flex:1;min-width:0;overflow:auto;padding:28px 40px 80px}.ob-doc{max-width:860px;color:var(--olo-fg-1);font-family:var(--olo-font-body);font-size:14px;line-height:1.65}.ob-doc h1,.ob-doc h2,.ob-doc h3,.ob-doc h4{font-family:var(--olo-font-display);color:var(--olo-fg);font-weight:650;line-height:1.25;margin:1.6em 0 .6em}.ob-doc h1{font-size:26px;margin-top:0}.ob-doc h2{font-size:20px;padding-bottom:6px;border-bottom:1px solid var(--olo-fg-4)}.ob-doc h3{font-size:16px}.ob-doc h4{font-size:14px;color:var(--olo-fg-1)}.ob-doc p{margin:.7em 0}.ob-doc a{color:var(--olo);text-decoration:none}.ob-doc a:hover{text-decoration:underline}.ob-doc ul,.ob-doc ol{margin:.7em 0;padding-left:1.5em}.ob-doc li{margin:.25em 0}.ob-doc code{font-family:var(--olo-font-mono);font-size:.86em;background:var(--olo-fg-4);color:var(--olo-fg);padding:1.5px 5px;border-radius:5px}.ob-doc pre{background:#1e1e1e;border:1px solid var(--olo-fg-4);border-radius:var(--olo-r);padding:14px 16px;overflow:auto;margin:1em 0}.ob-doc pre code{background:transparent;padding:0;font-size:12.5px;line-height:1.55}.ob-doc .hljs{color:#d4d4d4;background:transparent}.ob-doc .hljs-comment,.ob-doc .hljs-quote{color:#6a9955;font-style:italic}.ob-doc .hljs-keyword,.ob-doc .hljs-literal,.ob-doc .hljs-selector-tag,.ob-doc .hljs-meta .hljs-keyword,.ob-doc .hljs-doctag{color:#569cd6}.ob-doc .hljs-built_in,.ob-doc .hljs-type,.ob-doc .hljs-class .hljs-title,.ob-doc .hljs-title.class_{color:#4ec9b0}.ob-doc .hljs-string,.ob-doc .hljs-meta .hljs-string,.ob-doc .hljs-regexp{color:#ce9178}.ob-doc .hljs-number,.ob-doc .hljs-symbol,.ob-doc .hljs-bullet{color:#b5cea8}.ob-doc .hljs-title,.ob-doc .hljs-section,.ob-doc .hljs-title.function_,.ob-doc .hljs-function .hljs-title{color:#dcdcaa}.ob-doc .hljs-attr,.ob-doc .hljs-attribute,.ob-doc .hljs-property,.ob-doc .hljs-variable,.ob-doc .hljs-template-variable,.ob-doc .hljs-params{color:#9cdcfe}.ob-doc .hljs-name,.ob-doc .hljs-selector-id,.ob-doc .hljs-selector-class{color:#569cd6}.ob-doc .hljs-meta{color:#9b9b9b}.ob-doc .hljs-deletion{color:#d16969}.ob-doc .hljs-addition{color:#b5cea8}.ob-doc .hljs-link{color:#569cd6;text-decoration:underline}.ob-doc .hljs-emphasis{font-style:italic}.ob-doc .hljs-strong{font-weight:700}.ob-doc-table{border-collapse:collapse;width:100%;font-size:12.5px}.ob-doc-table th,.ob-doc-table td{border:1px solid var(--olo-fg-4);padding:7px 11px;text-align:left;vertical-align:top}.ob-doc-table th{background:var(--olo-fg-4);color:var(--olo-fg);font-family:var(--olo-font-display);font-weight:600;white-space:nowrap}.ob-doc-table code{font-family:var(--olo-font-mono);font-size:11.5px;background:var(--olo-fg-4);color:var(--olo-fg);padding:1px 5px;border-radius:4px}.ob-doc pre:has(.ob-mermaid){background:transparent;border:0;padding:0}.ob-doc .ob-mermaid{display:flex;justify-content:center;margin:1em 0;padding:20px 18px;background:#1e1e1e;border:1px solid var(--olo-fg-4);border-radius:var(--olo-r);overflow-x:auto}.ob-doc .ob-mermaid svg{max-width:100%;height:auto}.ob-doc blockquote{margin:1em 0;padding:2px 16px;border-left:3px solid var(--olo);color:var(--olo-fg-2);background:var(--olo-tint);border-radius:0 6px 6px 0}.ob-doc hr{border:0;border-top:1px solid var(--olo-fg-4);margin:1.8em 0}.ob-doc table{border-collapse:collapse;width:100%;margin:1em 0;font-size:13px;display:block;overflow-x:auto}.ob-doc th,.ob-doc td{border:1px solid var(--olo-fg-4);padding:7px 11px;text-align:left;vertical-align:top}.ob-doc th{background:var(--olo-fg-4);color:var(--olo-fg);font-family:var(--olo-font-display);font-weight:600}.ob-doc tbody tr:hover{background:var(--olo-fg-4)}.ob-doc img{max-width:100%}
