@font-face{font-family:Nunito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/Nunito-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/Nunito-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#f2f2f2;--surface:#fff;--surface-2:#f7f7f7;--ink:#2b2d2d;--muted:#6e7070;--line:#e4e4e4;--line-strong:#d5d5d5;--brand:#2b2d2d;--brand-ink:#fff;--brand-tint:#ededed;--brand-tint-2:#e0e0e0;--accent:#ff5722;--accent-hover:#e8460f;--focus-ring:#ff572252;--ok:#1d7f55;--ok-bg:#e1f3ea;--warn:#8f5b00;--warn-bg:#fcefd2;--bad:#d92d20;--bad-bg:#fdecea;--info:#2f5fb3;--info-bg:#e3ecfa;--shadow:0 12px 40px #2b2d2d2e;--scrim:#2b2d2d52;--font-ui:"Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#161717;--surface:#202222;--surface-2:#272929;--ink:#eceded;--muted:#9ea1a1;--line:#313434;--line-strong:#444848;--brand:#eceded;--brand-ink:#161717;--brand-tint:#2e3030;--brand-tint-2:#3b3e3e;--accent:#ff6a3d;--accent-hover:#ff8460;--ok:#53c892;--ok-bg:#16332a;--warn:#e9b24d;--warn-bg:#3a2d12;--bad:#ff8383;--bad-bg:#3c1b1e;--info:#7fa8f0;--info-bg:#1b2a47;--shadow:0 12px 40px #00000080;--scrim:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#161717;--surface:#202222;--surface-2:#272929;--ink:#eceded;--muted:#9ea1a1;--line:#313434;--line-strong:#444848;--brand:#eceded;--brand-ink:#161717;--brand-tint:#2e3030;--brand-tint-2:#3b3e3e;--accent:#ff6a3d;--accent-hover:#ff8460;--ok:#53c892;--ok-bg:#16332a;--warn:#e9b24d;--warn-bg:#3a2d12;--bad:#ff8383;--bad-bg:#3c1b1e;--info:#7fa8f0;--info-bg:#1b2a47;--shadow:0 12px 40px #00000080;--scrim:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--font-ui);-webkit-font-smoothing:antialiased;margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select{font-family:inherit}.btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-weight:700;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.btn.primary:hover{filter:brightness(1.15)}.btn.danger{background:var(--bad);color:var(--brand-ink);border-color:var(--bad)}.btn.ghost{background:0 0;border-color:#0000}.confirm{width:100%}.confirm p{margin:0 0 16px;font-weight:600}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.btn.danger-text{color:var(--bad)}.login-form{justify-content:center;align-items:center;width:100%;height:100vh;transition:all .3s;display:flex}.login-logo{width:200px;height:200px;margin:auto}.login-form>*{flex-direction:column;justify-content:center;align-items:center;width:90%;max-width:300px;display:flex}.input{border:2px solid var(--brand);width:280px;color:var(--brand);border-radius:3px;height:30px;margin-bottom:20px;padding:10px;font-size:20px}.button{cursor:pointer;background-color:var(--brand);width:300px;color:var(--brand-ink);text-transform:uppercase;border:none;border:2px solid var(--brand);border-radius:5px;justify-content:center;align-items:center;height:58px;padding:10px;font-size:15px;font-weight:700;transition:all .3s;display:flex;position:relative}.button>div{opacity:0;justify-content:center;align-items:center;width:300px;height:58px;transition:all .3s;display:flex;position:absolute}.button>div>div{width:30px}.button.is-loading>div{opacity:1}.button:hover{background-color:var(--surface);color:var(--brand)}.button svg{fill:var(--surface)!important}.button:hover svg{fill:var(--brand)!important}.button-inverted{background-color:var(--surface);color:var(--brand)}.error-message{color:var(--brand)}.pill{white-space:nowrap;background:var(--brand-tint);color:var(--muted);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.info{background:var(--info-bg);color:var(--info)}.modal{z-index:90;background:var(--scrim);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal .modal-content{background:var(--surface);width:90%;max-width:800px;max-height:80vh;color:var(--ink);box-shadow:var(--shadow);border-radius:12px;justify-content:center;align-items:center;padding:20px;display:flex;overflow-y:auto}.modal .modal-close{position:fixed;top:20px;right:20px}.drawer-layout{align-items:flex-start;min-height:100%;display:flex}.drawer-content{flex:1;min-width:0}.drawer{background:var(--surface);border-left:1px solid var(--line-strong);width:460px;height:100vh;box-shadow:var(--shadow);flex-direction:column;flex:none;margin:-20px -24px -96px 0;animation:.16s ease-out drawer-in;display:flex;position:sticky;top:0}.drawer-top{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 16px;display:flex}.drawer-top h2{overflow-wrap:anywhere;flex:1;margin:0;font-size:17px;font-weight:800}.drawer-body{flex:1;padding:16px;overflow:auto}.drawer-scrim{display:none}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.drawer{animation:none}}@media (width<=820px){.drawer{z-index:20;width:min(460px,100%);margin:0;position:fixed;top:0;bottom:0;right:0}.drawer-scrim{background:var(--scrim);z-index:19;display:block;position:fixed;inset:0}}.toasts{z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 32px);display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:12px;padding:9px 10px 9px 14px;font-weight:600;display:flex}.toast.error{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.toast button{background:var(--brand-tint);color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:6px;padding:4px 10px;font-weight:700}.toast button.toast-close{color:inherit;background:0 0;padding:2px 6px;font-size:18px;line-height:1}.otp-field{flex-direction:column;gap:4px;margin:0 0 12px;font-weight:700;display:flex}.otp-field input{border:1.5px solid var(--line-strong);background:var(--surface);width:100%;max-width:12ch;height:44px;color:var(--ink);font:600 20px/1 var(--font-mono);letter-spacing:.15em;border-radius:8px;padding:0 12px}.otp-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.otp-field small,.code-box small{color:var(--muted);font-weight:400}.code-box{border:1.5px solid var(--accent);background:var(--surface-2);border-radius:12px;margin:0 0 16px;padding:12px 14px}.code-box .code-title{margin:0 0 8px;font-weight:800}.code-box .code-line{align-items:center;gap:12px;margin-bottom:8px;display:flex}.code-box code{font:700 20px/1.2 var(--font-mono);letter-spacing:.08em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.code-box .code-list{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.code-box .code-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.code-box .code-list li span{overflow-wrap:anywhere;flex:12ch;min-width:0;font-weight:600}.code-box .code-list code{font-size:16px}.mfa-section{margin:0 0 20px}.mfa-section h3{margin:0 0 8px;font-size:15px;font-weight:800}.mfa-section p{margin:0 0 8px}.mfa-section .pill+.pill{margin-left:6px}.mfa-section .hint{color:var(--muted);font-size:13px}.mfa-section .btn:disabled{opacity:.5;cursor:not-allowed}.spinner{box-sizing:border-box;border:3px solid;border-right-color:#0000;border-radius:50%;animation:.8s linear infinite spinner-rotate;display:inline-block}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.flag{align-items:center;gap:8px;margin:0 0 8px;font-weight:700;display:flex}.impact{border:1.5px solid var(--warn);background:var(--warn-bg);color:var(--ink);border-radius:10px;margin:0 0 8px;padding:10px 12px;font-size:14px}.impact p{margin:0 0 6px;font-weight:700}.impact ul{margin:0;padding-left:18px}.impact li{margin:0 0 4px}.apis-wrap{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow-x:auto}.apis{box-shadow:none;margin:0}.apis th{white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding:9px 10px;font-size:12px;font-weight:800}.apis td{color:var(--ink);vertical-align:top;padding:9px 10px;font-size:14px}.apis tbody tr:hover{background:var(--surface-2)}.apis tbody tr.selected{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}.apis tbody tr:last-child td{border-bottom:0}.apis small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.apis .mono{font-family:var(--font-mono)}.apis .uri{overflow-wrap:anywhere;min-width:12rem}.apis .muted{color:var(--muted)}.apis .nowrap{white-space:nowrap}.apis .actions{text-align:right;white-space:nowrap}.apis .actions .btn{padding:5px 10px;font-size:13px}.apis .actions .btn+.btn{margin-left:6px}.api-form label{flex-direction:column;gap:4px;margin:0 0 14px;font-size:13px;font-weight:700;display:flex}.api-form input{border:1.5px solid var(--line-strong);background:var(--surface);height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px;font-weight:400}.api-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.api-form input:disabled{opacity:.6;cursor:not-allowed}.api-form small,.api-form .hint{color:var(--muted);font-size:12px;font-weight:400}.api-form .hint{margin:0 0 10px}.api-form .error-message{color:var(--bad);margin:0 0 10px;font-size:14px;font-weight:700}.api-form .btn:disabled{opacity:.5;cursor:not-allowed}.users-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.users-head .btn{white-space:nowrap;flex:none}.users-head h1{margin:0}.users-head .sub{color:var(--muted);margin:2px 0 0;font-size:13px}.users-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.users-toolbar input{border:1.5px solid var(--line-strong);background:var(--surface);min-width:min(18rem,100%);height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 12px}.users-toolbar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.seg{border:1px solid var(--line-strong);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border:0;align-items:center;gap:6px;padding:7px 12px;font-weight:700;display:inline-flex}.seg button+button{border-left:1px solid var(--line-strong)}.seg button[aria-pressed=true]{background:var(--brand);color:var(--brand-ink)}.seg .n{opacity:.75;font-size:12px}.users-table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow-x:auto}.users-table{box-shadow:none;margin:0}.users-table th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding:9px 10px;font-size:12px;font-weight:800}.users-table td{color:var(--ink);vertical-align:middle;padding:9px 10px;font-size:14px}.users-table tbody tr{cursor:pointer}.users-table tbody tr:hover{background:var(--surface-2)}.users-table tbody tr.selected{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}.users-table tbody tr:last-child td{border-bottom:0}.users-table .email{font:inherit;color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;margin-right:6px;padding:0;font-weight:700}.users-table .pill+.pill{margin-left:6px}.users-table .when{color:var(--muted);white-space:nowrap}.access{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);white-space:nowrap;border-radius:6px;padding:1px 7px;font-size:12px}.chip b{font-weight:800}.access .none{color:var(--muted);font-size:13px}.empty{color:var(--muted)}.panel-meta{color:var(--muted);margin:0 0 16px;font-size:13px}.panel-section{margin:0 0 20px}.panel-section h3{margin:0 0 8px;font-size:15px;font-weight:800}.panel-section .hint{color:var(--muted);margin:0 0 8px;font-size:13px}.credentials label{flex-direction:column;gap:4px;margin:0 0 10px;font-size:13px;font-weight:700;display:flex}.credentials input,.rights>input{border:1.5px solid var(--line-strong);background:var(--surface);height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px;font-weight:400}.credentials input:focus,.rights>input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.panel-section .btn:disabled{opacity:.5;cursor:not-allowed}.rights>input{width:100%;margin-bottom:4px}.rights fieldset{border:0;min-width:0;margin:0;padding:0}.rights .api{border:1px solid var(--line);border-radius:10px;margin:8px 0;overflow:hidden}.rights .api-head{background:var(--surface-2);align-items:center;gap:8px;padding:2px 6px 2px 10px;display:flex}.rights .fold{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:7px 0;font-weight:800;display:flex}.rights .fold:before{content:"▸";color:var(--muted)}.rights .fold[aria-expanded=true]:before{content:"▾"}.rights .count{color:var(--muted);font-size:12px;font-weight:600}.rights .group h4{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);margin:0;padding:8px 10px 2px;font-size:11px;font-weight:800}.rights .right{border-top:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:10px;padding:7px 10px;display:flex}.rights .group h4+.right{border-top:0}.rights .right:hover{background:var(--surface-2)}.rights .right input{width:16px;height:16px;accent-color:var(--accent);flex:none;margin:3px 0 0}.rights .text{flex-direction:column;min-width:0;display:flex}.rights .name{font-size:14px;font-weight:700}.rights code{font:12px/1.4 var(--font-mono);color:var(--muted);overflow-wrap:anywhere}.rights .via{color:var(--ok);font-size:12px}.rights .via code{color:inherit}.rights fieldset:disabled .right{cursor:progress;opacity:.7}.rights-tools{flex-wrap:wrap;gap:8px;margin:4px 0 8px;display:flex;position:relative}.menu{position:static}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:"▾";color:var(--muted);font-size:11px}.menu-list{z-index:5;background:var(--surface);border:1px solid var(--line-strong);max-height:20rem;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.menu-list button{width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 8px;display:flex}.menu-list button:hover{background:var(--surface-2)}.menu-list small{color:var(--muted);font-size:12px}.menu-list .replace{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:8px;margin-bottom:4px;padding:6px 8px 8px;font-size:13px;font-weight:700;display:flex}.menu-list .replace input{accent-color:var(--accent)}.menu-list .hint{margin:6px 8px}.users-table .pick{width:1%;padding-right:0}.users-table .pick input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;vertical-align:middle;margin:0}.selection-bar{box-shadow:var(--shadow);border:1px solid var(--line-strong);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:8px 12px;display:flex;position:sticky;bottom:16px}.selection-bar b{margin-right:auto}.password-tools{gap:8px;margin:-4px 0 8px;display:flex}.credentials .starting label{cursor:pointer;flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}.credentials .starting input{width:16px;height:16px;accent-color:var(--accent);flex:none;margin:3px 0 0}.credentials .starting small{color:var(--muted)}.perm-api{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin:0 0 12px;overflow-x:auto}.perm-api .fold{background:var(--surface-2);width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;border:0;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.perm-api .fold:disabled{cursor:default}.perm-api .fold:before{content:"▸";color:var(--muted)}.perm-api .fold[aria-expanded=true]:before{content:"▾"}.perm-api .fold .name{font-family:var(--font-mono);font-weight:800}.perm-api .fold .count{color:var(--muted);font-size:12px}.perms{box-shadow:none;margin:0}.perms th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:8px 12px;font-size:12px;font-weight:800}.perms td{color:var(--ink);vertical-align:top;overflow-wrap:break-word;padding:8px 12px;font-size:14px}.perms tbody tr:last-child td{border-bottom:0}.perms tr.group th{background:var(--surface-2);padding-top:12px;font-size:11px}.perms .label{font-weight:700}.perms code{font:13px/1.4 var(--font-mono);overflow-wrap:break-word}.perms small{color:var(--muted);font-size:12px;display:block}.perms .muted{color:var(--muted)}.perms .holders{text-align:left;padding:3px 8px;font-weight:600}.perms .holders:after{content:"▾";color:var(--muted);font-size:11px}.perms .holders[aria-expanded=true]:after{content:"▴"}.holders-row td{background:var(--surface-2)}.holder-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.holder-list li{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:2px 4px 2px 9px;font-size:13px;display:inline-flex}.holder-list button{width:22px;height:22px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:15px;line-height:1}.holder-list button:hover{background:var(--bad-bg);color:var(--bad)}.holder-list button:disabled{cursor:progress;opacity:.5}.perms .manage{white-space:nowrap;text-align:right;width:1%}.perms .manage .btn{padding:4px 10px;font-size:13px}.perms .manage .btn+.btn{margin-left:6px}.perms input{box-sizing:border-box;border:1.5px solid var(--line-strong);background:var(--surface);width:100%;min-width:7rem;height:34px;color:var(--ink);font:inherit;border-radius:8px;padding:0 8px}.perms input.code{font-family:var(--font-mono);font-size:13px}.perms input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.perms input:disabled{opacity:.6;cursor:not-allowed}.perms .btn:disabled{opacity:.5;cursor:not-allowed}.perms .problem{color:var(--bad)}.perms tr.editing td,.perms tr.add td{background:var(--surface-2)}.confirm-row td{background:var(--bad-bg)}.confirm-row div{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.confirm-row span{margin-right:auto}h1,h2,h3,h4{color:var(--brand)}.markdown-container h1{margin-bottom:15px;font-size:35px}.markdown-container a{color:var(--brand);margin-bottom:30px;display:inline-block}body{font-size:17px}.markdown-container code,.markdown-container pre{color:var(--brand-ink);background-color:var(--brand);border-radius:5px;padding:10px;font-size:17px;line-height:23px}.markdown-container p,.markdown-container li{color:var(--brand)}.markdown-container ol li{padding-bottom:15px}.markdown-container code{padding:5px 10px;font-size:14px;display:inline-block}.connexions-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 16px;display:flex}.connexions-filters label{flex-direction:column;gap:4px;font-size:13px;font-weight:700;display:flex}.connexions-filters input,.connexions-filters select{border:1.5px solid var(--line-strong);background:var(--surface);height:38px;color:var(--ink);font:inherit;border-radius:8px;min-width:14rem;padding:0 10px;font-weight:400}.connexions-filters select{width:auto;margin:0;font-size:15px}.connexions .users-table tbody tr{cursor:default}.connexions .users-table td{vertical-align:top}.connexions-table td:first-child,.connexions-table .ip{white-space:nowrap}.connexions .more{margin-top:12px}.connexions-table .by{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px;display:block}.connexions-table .ip,.connexions-table .agent{display:block}.connexions-table .agent{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;color:var(--muted);font-size:12px;overflow:hidden}.history-bar{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:10px;margin-bottom:12px;padding:12px;display:flex}.history-bar .row{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.history-bar .label{min-width:72px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:800}.history-bar .seg+.label{min-width:0;margin-left:12px}.history-bar input[type=search],.history-bar select{border:1.5px solid var(--line-strong);background:var(--surface);height:38px;color:var(--ink);font:inherit;border-radius:8px;margin:0;padding:0 10px}.history-bar input[type=search]{max-width:22rem;font-family:var(--font-mono);flex:14rem;font-size:13px}.history-bar select{width:auto;max-width:100%;font-size:15px}.history-bar input:focus,.history-bar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.history-bar .check{align-items:center;gap:6px;font-size:13px;display:inline-flex}.history-table .meth{min-width:58px;font-family:var(--font-mono);text-align:center;background:var(--brand-tint);border-radius:5px;padding:1px 6px;font-size:12px;font-weight:600;display:inline-block}.history-table .meth.GET{background:var(--info-bg);color:var(--info)}.history-table .meth.POST{background:var(--ok-bg);color:var(--ok)}.history-table .meth.PUT{background:var(--warn-bg);color:var(--warn)}.history-table .meth.DELETE{background:var(--bad-bg);color:var(--bad)}.history-table .uri{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:12.5px}.history-table td:nth-child(2){min-width:16rem}.history-table button.uri{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;margin-right:6px;padding:0}.history-table .detail td{background:var(--surface-2);cursor:default;font-size:13px}.history-table .detail dl{grid-template-columns:max-content 1fr;gap:4px 16px;margin:0;display:grid}.history-table .detail dt{color:var(--muted)}.history-table .detail dd{min-width:0;margin:0}.history .more{margin-top:12px}.history .end{color:var(--muted);margin:12px 0 0;font-size:13px}.history-bar .view{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;align-items:center;display:inline-flex}.history-bar .view button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:13px;font-weight:600}.history-bar .view button:first-child{padding:4px 4px 4px 12px}.history-bar .view .remove{padding:4px 10px 4px 4px}.history-bar .view.active{border-color:var(--brand)}.history-bar .view.active button:first-child{color:var(--ink);font-weight:800}.history-bar .view-name{border:1.5px solid var(--accent);background:var(--surface);min-width:min(14rem,100%);height:32px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px}.history .error-message{color:var(--bad);font-weight:700}.matrix-frame{--who:240px;border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:280px;max-height:calc(100vh - 210px);overflow:auto}.matrix{border-collapse:separate;border-spacing:0;width:auto;box-shadow:none;margin:0}.matrix th,.matrix td{color:var(--ink);border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0;font-size:13px;font-weight:400}.matrix .first{box-shadow:inset 1px 0 0 var(--line-strong)}.matrix thead th{z-index:2;background:var(--surface-2);text-align:center;vertical-align:bottom;position:sticky}.matrix thead tr:first-child th{border-bottom-color:var(--line-strong);height:38px;top:0}.matrix thead tr:nth-child(2) th{min-width:34px;padding:8px 0 6px;top:38px}.matrix .api{text-align:left}.matrix .fold{left:var(--who);height:100%;font:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;font-weight:800;display:inline-flex;position:sticky}.matrix .fold:before{content:"▾";color:var(--muted)}.matrix .fold[aria-expanded=false]:before{content:"▸"}.matrix .fold .n{color:var(--muted);font-size:11px;font-weight:600}.matrix .vertical{text-overflow:ellipsis;white-space:nowrap;writing-mode:vertical-rl;text-align:left;max-height:260px;font:12px/1.2 var(--font-mono);display:inline-block;overflow:hidden;transform:rotate(180deg)}.matrix .vertical.muted{color:var(--muted);font-family:var(--font-ui)}.matrix .holders{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px;font-size:11px;font-weight:600;display:block}.matrix .who{z-index:1;min-width:var(--who);max-width:var(--who);text-align:left;background:var(--surface);border-right-color:var(--line-strong);padding:0 12px;position:sticky;left:0}.matrix thead .who{z-index:3;background:var(--surface-2);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;font-size:12px;font-weight:800}.matrix .email{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;display:block;overflow:hidden}.matrix .email:hover{text-decoration:underline}.matrix tbody tr:hover>*{background-color:var(--surface-2)}.matrix tbody tr.opened .who{background-color:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}.matrix tbody tr:last-child>*{border-bottom:0}.matrix td{text-align:center;min-width:34px;height:34px}.matrix td.folded{font-variant-numeric:tabular-nums;min-width:64px;font-size:12px}.matrix td.folded .none{color:var(--muted)}.matrix td.admin{text-align:left;background:repeating-linear-gradient(135deg, var(--warn-bg) 0 4px, transparent 4px 8px);color:var(--warn);padding:0 12px;font-size:12px;font-weight:700}.matrix td.admin span{left:calc(var(--who) + 12px);position:sticky}.cell{vertical-align:middle;border:1.5px solid var(--line-strong);width:22px;height:22px;color:var(--brand-ink);font:700 13px/1 var(--font-ui);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;place-items:center;padding:0;display:inline-grid}.cell:hover{border-color:var(--accent)}.cell.on{background:var(--brand);border-color:var(--brand)}.cell.on:after{content:"✓"}.cell.via{border-style:dashed;border-color:var(--accent);color:var(--accent)}.cell.via:after{content:"✓";opacity:.6}.cell.admin{background:repeating-linear-gradient(135deg, var(--warn-bg) 0 4px, transparent 4px 8px);border-color:#0000}.cell.to-grant,.cell.to-revoke{border:2px solid var(--accent);background:var(--focus-ring);color:var(--accent)}.cell.to-grant:after{content:"✓";opacity:1}.cell.to-revoke:after{content:""}.matrix.busy,.matrix.busy .cell{cursor:progress}.matrix-legend{color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;font-size:13px;display:flex}.matrix-legend>span{align-items:center;gap:6px;display:inline-flex}.matrix-legend .cell{cursor:default}.matrix-legend .cell:hover{border-color:var(--line-strong)}.matrix-legend .cell.on:hover{border-color:var(--brand)}.drawer-layout.open .matrix-frame{--who:160px}@media (width<=820px){.matrix-frame{--who:150px}}.app-container{grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow:auto}.side .logo{align-self:flex-start;width:auto;height:32px;margin:2px 8px 12px}.env{border:1px solid var(--line-strong);letter-spacing:.06em;text-transform:uppercase;background:var(--brand-tint);color:var(--muted);border-radius:6px;margin:0 8px 12px;padding:5px 8px;font-size:11px;font-weight:800}.env.info{background:var(--info-bg);color:var(--info);border-color:var(--info)}.env.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.env.bad{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}.side nav{flex-direction:column;gap:2px;display:flex}.side a,.side .side-foot button{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 10px;font-weight:700;text-decoration:none;display:block}.side a:hover,.side .side-foot button:hover{background:var(--surface-2)}.side a.active{background:var(--brand);color:var(--brand-ink)}.side-foot{border-top:1px solid var(--line);flex-direction:column;margin-top:auto;padding-top:12px;display:flex}.side-foot button{color:var(--muted);font-size:13px;font-weight:600}.active-content{min-width:0;padding:20px 24px 96px}.global-container h1{margin:0 0 16px;font-size:24px;font-weight:800}@media (width<=820px){.app-container{grid-template-columns:minmax(0,1fr)}.side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;height:auto;padding:8px 12px;position:static}.side .logo,.env{margin:0 8px 0 0}.side nav{flex-flow:wrap}.side a,.side .side-foot button{white-space:nowrap;width:auto}.side-foot{border-top:0;flex-flow:wrap;margin-top:0;margin-left:auto;padding-top:0}.active-content{padding:16px}}select{background:var(--surface);border:2px solid var(--brand);width:100%;height:50px;color:var(--brand);border-radius:3px;margin-bottom:20px;padding-left:8px;font-size:20px}.App-loader{background:var(--surface);width:100%;height:100vh;color:var(--ink);z-index:9999;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .5s,visibility 0s .5s;display:flex;position:fixed;top:0;left:0}.App-loader.active{opacity:1;visibility:visible;transition:opacity .5s}table{border-collapse:collapse;box-shadow:1px 1px 40px var(--line);width:100%;margin-bottom:80px}td{color:var(--brand)}th{color:var(--brand);text-align:left}th,td{border-bottom:1px solid var(--line);padding:15px 8px;font-size:16px}
