@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/roboto-flex-cyrillic-ext-wght-normal.CVcCQn0y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/roboto-flex-cyrillic-wght-normal.BJ-nQEdz.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/roboto-flex-greek-wght-normal.DeN4rzfy.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/roboto-flex-vietnamese-wght-normal.AVFfiTln.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/roboto-flex-latin-ext-wght-normal.gysdOMcS.woff2)format("woff2-variations");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}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/roboto-flex-latin-wght-normal.n-dP9qr2.woff2)format("woff2-variations");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:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/_astro/material-symbols-outlined.D_27-b_z.woff2)format("woff2")}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"liga";direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}:root{color-scheme:dark;--md-sys-color-background:#1b101a;--md-sys-color-on-background:#f1ddec;--md-sys-color-surface:#1b101a;--md-sys-color-surface-dim:#1b101a;--md-sys-color-surface-bright:#423541;--md-sys-color-surface-container-lowest:#150b15;--md-sys-color-surface-container-low:#231823;--md-sys-color-surface-container:#281c27;--md-sys-color-surface-container-high:#332631;--md-sys-color-surface-container-highest:#3e313c;--md-sys-color-on-surface:#f1ddec;--md-sys-color-surface-variant:#544152;--md-sys-color-on-surface-variant:#d9bfd4;--md-sys-color-inverse-surface:#f1ddec;--md-sys-color-inverse-on-surface:#392c38;--md-sys-color-outline:#a18a9d;--md-sys-color-outline-variant:#544152;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-surface-tint:#ffa9fd;--md-sys-color-primary:#ffa9fd;--md-sys-color-on-primary:#590061;--md-sys-color-primary-container:#ef36fe;--md-sys-color-on-primary-container:#39003e;--md-sys-color-inverse-primary:#a500b2;--md-sys-color-secondary:#ffa9fd;--md-sys-color-on-secondary:#590061;--md-sys-color-secondary-container:#7a1382;--md-sys-color-on-secondary-container:#fa8cfb;--md-sys-color-tertiary:#ffb1c3;--md-sys-color-on-tertiary:#66002d;--md-sys-color-tertiary-container:#ff4b89;--md-sys-color-on-tertiary-container:#41001a;--md-sys-color-error:#ffb4ab;--md-sys-color-on-error:#690005;--md-sys-color-error-container:#93000a;--md-sys-color-on-error-container:#ffdad6;--md-sys-color-primary-fixed:#ffd6f9;--md-sys-color-primary-fixed-dim:#ffa9fd;--md-sys-color-on-primary-fixed:#37003c;--md-sys-color-on-primary-fixed-variant:#7e0088;--md-sys-color-secondary-fixed:#ffd6f9;--md-sys-color-secondary-fixed-dim:#ffa9fd;--md-sys-color-on-secondary-fixed:#37003c;--md-sys-color-on-secondary-fixed-variant:#7a1382;--md-sys-color-tertiary-fixed:#ffd9e0;--md-sys-color-tertiary-fixed-dim:#ffb1c3;--md-sys-color-on-tertiary-fixed:#3f0019;--md-sys-color-on-tertiary-fixed-variant:#8f0041;--md-ext-color-success:#98d94a;--md-ext-color-on-success:#1e3700;--md-ext-color-success-container:#2e4f00;--md-ext-color-on-success-container:#b2f663;--md-ext-color-warning:#ffb86b;--md-ext-color-on-warning:#492900;--md-ext-color-warning-container:#683d00;--md-ext-color-on-warning-container:#ffdcbc;--md-ref-typeface-brand:"Roboto Flex Variable", system-ui, sans-serif;--md-ref-typeface-plain:"Roboto Flex Variable", system-ui, sans-serif;--md-icon-font:"Material Symbols Outlined";--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--shape-xs:4px;--shape-s:8px;--shape-m:12px;--shape-xl:28px;--rail:88px;--card:var(--md-sys-color-surface-container-low);--divider:var(--md-sys-color-outline-variant)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);font:400 .875rem/1.25rem var(--md-ref-typeface-plain);letter-spacing:.0179em;-webkit-font-smoothing:antialiased}a{color:var(--md-sys-color-primary)}h1,h2,h3,p,dl{margin:0}.headline-m{font:400 1.75rem/2.25rem var(--md-ref-typeface-brand)}.headline-s,.stat{font:400 1.5rem/2rem var(--md-ref-typeface-brand)}.title-l{font:400 1.375rem/1.75rem var(--md-ref-typeface-brand)}.title-m{font:500 1rem/1.5rem var(--md-ref-typeface-plain);letter-spacing:.009em}.title-s{font:500 .875rem/1.25rem var(--md-ref-typeface-plain);letter-spacing:.007em}.body-l{font:400 1rem/1.5rem var(--md-ref-typeface-plain);letter-spacing:.031em}.body-m{font:400 .875rem/1.25rem var(--md-ref-typeface-plain)}.body-s{font:400 .75rem/1rem var(--md-ref-typeface-plain);letter-spacing:.033em}.label-m{font:500 .75rem/1rem var(--md-ref-typeface-plain);letter-spacing:.042em}.muted{color:var(--md-sys-color-on-surface-variant)}.mono{letter-spacing:0;font-family:ui-monospace,JetBrains Mono,monospace;font-size:.8125rem}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.shell{min-height:100vh;display:flex}.rail{width:var(--rail);z-index:2;align-items:center;gap:var(--sp-3);padding:var(--sp-5) 0 var(--sp-4);background:var(--md-sys-color-surface);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-radius:var(--shape-m);flex:none;place-items:center;display:grid}.brand img{image-rendering:pixelated;display:block}.rail .brand{width:56px;height:56px;margin-bottom:var(--sp-5);background:var(--md-sys-color-surface-container-high)}.brand-sm{display:none}.nav-item{align-items:center;gap:var(--sp-1);width:80px;color:var(--md-sys-color-on-surface-variant);outline:none;flex-direction:column;text-decoration:none;display:flex;position:relative}.nav-item .pill{--md-ripple-hover-color:var(--md-sys-color-on-surface);--md-ripple-pressed-color:var(--md-sys-color-on-surface);border-radius:16px;place-items:center;width:56px;height:32px;display:grid;position:relative}.nav-item md-focus-ring{--md-focus-ring-shape:16px}.nav-item[aria-current=page]{color:var(--md-sys-color-on-surface)}.nav-item[aria-current=page] .pill{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.nav-item[aria-current=page] md-icon{font-variation-settings:"FILL" 1}.main{margin-left:var(--rail);flex:1;min-width:0}.topbar{z-index:1;align-items:center;gap:var(--sp-3);height:64px;padding:0 var(--sp-4) 0 var(--sp-5);background:var(--md-sys-color-surface);transition:background .2s;display:flex;position:sticky;top:0}.topbar.scrolled{background:var(--md-sys-color-surface-container)}.topbar h1{flex:1}.user{align-items:center;gap:var(--sp-2);display:flex}.avatar{background:var(--md-sys-color-primary-container);width:32px;height:32px;color:var(--md-sys-color-on-primary-container);font:500 .875rem/1 var(--md-ref-typeface-plain);text-transform:uppercase;border-radius:50%;place-items:center;display:grid}.content{padding:var(--sp-2) var(--sp-5) var(--sp-6);max-width:1280px}.navbar{display:none}@media (width<=600px){.rail{display:none}.main{margin-left:0;padding-bottom:80px}.content{padding:var(--sp-2) var(--sp-4) var(--sp-6)}.topbar{padding:0 var(--sp-2) 0 var(--sp-4)}.user .name{display:none}.brand-sm{display:grid}.navbar{z-index:2;background:var(--md-sys-color-surface-container);justify-content:space-around;align-items:center;height:80px;display:flex;position:fixed;inset:auto 0 0}.navbar .nav-item{flex:1;width:auto}.hide-sm{display:none!important}}.page{gap:var(--sp-5);flex-direction:column;display:flex}.section{gap:var(--sp-3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;min-height:40px;display:flex}.grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}@media (width<=600px){.grid{grid-template-columns:1fr}}.row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.spread{flex:1;min-width:0}.card{gap:var(--sp-3);min-width:0;padding:var(--sp-4);border-radius:var(--shape-m);background:var(--card);color:inherit;flex-direction:column;text-decoration:none;display:flex;position:relative}a.card{outline:none}a.card md-focus-ring{--md-focus-ring-shape:var(--shape-m)}.card-head{align-items:center;gap:var(--sp-3);min-height:32px;display:flex}.card-head>md-icon{color:var(--md-sys-color-primary)}.card-head .title-m{flex:1;min-width:0}.card.danger{border:1px solid color-mix(in srgb, var(--md-sys-color-error) 45%, transparent);background:0 0}.card.danger .card-head>md-icon{color:var(--md-sys-color-error)}.card-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.hero{align-items:center;gap:var(--sp-5);padding:var(--sp-5);border-radius:var(--shape-xl);background:var(--md-ext-color-success-container);color:var(--md-ext-color-on-success-container);flex-wrap:wrap;display:flex}.hero.warn{background:var(--md-ext-color-warning-container);color:var(--md-ext-color-on-warning-container)}.hero.bad{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.hero>md-icon{--md-icon-size:48px}.hero ul{margin:var(--sp-2) 0 0;padding-left:20px}.kv{gap:var(--sp-2) var(--sp-4);grid-template-columns:max-content 1fr;align-items:center;display:grid}.kv dt{color:var(--md-sys-color-on-surface-variant)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.kv dd.copy{align-items:center;gap:var(--sp-1);margin:-8px 0;display:flex}.chip{height:28px;padding:0 var(--sp-3) 0 var(--sp-2);border-radius:var(--shape-s);white-space:nowrap;font:500 .75rem/1 var(--md-ref-typeface-plain);letter-spacing:.04em;background:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-on-surface-variant);flex:none;align-items:center;gap:6px;display:inline-flex}.chip md-icon{--md-icon-size:18px}.chip.good{background:var(--md-ext-color-success-container);color:var(--md-ext-color-on-success-container)}.chip.warn{background:var(--md-ext-color-warning-container);color:var(--md-ext-color-on-warning-container)}.chip.bad{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.meter{background:var(--md-sys-color-surface-container-highest);border-radius:4px;height:8px;overflow:hidden}.meter>span{background:var(--md-sys-color-primary);border-radius:4px;height:100%;display:block}.meter.warn>span{background:var(--md-ext-color-warning)}.meter.bad>span{background:var(--md-sys-color-error)}.panel{border-radius:var(--shape-m);background:var(--card);overflow:hidden}.panel .scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--sp-3) var(--sp-4);white-space:nowrap}th{font:500 .75rem/1rem var(--md-ref-typeface-plain);letter-spacing:.042em;color:var(--md-sys-color-on-surface-variant)}tbody tr{border-top:1px solid var(--divider)}tbody tr:hover{background:color-mix(in srgb, var(--md-sys-color-on-surface) 6%, transparent)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.end,th.end{text-align:right;width:1%}td a{text-decoration:none}td a:hover{text-decoration:underline}td.icon,th.icon{width:40px;padding-right:0}td.icon md-icon{color:var(--md-sys-color-on-surface-variant);display:block}td .sub{display:block}td.clip{text-overflow:ellipsis;max-width:320px;overflow:hidden}.list-row{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);color:inherit;outline:none;flex-wrap:wrap;text-decoration:none;display:flex;position:relative}.list-row+.list-row,.panel>.list-row+.list-row{border-top:1px solid var(--divider)}.list-row>md-icon{color:var(--md-sys-color-on-surface-variant)}.list-row .text{flex:1;min-width:160px}a.list-row md-focus-ring{--md-focus-ring-shape:var(--shape-s)}.list-row a{text-decoration:none}.list-row a:hover{text-decoration:underline}.perms-form{flex-wrap:nowrap}@media (width<=600px){.list-row{gap:var(--sp-2) var(--sp-3)}.list-row .remove-form{order:2}.list-row .perms-form{gap:var(--sp-2);flex-wrap:wrap;flex:100%;order:3;padding-left:36px}.checks{gap:var(--sp-2)}}.card .list-row{padding-left:0;padding-right:0}.panel-foot{border-top:1px solid var(--divider);padding:var(--sp-3) var(--sp-4);background:color-mix(in srgb, var(--md-sys-color-on-surface) 3%, transparent)}.empty{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--md-sys-color-on-surface-variant)}.empty md-icon{--md-icon-size:40px;margin:0 auto var(--sp-2);display:block}.crumbs{align-items:center;gap:var(--sp-1);margin-left:calc(-1 * var(--sp-2));flex-wrap:wrap;display:flex}.crumbs a,.crumbs span{padding:6px var(--sp-2);border-radius:var(--shape-s);text-decoration:none}.crumbs a{color:var(--md-sys-color-primary)}.crumbs a:hover{background:color-mix(in srgb, var(--md-sys-color-primary) 8%, transparent)}.crumbs md-icon{--md-icon-size:18px;color:var(--md-sys-color-on-surface-variant)}form{margin:0}.form-row{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.form-row md-outlined-text-field,.form-row md-outlined-select{flex:220px;max-width:320px}label.check{align-items:center;gap:var(--sp-1);cursor:pointer;white-space:nowrap;display:inline-flex}.checks{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:inline-flex}.danger-button{--md-outlined-button-label-text-color:var(--md-sys-color-error);--md-outlined-button-outline-color:var(--md-sys-color-error);--md-outlined-button-icon-color:var(--md-sys-color-error);--md-outlined-button-hover-label-text-color:var(--md-sys-color-error);--md-outlined-button-hover-icon-color:var(--md-sys-color-error);--md-outlined-button-pressed-label-text-color:var(--md-sys-color-error)}@media (width<=600px){.form-row md-outlined-text-field,.form-row md-outlined-select{max-width:none}}.banner{gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--shape-m);background:var(--md-sys-color-surface-container-high);align-items:center;display:flex}.banner.bad{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.banner.warn{background:var(--md-ext-color-warning-container);color:var(--md-ext-color-on-warning-container)}.banner.secret{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container);align-items:stretch;gap:var(--sp-3);flex-direction:column}.snackbar{left:50%;bottom:var(--sp-5);z-index:10;align-items:center;gap:var(--sp-3);max-width:calc(100vw - 32px);min-height:48px;padding:var(--sp-1) var(--sp-4);border-radius:var(--shape-xs);background:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);transition:opacity .3s,transform .3s;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 3px 5px -1px #0000004d,0 6px 10px #0003}.snackbar.bad{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.snackbar.gone{opacity:0;pointer-events:none;transform:translate(-50%,16px)}@media (width<=600px){.snackbar{bottom:96px}}md-dialog{--md-dialog-container-color:var(--md-sys-color-surface-container-high);max-width:420px}.log-bar{gap:var(--sp-3);flex-wrap:wrap;align-items:flex-start;display:flex}.log-search{gap:var(--sp-3);flex-wrap:wrap;flex:420px;display:flex}.log-search md-outlined-text-field{flex:260px}.log-search md-outlined-select,#log-level{flex:0 220px}#log-lines{width:128px}.log-actions{gap:var(--sp-2);align-items:center;min-height:56px;display:flex}.log-wrap{border-radius:var(--shape-m);background:var(--card);flex-direction:column;display:flex;overflow:hidden}.log-head{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);flex-wrap:wrap;min-height:56px;display:flex}.log{height:max(360px,100vh - 360px);padding:var(--sp-2) 0;background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);outline:none;line-height:1.25rem;overflow:auto}.log:focus-visible{box-shadow:inset 0 0 0 2px var(--md-sys-color-secondary)}.log .ln{padding:0 var(--sp-4);white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid #0000}.log .ln:hover{background:color-mix(in srgb, var(--md-sys-color-on-surface) 6%, transparent)}.log .lv-w{color:var(--md-ext-color-warning);border-left-color:var(--md-ext-color-warning)}.log .lv-e{color:var(--md-sys-color-error);border-left-color:var(--md-sys-color-error);background:color-mix(in srgb, var(--md-sys-color-error) 6%, transparent)}.log-foot{justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);display:flex}.log-wrap .empty{border-top:1px solid var(--divider)}@media (width<=600px){.log{height:max(320px,100vh - 420px);font-size:.75rem}.log .ln{padding:0 var(--sp-3)}.log-search md-outlined-select,#log-level{flex:100%}}.login{min-height:100vh;padding:var(--sp-5);background:radial-gradient(1200px 600px at 20% -10%, color-mix(in srgb, var(--md-sys-color-primary-container) 35%, transparent), transparent), var(--md-sys-color-surface);place-items:center;display:grid}.login .card{width:min(400px,100%);padding:var(--sp-6) var(--sp-5) var(--sp-5);gap:var(--sp-4);border-radius:var(--shape-xl);background:var(--md-sys-color-surface-container);text-align:center;align-items:center}.login .logo{width:min(260px,100%);height:auto}.login .banner{text-align:left;width:100%}.login md-filled-button{width:100%}
