@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #08080a;--bg-deep: #050506;--panel: #0c0c0f;--raise: #101014;--sel: #16161b;--line: #1d1d22;--line-strong: #2a2a31;--text: #d8d8dc;--dim: #8b8b94;--faint: #55555e;--accent: #ef4444;--accent-soft: rgba(239, 68, 68, .12);--ok: #4ade80;--font: "JetBrains Mono", ui-monospace, Consolas, monospace}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:12px;-webkit-font-smoothing:antialiased}::selection{background:#ef44444d}.accent{color:var(--accent)}.mono{font-size:11.5px}mark{background:#ef444447;color:inherit;padding:0 1px}button{font-family:inherit}:focus-visible{outline:1px solid var(--accent);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#232329;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#2f2f37}.login-page{height:100%;display:grid;place-items:center}.login-card{display:flex;flex-direction:column;gap:12px;width:320px;padding:28px;background:var(--panel);border:1px solid var(--line)}.login-card h1{font-size:16px;font-weight:700;text-align:center;margin-bottom:10px}.login-card input{padding:9px 11px}.login-card button{padding:9px;background:var(--accent);color:#fff;border:none;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:background .12s ease}.login-card button:hover{background:#dc2f2f}.login-card button:disabled{opacity:.6}.login-error{color:var(--accent);font-size:11px;text-align:center}.app-shell{height:100%;display:flex;overflow:hidden}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar{width:200px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);padding:12px 8px;overflow-y:auto}.logo{font-size:13px;font-weight:700;padding:2px 8px 16px;letter-spacing:0}.sidebar-heading{font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:0 8px 6px}.facets{display:flex;flex-direction:column}.facet{display:flex;align-items:center;gap:8px;width:100%;padding:4px 8px;background:none;border:none;color:var(--dim);font-size:11.5px;text-align:left;cursor:pointer;transition:background .1s ease,color .1s ease}.facet:hover{background:var(--raise);color:var(--text)}.facet.active{background:var(--raise);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.facet-dot{width:6px;height:6px;flex-shrink:0}.facet-dot.all{background:var(--faint)}.facet-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facet-count{font-size:10px;font-variant-numeric:tabular-nums;color:var(--faint)}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);padding:8px 12px;display:flex;flex-direction:column;gap:7px}.toolbar-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}input,select{background:var(--bg-deep);color:var(--text);border:1px solid var(--line);padding:6px 9px;font-family:inherit;font-size:11.5px;outline:none;transition:border-color .12s ease}input:hover,select:hover{border-color:var(--line-strong)}input:focus,select:focus{border-color:#ef444499}input::placeholder{color:var(--faint)}.search-wrap{position:relative;flex:1;min-width:220px;max-width:420px}.search-main{width:100%;padding-right:30px}.search-kbd{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--faint);background:var(--panel);border:1px solid var(--line);padding:0 5px;pointer-events:none}input[type=search]:not(.search-main){width:190px}input[type=datetime-local]{font-size:11px;padding:5px 7px}.range-sep{color:var(--faint)}.live-toggle{display:flex;align-items:center;gap:6px;padding:6px 11px;background:var(--bg-deep);border:1px solid var(--line);color:var(--dim);font-family:inherit;font-size:11px;font-weight:500;cursor:pointer;transition:border-color .12s ease,color .12s ease}.live-toggle:hover{border-color:var(--line-strong);color:var(--text)}.live-toggle .live-dot{width:6px;height:6px;background:var(--faint)}.live-toggle.on{color:var(--ok);border-color:#4ade8066}.live-toggle.on .live-dot{background:var(--ok);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.segmented{display:flex;border:1px solid var(--line);background:var(--bg-deep)}.seg{padding:4px 10px;background:none;border:none;border-right:1px solid var(--line);color:var(--dim);font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .1s ease,color .1s ease}.seg:last-child{border-right:none}.seg:hover{color:var(--text);background:var(--raise)}.seg.active{background:var(--accent-soft);color:#f87171}.chip{padding:5px 11px;background:none;border:1px solid var(--line);color:var(--dim);font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap;transition:border-color .12s ease,color .12s ease}.chip:hover{color:var(--text);border-color:var(--line-strong)}.toolbar-spacer{flex:1}.table-area{flex:1;min-height:0;display:flex;flex-direction:column}.table-head{display:grid;grid-template-columns:108px 118px 1fr;gap:10px;padding:5px 16px 5px 18px;border-bottom:1px solid var(--line);font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.list-container{flex:1;overflow-y:auto;position:relative;background:var(--bg)}.list-inner{position:relative;width:100%}.list-status{padding:48px 24px;text-align:center;color:var(--faint)}.list-status.error{color:var(--accent)}.row-wrapper{position:absolute;top:0;left:0;width:100%}.row{display:grid;grid-template-columns:108px 118px 1fr;gap:10px;align-items:center;height:100%;padding:0 16px;border-left:2px solid transparent;cursor:pointer;transition:background .08s ease}.row:hover{background:var(--raise)}.row.selected{background:var(--sel);box-shadow:inset 0 0 0 1px #ef444459}.cell-time{display:flex;align-items:baseline;gap:5px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap}.cell-day{display:inline-block;width:34px;font-size:9.5px;color:var(--faint)}.cell-category{min-width:0}.cat-tag{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:500}.cat-tag.clickable{cursor:pointer}.cat-tag.clickable:hover{text-decoration:underline;text-underline-offset:3px}.cell-message{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.msg-body{color:var(--text)}.loading-row{display:flex;align-items:center;color:var(--faint);cursor:default;border-left:none}.skeletons{padding:4px 16px}.skeleton-row{display:grid;grid-template-columns:108px 118px 1fr;gap:10px;align-items:center;height:28px}.sk{display:inline-block;height:9px;background:var(--raise);animation:shimmer 1.2s ease-in-out infinite}.sk-time{width:72px}.sk-cat{width:80px}.sk-msg{width:60%}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}.statusbar{display:flex;align-items:center;gap:14px;height:26px;padding:0 12px;background:var(--panel);border-top:1px solid var(--line);font-size:10.5px;color:var(--dim);white-space:nowrap;overflow:hidden}.statusbar-count{color:var(--text);font-variant-numeric:tabular-nums}.statusbar-item{color:var(--dim)}.statusbar-item.live{color:var(--ok)}.statusbar-spacer{flex:1}.statusbar-keys{color:var(--faint)}.statusbar-keys kbd{font-family:inherit;font-size:10px;color:var(--dim);background:var(--bg-deep);border:1px solid var(--line);padding:0 4px}.drawer{width:380px;flex-shrink:0;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.drawer-head{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.drawer-color{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--dim)}.row-dot{width:8px;height:8px;flex-shrink:0;box-shadow:0 0 0 1px var(--line-strong)}.drawer-close{margin-left:auto;background:none;border:none;color:var(--dim);font-size:12px;cursor:pointer;padding:3px 7px;transition:background .1s ease,color .1s ease}.drawer-close:hover{background:var(--raise);color:var(--text)}.drawer-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:11px;align-items:flex-start}.drawer-date{font-size:10.5px;color:var(--faint)}.drawer-title{font-size:12.5px;font-weight:700}.drawer-message{align-self:stretch;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:11.5px;line-height:1.6;background:var(--bg-deep);border:1px solid var(--line);padding:9px 11px}.drawer-meta{align-self:stretch;display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:baseline}.drawer-meta dt{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.drawer-meta dd{word-break:break-all;font-size:11.5px}.drawer-section{font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.drawer-data{align-self:stretch;background:var(--bg-deep);border:1px solid var(--line);padding:9px;font-size:11px;line-height:1.55;overflow-x:auto}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.admin-root{height:100%;display:flex;flex-direction:column;overflow:hidden}.admin-root>.app-shell{flex:1;min-height:0}.admin-nav{display:flex;align-items:stretch;height:30px;flex-shrink:0;background:var(--bg-deep);border-bottom:1px solid var(--line)}.admin-logo{display:flex;align-items:center;padding:0 14px 0 12px;font-size:12px;font-weight:700;border-right:1px solid var(--line)}.admin-tab{display:flex;align-items:center;gap:6px;padding:0 13px;background:none;border:none;border-right:1px solid var(--line);color:var(--dim);font-size:11.5px;cursor:pointer;transition:color .1s ease,background .1s ease}.admin-tab:hover{background:var(--panel);color:var(--text)}.admin-tab.active{background:var(--panel);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.admin-tab-index{font-size:9.5px;color:var(--faint)}.admin-tab.active .admin-tab-index{color:var(--accent)}.soon{margin:40px auto;max-width:520px;padding:24px;background:var(--panel);border:1px solid var(--line)}.soon h2{font-size:15px;font-weight:700}.soon-tag{margin:4px 0 14px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.soon ul{list-style:none;display:flex;flex-direction:column;gap:7px}.soon li{color:var(--dim);font-size:11.5px;padding-left:14px;position:relative}.soon li:before{content:"▸";position:absolute;left:0;color:var(--faint)}.shop-body{flex:1;min-height:0;overflow-y:auto}.shop-page{padding:12px;display:flex;flex-direction:column;gap:12px}.shop-page.tight{height:100%;padding:0;gap:0}.sidebar-heading.spaced{padding-top:14px}.banner{margin:0 12px;padding:8px 10px;background:var(--raise);border-left:2px solid var(--accent);color:var(--dim);font-size:11.5px}.banner.error{color:#f0a0a0}.banner code{color:var(--text)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.tile{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:var(--panel)}.tile-label{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.tile-value{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.accent-tile .tile-value{color:var(--accent)}.tile-hint{font-size:10.5px;color:var(--dim)}.panel{background:var(--panel);border:1px solid var(--line);padding:10px 12px 12px}.panel-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.panel-head h2{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.panel-hint{font-size:10px;color:var(--faint)}.panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,640px));justify-content:start;gap:12px}.panel.wide{grid-column:1 / -1}.chart{display:flex;gap:8px}.chart-scale{display:flex;flex-direction:column;justify-content:space-between;padding-bottom:16px;font-size:9.5px;color:var(--faint);text-align:right;min-width:34px}.chart-plot{flex:1;display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--line-strong)}.chart-bar{flex:1;min-width:4px;max-width:64px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;padding:0;background:none;border:none;position:relative;cursor:default}.chart-bar.clickable{cursor:pointer}.chart-bar-fill{background:var(--bar-color, var(--accent));opacity:.5;transition:opacity .1s ease;min-height:0}.chart-bar:hover .chart-bar-fill,.chart-bar.active .chart-bar-fill{opacity:1}.chart-bar-label{position:absolute;bottom:-16px;left:50%;transform:translate(-50%);font-size:9px;color:var(--faint);white-space:nowrap}.chart-empty{padding:18px 0;color:var(--faint);font-size:11.5px;text-align:center}.chart-plot+.chart-empty{padding:0}.panel .chart{padding-bottom:16px}.barlist{display:flex;flex-direction:column}.barlist-row{position:relative;display:flex;align-items:center;gap:8px;height:26px;padding:0 8px;font-size:11.5px;overflow:hidden}.barlist-row.clickable{cursor:pointer}.barlist-row.clickable:hover{background:var(--raise)}.barlist-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent-soft);z-index:0}.barlist-label,.barlist-sub,.barlist-value{position:relative;z-index:1}.barlist-label{flex:1 1 auto;min-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barlist-sub{flex:0 1 auto;min-width:0;color:var(--faint);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barlist-value{font-variant-numeric:tabular-nums;color:var(--text);min-width:54px;text-align:right}.table-toolbar{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.result-count{font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}.check{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dim);cursor:pointer}.check input{accent-color:var(--accent)}.ghost-btn{background:none;border:1px solid var(--line-strong);color:var(--dim);padding:4px 9px;font-size:11px;cursor:pointer}.ghost-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.ghost-btn:disabled{opacity:.4;cursor:default}.segmented.small .seg{font-size:10.5px;padding:3px 8px}.data-table{flex:1;min-height:0;display:flex;flex-direction:column}.data-head,.data-row{display:grid;align-items:center;gap:10px;padding:0 12px}.data-head{height:24px;border-bottom:1px solid var(--line);background:var(--bg-deep);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);flex-shrink:0}.data-body{flex:1;min-height:0;overflow-y:auto}.data-body.short{max-height:320px}.data-row{height:28px;border-bottom:1px solid rgba(29,29,34,.6);font-size:11.5px}.data-row:hover{background:var(--sel)}.data-row.clickable{cursor:pointer}.data-row.muted{color:var(--faint)}.data-table.sales .data-head,.data-table.sales .data-row{grid-template-columns:132px 86px minmax(130px,2fr) minmax(110px,1.3fr) 74px 88px}.data-table.products .data-head,.data-table.products .data-row{grid-template-columns:minmax(150px,2fr) 92px 68px 88px 84px 92px 128px}.data-table.players .data-head,.data-table.players .data-row{grid-template-columns:minmax(110px,1.4fr) minmax(150px,2fr) 68px 106px 96px 76px 118px 118px}.data-table.promos .data-head,.data-table.promos .data-row{grid-template-columns:minmax(100px,1fr) 74px 70px 88px 96px 68px 118px 88px}.data-table.payments .data-head,.data-table.payments .data-row{grid-template-columns:138px minmax(110px,220px) minmax(140px,560px) 96px 1fr}.cell-mono{font-variant-numeric:tabular-nums;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-strong,.cell-dim,.cell-type,.cell-promo,.cell-state{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-strong{color:var(--text)}.cell-dim{color:var(--faint)}.cell-promo{color:var(--accent);font-size:11px}.cell-state{color:var(--faint)}.cell-state.on{color:var(--ok)}.num{text-align:right;justify-self:stretch}.cell-link{background:none;border:none;padding:0;color:var(--text);font-family:inherit;font-size:inherit;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-link:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.cell-link.dim{color:var(--dim)}.sentinel{height:32px;display:grid;place-items:center;color:var(--faint);font-size:11px}.sync-progress{font-size:11px;color:var(--accent)}.sync-error{font-size:11px;color:#f0a0a0}.ok-dot{color:var(--ok)}.ko-dot{color:var(--accent)}.drawer.wide{width:460px}.drawer.wide .drawer-body>*{align-self:stretch}.drawer .chart{padding-bottom:16px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip.static{cursor:default}.mini-table{display:flex;flex-direction:column;border-top:1px solid var(--line)}.mini-row{display:grid;grid-template-columns:110px minmax(0,1fr) 70px;gap:8px;align-items:center;height:24px;font-size:11px;border-bottom:1px solid rgba(29,29,34,.6)}.mini-row .num{text-align:right}.detail-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.detail-title{font-size:17px;font-weight:700}.detail-sub{color:var(--faint);font-size:11px}.detail-badge{padding:2px 8px;border:1px solid var(--line-strong);color:var(--dim);font-size:10.5px}.detail-badge sup{font-size:8px}.detail-foot{color:var(--faint);font-size:11px}.panel.tablepanel{padding:0}.panel.tablepanel .table-toolbar{border-bottom:1px solid var(--line)}.data-body.tall{max-height:520px}.data-row.flagged{box-shadow:inset 2px 0 0 var(--accent)}.data-table.player-sales .data-head,.data-table.player-sales .data-row{grid-template-columns:150px 96px minmax(160px,620px) 90px 110px 1fr}.data-table.product-buyers .data-head,.data-table.product-buyers .data-row{grid-template-columns:minmax(120px,240px) minmax(160px,420px) 80px 100px 150px 1fr}.data-table.profiles .data-head,.data-table.profiles .data-row{grid-template-columns:minmax(120px,1.4fr) 110px 70px 100px 90px 110px 80px 116px 120px}.data-table.cohorts .data-head,.data-table.cohorts .data-row{grid-template-columns:minmax(80px,1fr) 90px 90px 80px 80px 80px}.month-pill{display:inline-flex;align-items:center;gap:7px;padding:2px 8px;background:var(--accent-soft);border:1px solid var(--accent);color:var(--text);font-family:inherit;font-size:10.5px;cursor:pointer}.month-pill:hover{background:#ef444433}.month-pill-x{color:var(--accent)}.data-table.months .data-head,.data-table.months .data-row{grid-template-columns:minmax(110px,200px) 80px 100px 96px 96px 96px 100px 1fr}.data-table.product-buyers .data-head,.data-table.product-buyers .data-row{grid-template-columns:minmax(120px,220px) minmax(160px,400px) 90px 90px 150px 150px 80px 1fr}.data-table.package-buyers .data-head,.data-table.package-buyers .data-row{grid-template-columns:minmax(140px,260px) 90px 110px 100px 160px 160px 1fr}.link-row{display:flex;align-items:center;gap:10px;font-size:11.5px}.link-row input[type=search]{flex:1;max-width:380px}.cell-link.strong{font-weight:700}.link-search{display:flex;flex-direction:column;gap:8px}.mini-row.clickable{cursor:pointer}.mini-row.clickable:hover{background:var(--raise)}.mini-table .mini-row:not(.wide){grid-template-columns:minmax(110px,1fr) minmax(160px,2fr) 70px 110px}.mini-row.wide{grid-template-columns:150px minmax(0,1fr) 90px}.tiles.inner{border:none;margin-bottom:10px}.detail-foot a{color:var(--accent)}.boot{height:100%;display:grid;place-items:center;color:var(--faint);font-size:11.5px}.login-discord{display:block;padding:9px;background:#5865f2;color:#fff;border:none;font-size:12px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}.login-discord:hover{background:#4752c4}.login-note{font-size:10.5px;line-height:1.5;color:var(--faint);text-align:center}.login-note code{color:var(--dim)}.login-fallback{display:flex;flex-direction:column;gap:10px}.login-sep{margin-top:4px;padding-top:10px;border-top:1px solid var(--line);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);text-align:center}.admin-nav-spacer{flex:1;border-right:1px solid var(--line)}.admin-who{display:flex;align-items:center;gap:7px;padding:0 11px;border-right:1px solid var(--line);font-size:11px;color:var(--dim)}.admin-who-avatar{width:16px;height:16px;object-fit:cover}.admin-who-avatar.placeholder{display:grid;place-items:center;background:var(--raise);color:var(--dim);font-size:9px;font-weight:700}.admin-who-name{color:var(--text)}.admin-who-tag{padding:1px 5px;background:var(--accent-soft);color:var(--accent);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.admin-who-tag.warn{background:#eab30824;color:#eab308}.admin-tab.logout{color:var(--faint)}.admin-tab.logout:hover{color:var(--accent)}.access-help{padding:0 12px 8px;font-size:10.5px;line-height:1.55;color:var(--faint)}.access-help strong{color:var(--dim);font-weight:500}.access-empty{padding:16px 12px;color:var(--faint);font-size:11.5px}.access-empty code{color:var(--dim)}.access-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.access-search{width:320px;padding:6px 9px;background:var(--bg-deep);border:1px solid var(--line);color:var(--text);font-family:inherit;font-size:11.5px}.access-search:focus{border-color:var(--line-strong);outline:none}.matrix-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel)}.matrix{border-collapse:collapse;width:100%;font-size:11px}.matrix th,.matrix td{border-bottom:1px solid var(--line);padding:0 8px;height:28px;text-align:center;white-space:nowrap}.matrix thead th{position:sticky;top:0;background:var(--bg-deep);color:var(--faint);font-size:9.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;z-index:1}.matrix-group{border-left:1px solid var(--line);color:var(--dim)}.matrix-perm{border-left:1px solid var(--line);min-width:92px;cursor:help}.matrix th.matrix-name,.matrix td.matrix-name{text-align:left;min-width:300px;position:sticky;left:0;background:var(--panel);z-index:2}.matrix thead .matrix-name{background:var(--bg-deep);z-index:3}.matrix tbody tr:hover td,.matrix tbody tr:hover .matrix-name{background:var(--sel)}.matrix tbody tr.saving{opacity:.55}.matrix-cell{border-left:1px solid var(--line)}.matrix-cell input{accent-color:var(--accent);cursor:pointer}.matrix th.matrix-actions,.matrix td.matrix-actions{text-align:right;min-width:76px}.matrix.sessions td{color:var(--dim)}.matrix-legend{display:flex;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid var(--line);color:var(--faint);font-size:10.5px}.matrix-legend .tri{margin-left:10px}.matrix-legend .tri:first-child{margin-left:0}.tri{width:20px;height:20px;display:inline-grid;place-items:center;background:none;border:1px solid var(--line-strong);color:var(--faint);font-size:12px;line-height:1;cursor:pointer}.tri.inherited{border-color:var(--line);color:var(--dim)}.tri-allow{border-color:var(--ok);color:var(--ok)}.tri-deny{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.role-dot{display:inline-block;width:7px;height:7px;margin-right:7px;vertical-align:middle}.role-name{color:var(--text)}.role-id{margin-left:8px;color:var(--faint);font-size:10px}.role-tag{margin-left:8px;padding:1px 5px;background:var(--raise);color:var(--dim);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.role-tag.warn{background:#eab30824;color:#eab308}.role-chip{margin-left:6px;font-size:10px}.member-roles{margin-left:4px}.member-avatar{width:16px;height:16px;margin-right:7px;object-fit:cover;vertical-align:middle}.member-avatar.placeholder{display:inline-grid;place-items:center;background:var(--raise);color:var(--dim);font-size:9px;font-weight:700}.member-avatar.big{width:40px;height:40px;font-size:16px}.member-results{display:flex;flex-direction:column;gap:1px}.member-hit{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--raise);border:none;border-left:2px solid transparent;color:var(--text);font-family:inherit;font-size:11.5px;text-align:left;cursor:pointer}.member-hit:hover:not(:disabled){border-left-color:var(--accent);background:var(--sel)}.member-hit:disabled{opacity:.5;cursor:default}.member-hit.static{cursor:default}.member-name{flex:1}.member-id{color:var(--faint);font-size:10.5px}.my-identity{display:flex;align-items:center;gap:12px}.my-name{font-size:14px;font-weight:700}.my-meta{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--faint);font-size:10.5px}.my-list{display:flex;flex-direction:column;gap:1px;list-style:none}.my-list li{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--raise);font-size:11.5px}.my-list li.off,.my-list li.off .role-name{color:var(--faint)}.my-list .role-id{margin-left:auto}.access-search.narrow{width:230px}.access-toolbar .toolbar-spacer{flex:1}.scope-badge{display:block;margin:2px auto 0;padding:0 4px;max-width:88px;background:none;border:1px solid var(--line);color:var(--faint);font-family:inherit;font-size:9px;letter-spacing:.04em;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-badge:hover{color:var(--text);border-color:var(--accent)}.scope-badge.narrowed{border-color:var(--accent);color:var(--accent)}.tri-partial{border-color:#eab308;color:#eab308}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#050506b8}.modal{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-strong);box-shadow:0 18px 60px #0009}.scope-modal{width:min(760px,92vw);max-height:86vh}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.modal-sub{margin-top:3px;color:var(--faint);font-size:10.5px}.modal-close{margin-left:auto;background:none;border:none;color:var(--faint);font-size:12px;cursor:pointer}.modal-close:hover{color:var(--accent)}.modal-foot{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}.primary-btn{padding:5px 12px;background:var(--accent);border:1px solid var(--accent);color:#fff;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer}.primary-btn:hover{background:#dc2626}.scope-summary{color:var(--dim);font-size:10.5px}.scope-modes{display:flex;align-items:center;gap:0;padding:10px 14px 0}.scope-modes .seg{border:1px solid var(--line-strong)}.scope-modes .seg+.seg{border-left:none}.scope-modes .inherit{margin-left:auto}.scope-note{padding:12px 14px;color:var(--dim);font-size:11.5px}.scope-list{flex:1;min-height:0;overflow-y:auto;margin:10px 14px 0;border:1px solid var(--line)}.scope-cat+.scope-cat{border-top:1px solid var(--line)}.scope-row{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg-deep)}.scope-row.on{background:var(--raise)}.scope-chevron{width:16px;background:none;border:none;color:var(--faint);font-family:inherit;font-size:10px;cursor:pointer}.scope-chevron:disabled{cursor:default;opacity:.4}.scope-name{font-size:11.5px}.scope-meta{color:var(--faint);font-size:10px}.scope-row .scope-meta{margin-left:auto}.scope-titles{display:flex;flex-direction:column;padding:2px 8px 6px 40px}.scope-title{display:flex;align-items:center;gap:8px;padding:3px 6px;background:none;border:none;color:var(--dim);font-family:inherit;font-size:11px;text-align:left;cursor:pointer}.scope-title:hover{background:var(--sel)}.scope-title.on{color:var(--text)}.scope-title-name{flex:1}.scope-meta.trunc{padding:4px 6px;line-height:1.45}.scope-manual{display:flex;align-items:center;gap:8px;padding:10px 14px 0;flex-wrap:wrap}.statusbar-item.restricted{color:var(--accent);cursor:help}
