@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/inter-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/inter-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/inter-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/inter-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/app/fonts/inter-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/app/fonts/inter-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/inter-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/inter-latin-700-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/jetbrains-mono-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/jetbrains-mono-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/app/fonts/jetbrains-mono-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/app/fonts/jetbrains-mono-latin-600-normal.woff2) format("woff2")}:root{--bg: #0f1113;--panel: #15171a;--panel2: #1a1d21;--hover: #1e2226;--bd: #262a2f;--bd2: #333941;--tx: #e7eaee;--tx2: #9aa3ad;--tx3: #828a95;--accent: #2bbf8a;--btn-fg: #0c1210;--ok: #34b37c;--info: #4f9fdd;--warn: #d9a13a;--bad: #e05e56;--r-card: 12px;--r-btn: 8px;--r-chip: 7px;--r-proto: 6px;--r-bar: 3px;--sidebar: 240px;--topbar: 52px;--drawer: 660px;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--tx);font:400 13px/1.5 Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.mono{font-family:var(--mono)}a{color:inherit;text-decoration:none}button{font:inherit}.shell{display:flex;height:100%}.sidebar{width:var(--sidebar);flex:none;background:var(--panel);border-right:1px solid var(--bd);display:flex;flex-direction:column;padding:14px 12px 12px;gap:2px;min-height:0;overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:9px;padding:2px 8px 12px}.sidebar__logo{width:24px;height:24px;border-radius:7px;background:var(--accent);color:var(--btn-fg);display:flex;align-items:center;justify-content:center;font:700 11px var(--mono)}.sidebar__name{font-weight:600;font-size:13.5px}.sidebar__env{margin-left:auto;font:600 9px var(--mono);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:5px;padding:2px 5px}.sidebar__env--dev{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.nav-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--r-btn);font-size:13px;color:var(--tx2);cursor:pointer;background:none;border:none;width:100%;text-align:left}.nav-item:hover{background:var(--hover);color:var(--tx)}.nav-item.is-active{background:var(--hover);color:var(--tx);font-weight:500}.nav-item.is-soon{color:var(--tx3);cursor:default}.nav-item.is-soon:hover{background:none;color:var(--tx3)}.nav-item__soon{margin-left:auto;font:500 9.5px var(--mono);color:var(--tx3)}.sidebar__spacer{flex:1}.profile{display:flex;align-items:center;gap:9px;padding:8px 10px;border-top:1px solid var(--bd);margin-top:8px}.profile__avatar{width:22px;height:22px;border-radius:50%;background:var(--panel2);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;font:600 9.5px var(--mono);color:var(--tx2);flex:none}.profile__box{display:flex;flex-direction:column;gap:1px;min-width:0}.profile__name{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis}.profile__role{font:400 10px var(--mono);color:var(--tx3)}.profile__exit{margin-left:auto;background:none;border:none;color:var(--tx3);font-size:11px;cursor:pointer}.profile__exit:hover{color:var(--tx)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar);flex:none;display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--bd)}.topbar__menu{display:none;align-items:center;justify-content:center;width:32px;height:32px;flex:none;padding:0;background:var(--panel2);border:1px solid var(--bd2);border-radius:8px;color:var(--tx2);cursor:pointer}.topbar__menu:hover{color:var(--tx)}.shell__scrim{display:none}.topbar__crumb{font-size:12.5px;color:var(--tx3)}.topbar__here{font-size:12.5px;font-weight:500}.topbar__spacer{flex:1}.topbar__tz{font:400 10.5px var(--mono);color:var(--tx3)}.content{flex:1;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:14px 20px 18px}.card{background:var(--panel);border:1px solid var(--bd);border-radius:var(--r-card);padding:16px}.banner{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--r-btn);font-size:12.5px;color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent)}.muted{color:var(--tx3)}.note{font:400 11px var(--mono);color:var(--tx3)}.login{max-width:380px;margin:8vh auto}.login h1{font-size:17px;margin:0 0 4px}.login p{color:var(--tx2);font-size:13px;margin:0 0 18px}.field{margin-bottom:12px}.field label{display:block;font-size:12px;color:var(--tx3);margin-bottom:5px}.field input{width:100%;padding:10px 12px;border-radius:var(--r-btn);border:1px solid var(--bd2);background:var(--panel2);color:var(--tx);font:14px Inter,sans-serif}.field input:focus{outline:none;border-color:var(--accent)}.field textarea{width:100%;padding:10px 12px;border-radius:var(--r-btn);border:1px solid var(--bd2);background:var(--panel2);color:var(--tx);font:14px Inter,sans-serif;min-height:64px;resize:vertical;font-family:inherit}.btn{border:none;background:var(--accent);color:var(--btn-fg);font:600 13px Inter,sans-serif;padding:9px 14px;border-radius:var(--r-btn);cursor:pointer;width:100%}.btn:hover{filter:brightness(1.08)}.btn[disabled]{opacity:.55;cursor:default;filter:none}.btn.ghost{background:transparent;color:var(--tx2);border:1px solid var(--bd2);margin-top:8px}.btn.ghost:hover{color:var(--tx);border-color:var(--bd);filter:none}.err{color:var(--bad);font-size:12.5px;margin-top:10px;min-height:18px}code{background:var(--panel2);padding:2px 6px;border-radius:5px;font-family:var(--mono);font-size:12px;word-break:break-all}.table{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--bd);border-radius:var(--r-card);overflow-x:auto;overflow-y:hidden}.table__head,.table__row{display:grid;column-gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--bd)}.table__head{padding:9px 14px;background:var(--panel2);font:600 10.5px Inter,sans-serif;letter-spacing:.05em;color:var(--tx3);text-transform:uppercase}.table__row:last-child{border-bottom:none}.table__row.is-clickable{cursor:pointer}.table__row.is-clickable:hover{background:var(--hover)}.table__row.is-clickable:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.table__row.is-muted{color:var(--tx2);background:color-mix(in srgb,var(--bg) 45%,transparent)}.table__row.is-muted .table__cell{opacity:.78}.table__cell{min-width:0;font-size:12px}.table__cell.is-right{text-align:right}.table__empty{padding:22px 14px;text-align:center;font-size:12.5px;color:var(--tx3)}.table__foot{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--bd);background:var(--panel2);font:400 11.5px Inter,sans-serif;color:var(--tx3)}.chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--r-proto);font:500 10.5px Inter,sans-serif;color:var(--tx2);border:1px solid var(--bd2);white-space:nowrap;width:fit-content;max-width:100%}.chip.mono{font-family:var(--mono)}.chip--neutral{color:var(--tx2);border-color:var(--bd2)}.chip--ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.chip--warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.chip--bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.chip--accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.chip--button{cursor:pointer;background:none}.chip--button:hover{background:var(--hover);color:var(--tx)}.chip--button:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.chip.is-active{color:var(--btn-fg);background:var(--accent);border-color:var(--accent)}.chip.is-active:hover{color:var(--btn-fg);background:var(--accent);filter:brightness(1.08)}.sdot{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:500}.sdot__mark{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.sdot--ok{color:var(--ok)}.sdot--warn{color:var(--warn)}.sdot--bad{color:var(--bad)}.sdot--info{color:var(--info)}.sdot--muted{color:var(--tx3)}.sdot--muted .sdot__mark{background:none;border:1px solid var(--tx3)}.sdot.is-strong{font-weight:600}.pbar{display:block;height:3px;border-radius:var(--r-bar);background:var(--panel2);overflow:hidden}.pbar.is-unknown{background:repeating-linear-gradient(45deg,var(--bd2) 0 1px,transparent 1px 5px)}.pbar-none{display:flex;align-items:center;gap:6px}.pbar-none .pbar{flex:1}.pbar-none__dash{font:400 10.5px var(--mono);color:var(--tx3);flex:none}.pbar__fill{display:block;height:100%}.pbar__fill--ok{background:var(--accent)}.pbar__fill--warn{background:var(--warn)}.pbar__fill--bad{background:var(--bad)}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:flex-end}.drawer__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#06080a8c}.drawer__panel{position:relative;width:var(--drawer);max-width:100%;height:100%;background:var(--panel);border-left:1px solid var(--bd);display:flex;flex-direction:column}.drawer__head{flex:none;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--bd)}.drawer__title{font-size:14px;font-weight:600;min-width:0}.drawer__close{margin-left:auto;background:none;border:none;color:var(--tx3);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.drawer__close:hover{color:var(--tx)}.drawer__body{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}@media (max-width: 860px){.sidebar{position:fixed;z-index:20;height:100%;transform:translate(-100%)}.shell.is-menu .sidebar{transform:none}.topbar__menu{display:inline-flex}.shell.is-menu .shell__scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:#00000073;border:0;padding:0}.content{padding:12px 12px 16px}.table__head,.table__row{column-gap:8px;padding-left:10px;padding-right:10px}.drawer__head,.drawer__body{padding-left:12px;padding-right:12px}}.chart{display:flex;flex-direction:column;gap:8px}.chart__svg{width:100%;max-width:600px;height:auto}.chart__legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font:400 10.5px var(--mono);color:var(--tx3)}.chart__legend-item{display:inline-flex;align-items:center;gap:5px}.chart__swatch{width:10px;height:10px;border-radius:var(--r-bar);display:inline-block;flex:none}.chart__swatch--value{background:var(--accent);opacity:.95}.chart__swatch--missing{background:repeating-linear-gradient(45deg,var(--tx3) 0 1.4px,transparent 1.4px 6px);border:1px solid var(--bd)}.chart__swatch--norun{border:1px dashed var(--bd2);background:none}.chart__basis{margin-left:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#06080a8c}.modal__panel{position:relative;width:min(460px,calc(100vw - 32px));max-height:84vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--bd2);border-radius:var(--r-card)}.modal__head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--bd)}.modal__title{flex:1;font-size:14px;font-weight:600}.modal__close{border:none;background:none;color:var(--tx3);font-size:18px;line-height:1;cursor:pointer;padding:2px 4px}.modal__close:hover{color:var(--tx)}.modal__body{display:flex;flex-direction:column;gap:12px;padding:14px 16px;overflow:auto;font-size:12.5px}.modal__foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--bd)}.btn.compact{width:auto;padding:5px 10px;font-size:11.5px}.btn.compact.ghost{margin-top:0}.btn.danger{background:var(--bad);color:#fff}.mode-option{display:flex;gap:9px;align-items:flex-start;padding:8px 10px;border:1px solid var(--bd);border-radius:var(--r-btn);cursor:pointer}.mode-option input{margin-top:2px}.mode-option.is-disabled{cursor:default;opacity:.6}
