:root{--lh-accent: #2aa3e6;--lh-accent-soft: rgba(42, 163, 230, .13);--lh-accent-line: rgba(42, 163, 230, .38);--lh-bg: #0c0d11;--lh-panel: #15171d;--lh-panel-2: #1b1e26;--lh-panel-hover: #232732;--lh-border: #2b303b;--lh-border-soft: #21252e;--lh-text: #f2f5f9;--lh-text-muted: #a5adbb;--lh-text-dim: #6d7684;--lh-good: #2fd6c0;--lh-info: #4296f0;--lh-warn: #f5c84a;--lh-alert: #f08a3c;--lh-bad: #e8478f;--lh-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--lh-font-display: "Barlow Condensed", "Arial Narrow", -apple-system, sans-serif;--lh-font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--lh-radius: 10px;--lh-radius-pill: 999px;--lh-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 16px 44px rgba(0, 0, 0, .4);--lh-space-1: 4px;--lh-space-2: 8px;--lh-space-3: 12px;--lh-space-4: 16px;--lh-space-5: 24px;--lh-space-6: 32px}:root{--bg: var(--lh-bg);--panel: var(--lh-panel);--panel-2: var(--lh-panel-2);--panel-hover: var(--lh-panel-hover);--border: var(--lh-border);--border-soft: var(--lh-border-soft);--track: #2f3440;--text: var(--lh-text);--text-muted: var(--lh-text-muted);--text-dim: var(--lh-text-dim);--accent: var(--lh-accent);--accent-soft: var(--lh-accent-soft);--accent-line: var(--lh-accent-line);--g-s: var(--lh-good);--g-a: var(--lh-info);--g-b: var(--lh-warn);--g-c: var(--lh-alert);--g-d: var(--lh-bad);--green: var(--lh-info);--yellow: var(--lh-warn);--red: var(--lh-bad);--shadow: var(--lh-shadow);--font-display: var(--lh-font-display)}*{box-sizing:border-box}body{margin:0;background:var(--lh-bg);color:var(--lh-text);font-family:var(--lh-font-body)}.app{max-width:1060px;margin:0 auto;padding:24px 20px 80px}.loading,.error{padding:60px 0;text-align:center;color:var(--lh-text-dim)}.error{color:var(--lh-bad)}.error-inline{color:var(--lh-bad);font-size:13px}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.head h1{font-family:var(--lh-font-display);font-style:italic;letter-spacing:.06em;font-size:26px;margin:0}.sub{color:var(--lh-text-dim);font-size:13px;margin:4px 0 0}.gate-card{max-width:420px;margin:12vh auto;padding:28px;text-align:center;background:var(--lh-panel);border:1px solid var(--lh-border);border-radius:var(--lh-radius)}.notice{background:var(--lh-accent-soft);border:1px solid var(--lh-accent-line);border-radius:var(--lh-radius);padding:12px 16px;font-size:14px;margin-bottom:14px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--lh-border);margin-bottom:18px}.tab{background:none;border:none;color:var(--lh-text-muted);font:inherit;font-size:14px;padding:9px 14px;cursor:pointer;border-bottom:2px solid transparent}.tab:hover{color:var(--lh-text)}.tab.active{color:var(--lh-accent);border-bottom-color:var(--lh-accent);font-weight:600}.bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:var(--lh-text-dim);font-size:13px}.btn{background:var(--lh-accent);color:#06070a;border:none;font:inherit;font-size:13px;font-weight:700;padding:8px 16px;border-radius:var(--lh-radius-pill);cursor:pointer}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--lh-text-muted);border:1px solid var(--lh-border);font-weight:600}.btn.ghost:hover{color:var(--lh-text);background:var(--lh-panel-hover)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--lh-text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--lh-border)}td{padding:10px;border-bottom:1px solid var(--lh-border);vertical-align:top}tr.dim td,.dim{color:var(--lh-text-dim)}.small{font-size:12px}.row-actions{text-align:right;white-space:nowrap}.row-actions .btn{margin-left:6px}.you{color:var(--lh-accent);font-size:11px;font-weight:700}.chip{display:inline-block;background:var(--lh-panel-hover);border:1px solid var(--lh-border);border-radius:var(--lh-radius-pill);padding:2px 9px;font-size:12px;margin:1px 4px 1px 0;white-space:nowrap}.chip.grant{border-color:var(--lh-accent-line);color:var(--lh-accent)}.chip.deny{border-color:var(--lh-bad);color:var(--lh-bad)}.chip button{background:none;border:none;color:inherit;cursor:pointer;padding:0 0 0 6px;font-size:11px}.chips{display:flex;flex-wrap:wrap}.editor{background:var(--lh-panel);border:1px solid var(--lh-border);border-radius:var(--lh-radius);padding:20px}.editor .row{margin-bottom:14px}.editor label{display:block;color:var(--lh-text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.editor input:not([type=checkbox]),.editor select{background:var(--lh-bg);color:var(--lh-text);border:1px solid var(--lh-border);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;min-width:200px}.editor input:focus,.editor select:focus{outline:none;border-color:var(--lh-accent)}input[type=checkbox]{accent-color:var(--lh-accent);width:15px;height:15px;flex:0 0 auto;margin:0;cursor:pointer}.checks{display:flex;flex-wrap:wrap;gap:6px 18px}.checks.scroll{max-height:180px;overflow-y:auto}.check{display:inline-flex!important;align-items:center;gap:8px;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;color:var(--lh-text)!important;cursor:pointer}.check span{white-space:nowrap}.hint{color:var(--lh-text-dim);font-size:12px;margin-top:10px}.actions{display:flex;gap:8px;margin-top:18px}.grant-editor .grant-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.grant-editor .grant-add input{min-width:160px}.cap-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.cap-group{border:1px solid var(--lh-border);border-radius:var(--lh-radius);padding:10px 12px}.cap-group h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--lh-accent)}.cap-group .check{display:flex!important;margin-bottom:4px}.matrix-wrap{overflow-x:auto}.matrix .cell{text-align:center;color:var(--lh-good, #35d07f)}.matrix .group td{background:var(--lh-panel);color:var(--lh-accent);font-size:11px;text-transform:uppercase;letter-spacing:.1em;padding:6px 10px}.matrix th.rot{white-space:nowrap}.diff{background:var(--lh-bg);border:1px solid var(--lh-border);border-radius:8px;padding:10px;font-size:12px;overflow-x:auto;max-height:300px}.cap-label{display:inline-flex;align-items:baseline;gap:7px;flex-wrap:wrap}.cap-id{font-family:var(--lh-font-mono, ui-monospace, monospace);font-size:11px;color:var(--lh-text-dim)}.cap-desc{display:block;font-size:11.5px;color:var(--lh-text-dim);margin-top:1px;white-space:normal}.chip.scoped{border-color:var(--lh-accent-line);color:var(--lh-accent);font-size:10.5px;padding:1px 7px}.check.stack{align-items:flex-start}.check.stack>span{white-space:normal}.checks.stacked{flex-direction:column;gap:8px}.checks.stacked .check{align-items:flex-start}.summary{display:grid;gap:10px}.summary-app h4{margin:0 0 3px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--lh-accent)}.summary-app p{margin:0;font-size:13.5px;line-height:1.55;color:var(--lh-text-muted)}.summary-denies{margin:0;font-size:12.5px;color:var(--lh-bad)}.summary-disabled{margin:0;font-size:13px;color:var(--lh-bad)}.audit-changes{margin:6px 0 0;padding-left:18px;color:var(--lh-text-dim);font-size:12.5px}.audit-changes li{margin:2px 0}.matrix .overrides{max-width:220px;white-space:normal}details.raw{margin-top:8px}details.raw summary{cursor:pointer;color:var(--lh-text-dim);font-size:12px}details.raw .chips{margin-top:8px}@media(max-width:700px){.head{flex-direction:column;align-items:flex-start}.editor input:not([type=checkbox]),.editor select{min-width:0;width:100%}}
