@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap";:root{color:#e7edf4;font-synthesis:none;--bg:#090f13;--panel:#0e171c;--panel2:#111c22;--border:#26343d;--muted:#8fa1b2;--green:#63ee75;--red:#ff646d;--amber:#ffc857;--blue:#63a9ff;background:#090f13;font-family:Manrope,Arial,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 60% -20%,#16252d 0,transparent 42%),var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,a{outline-offset:3px}button{color:inherit}.shell{grid-template-columns:190px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#0b1318;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.identity{border-bottom:1px solid var(--border);padding:22px 23px 20px}.brand{letter-spacing:2px;font-size:27px;font-weight:800}.brand span{color:var(--green)}.identity small,.sidebar footer{color:var(--muted);font:11px JetBrains Mono,monospace}.sidebar nav{gap:2px;padding:10px 0;display:grid}.sidebar nav button{color:#9babb9;cursor:pointer;text-align:left;background:0 0;border:0;border-left:3px solid #0000;align-items:center;gap:13px;padding:14px 21px;display:flex}.sidebar nav button:hover{color:#fff;background:#121d23}.sidebar nav button.active{color:#fff;border-left-color:var(--green);background:#1a2832}.sidebar nav button.active svg{color:var(--green)}.sidebar footer{gap:6px;margin-top:auto;padding:20px 23px;display:grid}.workspace{min-width:0}.topbar{border-bottom:1px solid var(--border);z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#090f13e6;align-items:center;gap:14px;min-height:86px;padding:17px 24px;display:flex;position:sticky;top:0}.topbar>div:first-child{margin-right:auto}.topbar h1{margin:0 0 5px;font-size:23px}.topbar p{color:var(--muted);margin:0;font-size:13px}.top-check,.overall,.view-heading button,.heading-actions button{border:1px solid var(--border);cursor:pointer;background:#111c22;border-radius:6px;align-items:center;gap:8px;padding:10px 13px;display:flex}.overall{justify-content:center;min-width:148px}.overall.has-problems{color:#ff8990;border-color:#6f3439}.content{max-width:1680px;margin:auto;padding:20px}.overview-layout{grid-template-columns:minmax(680px,1fr) 290px;gap:16px;display:grid}.overview-main{gap:16px;min-width:0;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric-card{border:1px solid var(--border);background:var(--panel);text-align:left;cursor:pointer;border-radius:7px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;min-height:96px;padding:15px;display:grid}.metric-card span{gap:5px;display:grid}.metric-card small{color:#b9c5cf}.metric-card strong{font:700 25px JetBrains Mono,monospace}.metric-card.healthy>svg{color:var(--green)}.metric-card.warning>svg{color:var(--amber)}.metric-card.critical>svg{color:var(--red)}.metric-card:hover{background:#132027;transform:translateY(-1px)}.chart-frame,.service-table,.attention,.quick-panel,.panel,.infra-view{border:1px solid var(--border);background:var(--panel);border-radius:7px}.chart-frame>header,.service-table>header,.attention>header,.quick-panel>header{justify-content:space-between;align-items:center;display:flex}.chart-frame h2,.service-table h2,.attention h2,.quick-panel h2,.panel h2{margin:0;font-size:15px}.chart-frame header p,.service-table header p{color:var(--muted);margin:4px 0 0;font-size:11px}.chart-frame header>span{color:var(--muted);font:11px JetBrains Mono,monospace}.chart-body{grid-template-columns:minmax(0,1fr) 175px;gap:18px;margin-top:10px;display:grid}.chart-body svg{width:100%;height:190px}.grid path{fill:none;stroke:#26343d;stroke-width:1px}.series-line{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke}.chart-legend{color:#b8c5cf;flex-direction:column;justify-content:center;gap:10px;min-width:0;font-size:11px;display:flex}.chart-legend span{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;display:flex;overflow:hidden}.chart-legend i{border-radius:50%;flex:none;width:8px;height:8px}.chart-frame footer{color:#718493;justify-content:space-between;font:10px JetBrains Mono,monospace;display:flex}.overview-bottom{grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);gap:16px;display:grid}.service-table,.attention{overflow:hidden}.service-table>header,.attention>header{border-bottom:1px solid var(--border);padding:14px 15px}.service-table header button,.attention header button{color:#91a8ba;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;font-size:11px;display:flex}.table-head,.service-row button{grid-template-columns:1.5fr .9fr .65fr .65fr 25px;align-items:center;display:grid}.table-head{color:#8497a7;border-bottom:1px solid var(--border);padding:9px 13px;font-size:10px}.service-row{border-bottom:1px solid #202d34;position:relative}.service-row:last-child{border:0}.service-row>button{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:11px 42px 11px 13px;font-size:11px}.service-row>button:hover{background:#19262e}.service-row>button>span{align-items:center;gap:7px;display:flex}.service-row>a{color:#68b5f6;padding:6px;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.attention>button{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #202d34;grid-template-columns:auto 1fr auto auto;align-items:center;gap:9px;width:100%;padding:12px;display:grid}.attention>button:hover{background:#19262e}.attention>button span{gap:3px;display:grid}.attention>button small,.attention time{color:var(--muted);font-size:10px}.attention time{white-space:nowrap}.warning-icon{color:var(--amber)}.quick-panel{height:max-content;padding:14px;position:sticky;top:106px}.quick-panel>h2{margin:2px 2px 12px}.quick-panel>button{border:1px solid var(--border);text-align:left;cursor:pointer;background:#111d23;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;margin-top:8px;padding:11px;display:grid}.quick-panel>button span{gap:3px;display:grid}.quick-panel>button small{color:var(--muted);font-size:9px}.system-note{border-top:1px solid var(--border);align-items:flex-start;gap:10px;margin-top:14px;padding:15px 5px 3px;display:flex}.system-note div{gap:4px;font-size:11px;display:grid}.system-note small{color:var(--muted)}i.ok,i.bad,.state-cell i,.service-row i{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}i.ok,.state-cell i.ok,.service-row i.ok{background:var(--green);box-shadow:0 0 10px #63ee7560}i.bad,.state-cell i.bad,.service-row i.bad{background:var(--red);box-shadow:0 0 10px #ff646d60}.ok-text{color:var(--green)!important}.bad-text{color:var(--red)!important}.empty,.infra-empty{color:var(--muted);align-items:center;gap:9px;padding:22px;display:flex}.infra-view{padding:18px}.view-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px;display:flex}.view-heading.compact{border-bottom:1px solid var(--border);margin:0;padding:15px}.view-heading h2{margin:0 0 4px;font-size:18px}.view-heading p{color:var(--muted);margin:0;font-size:12px}.heading-actions{flex-wrap:wrap;gap:8px;display:flex}.summary-rail{border:1px solid var(--border);background:#111b21;border-radius:6px;flex-wrap:wrap;gap:24px;margin-bottom:16px;padding:13px 15px;font-size:12px;display:flex}.summary-rail span{align-items:center;gap:7px;display:flex}.project-group{border:1px solid var(--border);border-radius:6px;margin-top:12px;overflow:hidden}.project-group>header{background:#111b21;justify-content:space-between;padding:12px 14px;display:flex}.project-group h3{margin:0;font-size:14px}.project-group header span{color:var(--muted);font-size:11px}.infra-table{border:1px solid var(--border);border-radius:6px;overflow:hidden}.project-group .infra-table{border:0;border-radius:0}.infra-head,.infra-row{align-items:center;gap:12px;padding:11px 13px;display:grid}.infra-head{color:#8396a6;border-bottom:1px solid var(--border);background:#111b21;font-size:10px}.infra-row{color:#c6d0d8;border-bottom:1px solid #202d34;font-size:11px}.infra-row:last-child{border:0}.infra-row:hover{background:#142129}.infra-row code,.choice-row code{color:#9fb1be;overflow-wrap:anywhere;font:10px JetBrains Mono,monospace}.docker-table .infra-head,.docker-table .infra-row{grid-template-columns:.8fr 1fr 1.25fr 1.4fr 1.2fr}.domain-table .infra-head,.domain-table .infra-row{grid-template-columns:1.3fr 1fr 1.5fr .7fr .6fr 22px}.domain-table a{color:inherit;text-decoration:none}.domain-table strong{align-items:center;gap:8px;display:flex}.domain-table a>svg{color:#65b6f4}.proxy-table .infra-head,.proxy-table .infra-row{grid-template-columns:1.1fr 1.4fr 1.2fr .6fr .7fr}.proxy-form,.reminder-form{background:#111d24;border:1px solid #3a5260;border-radius:6px;grid-template-columns:.8fr 1.7fr .7fr auto;gap:10px;margin-bottom:15px;padding:13px;display:grid}.proxy-form label,.reminder-form label,.proxy-plan label,.setting-numbers label{color:var(--muted);gap:5px;font-size:10px;display:grid}.proxy-form input,.reminder-form input,.reminder-form select,.proxy-plan input,.setting-numbers input,.danger input{color:#e7edf4;background:#081015;border:1px solid #354753;border-radius:4px;padding:9px}.proxy-form button,.reminder-form button,.plan-button,.apply-button,.cancel-button,.save-settings,.choice-row button{color:#88f495;cursor:pointer;background:#173323;border:1px solid #3d6f50;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;display:flex}.proxy-form p{color:var(--muted);grid-column:1/-1;margin:0;font-size:9px}.proxy-switcher{border:1px solid var(--border);border-radius:6px;margin-top:15px;padding:15px}.proxy-switcher h3,.proxy-switcher h4,.proxy-plan h3{margin:0}.proxy-switcher header p{color:var(--muted);font-size:11px}.switch-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.choice-row{border-bottom:1px solid #25323a;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px 4px;display:grid}.choice-row span{gap:3px;display:grid}.choice-row.disabled{opacity:.5}.choice-row button{color:#ff858b;background:#27171a;border-color:#6b3237;padding:6px}.plan-button{margin-top:14px}.proxy-plan{background:#1d1a10;border:1px solid #796225;border-radius:6px;margin-top:15px;padding:15px}.proxy-plan header,.proxy-plan>div{justify-content:space-between;gap:10px;display:flex}.proxy-plan li{margin:5px}.cancel-button{border-color:var(--border);color:#c4d0d8;background:#182129}.operation-message{background:#10222c;border:1px solid #3b5c6c;border-radius:5px;margin-top:12px;padding:11px;font-size:11px}.alerts-view{grid-template-columns:minmax(0,1.4fr) minmax(320px,.65fr);gap:16px;display:grid;position:relative}.alerts-column{gap:16px;display:grid}.panel{overflow:hidden}.alert-list,.deadline-list{max-height:460px;overflow:auto}.alert-row{border-bottom:1px solid #202d34;grid-template-columns:auto 1fr auto auto;align-items:center;gap:11px;padding:12px 14px;font-size:11px;display:grid}.alert-row span,.deadline-list>div>span{gap:3px;display:grid}.alert-row small,.alert-row time,.deadline-list small{color:var(--muted);font-size:10px}.alert-row em{color:#94a7b7;font-style:normal}.deadline-list>div{border-bottom:1px solid #202d34;grid-template-columns:75px 1fr auto auto;align-items:center;gap:12px;padding:12px 14px;font-size:11px;display:grid}.deadline-kind{color:var(--amber);text-transform:uppercase;font:9px JetBrains Mono,monospace}.deadline-list time{text-align:right;gap:3px;display:grid}.deadline-list button{color:#ff777e;cursor:pointer;background:0 0;border:0;padding:7px}.reminder-form{border:0;border-bottom:1px solid var(--border);border-radius:0;grid-template-columns:.65fr 1.1fr .75fr 1fr auto;margin:0}.notification-settings{height:max-content;padding:16px;position:sticky;top:106px}.notification-settings>header{justify-content:space-between;gap:15px;margin-bottom:10px;display:flex}.notification-settings header p{color:var(--muted);margin:4px 0;font-size:11px}.master-switch input{display:none}.master-switch span{cursor:pointer;background:#34434c;border-radius:20px;width:42px;height:23px;display:block;position:relative}.master-switch span:after{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:all .2s;position:absolute;top:3px;left:3px}.master-switch input:checked+span{background:#257a3d}.master-switch input:checked+span:after{left:22px}.setting-row{border-top:1px solid #202d34;justify-content:space-between;align-items:center;padding:11px 2px;display:flex}.setting-row span{gap:3px;display:grid}.setting-row strong{font-size:11px}.setting-row small{color:var(--muted);font-size:9px}.setting-row input{accent-color:#54dc6d}.setting-numbers{grid-template-columns:1fr 1fr;gap:10px;padding:12px 0;display:grid}.save-settings{width:100%}.settings-note{color:var(--muted);font-size:9px;line-height:1.5}.global-message{z-index:60;position:fixed;bottom:20px;right:20px}.drawer-backdrop{z-index:50;background:#020608a8;justify-content:flex-end;display:flex;position:fixed;inset:0}.service-drawer{border-left:1px solid var(--border);background:#0c151a;width:min(440px,100%);height:100%;padding:22px;position:relative;overflow:auto;box-shadow:-20px 0 60px #0008}.drawer-close{color:#a9bbc8;cursor:pointer;background:0 0;border:0;position:absolute;top:15px;right:15px}.service-drawer>header{border-bottom:1px solid var(--border);padding:10px 34px 18px 0}.service-drawer>header>div{align-items:center;gap:10px;display:flex}.service-drawer h2{font-size:18px}.service-drawer a{color:#70bafa;align-items:center;gap:6px;font-size:11px;text-decoration:none;display:flex}.service-drawer dl{margin:17px 0}.service-drawer dl>div{justify-content:space-between;padding:9px 0;display:flex}.service-drawer dt{color:var(--muted);font-size:11px}.service-drawer dd{margin:0;font:11px JetBrains Mono,monospace}.drawer-logs,.actions{border-top:1px solid var(--border);padding-top:15px}.drawer-logs header{justify-content:space-between;align-items:center;display:flex}.drawer-logs h3,.actions h3{font-size:13px}.drawer-logs button,.secondary{border:1px solid var(--border);cursor:pointer;background:#131f26;border-radius:5px;padding:8px 10px}.drawer-logs pre{color:#a6bac8;white-space:pre-wrap;background:#060b0e;border:1px solid #202e36;border-radius:5px;height:170px;padding:12px;font:10px/1.6 JetBrains Mono,monospace;overflow:auto}.secondary{align-items:center;gap:7px;display:flex}.danger{background:#1c190f;border:1px solid #705c28;border-radius:5px;gap:9px;margin-top:12px;padding:12px;display:grid}.danger strong{color:#ffd261;gap:8px;display:flex}.danger p{color:#b9aa7c;margin:0;font-size:10px;line-height:1.5}.danger button{color:#ffd261;cursor:pointer;background:#33290f;border:1px solid #765f29;border-radius:4px;padding:9px}.danger button:disabled{opacity:.45}.toast{color:#9bf4ac;z-index:70;background:#10261a;border:1px solid #41715a;border-radius:5px;padding:11px 15px;position:fixed;bottom:20px;left:210px}.login{place-items:center;min-height:100vh;display:grid}.login form{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(380px,100% - 32px);padding:30px}.login h1{font-size:22px}.login p{color:var(--muted)}.login label{gap:7px;margin:14px 0;font-size:11px;display:grid}.login input{color:#fff;background:#070d11;border:1px solid #344550;border-radius:4px;padding:11px}.login button{color:#88f49b;background:#173821;border:1px solid #3a774a;border-radius:5px;width:100%;padding:11px}.form-error{color:#ff7c83;margin-bottom:10px;font-size:11px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}button:disabled{cursor:not-allowed;opacity:.55}@media (width<=1200px){.overview-layout{grid-template-columns:1fr}.quick-panel{grid-template-columns:repeat(2,1fr);gap:8px;display:grid;position:static}.quick-panel h2,.system-note{grid-column:1/-1}.quick-panel>button{margin:0}.metric-grid{grid-template-columns:repeat(2,1fr)}.alerts-view{grid-template-columns:1fr}.notification-settings{position:static}.reminder-form{grid-template-columns:repeat(2,1fr)}}@media (width<=850px){.shell{grid-template-columns:minmax(0,1fr);width:100%;overflow:hidden}.sidebar{width:100%;min-width:0;height:auto;position:static;overflow:hidden}.identity{width:100%;padding:14px 16px}.sidebar nav{width:100%;min-width:0;padding:6px;display:flex;overflow-x:auto}.sidebar nav button{white-space:nowrap;border-bottom:2px solid #0000;border-left:0;flex:none;padding:10px 12px}.sidebar nav button.active{border-bottom-color:var(--green)}.sidebar footer{display:none}.workspace{width:100%;min-width:0}.topbar{flex-wrap:wrap;padding:14px 16px;position:static}.topbar>div:first-child{width:100%;min-width:0}.topbar h1{font-size:20px}.topbar p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.content{width:100%;min-width:0;padding:12px}.overview-bottom,.chart-body{grid-template-columns:minmax(0,1fr)}.chart-legend{flex-flow:wrap;justify-content:flex-start;overflow:hidden}.infra-head{display:none!important}.docker-table .infra-row,.domain-table .infra-row,.proxy-table .infra-row{grid-template-columns:1fr;gap:7px}.switch-grid,.alerts-view,.reminder-form{grid-template-columns:1fr}.alert-row{grid-template-columns:auto 1fr}.alert-row time,.alert-row em{grid-column:2}.deadline-list>div{grid-template-columns:65px 1fr auto}.deadline-list>div>button{grid-column:3}.toast{left:12px}}@media (width<=560px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:82px;padding:11px}.metric-card strong{font-size:20px}.metric-card>svg,.top-check{display:none}.overall{min-width:0}.quick-panel{grid-template-columns:1fr}.quick-panel h2,.system-note{grid-column:auto}.table-head{display:none}.service-row>button{grid-template-columns:1fr auto;padding-top:12px;padding-bottom:12px}.service-row>button>span:nth-of-type(n+2){display:none}.chart-frame{padding:13px}.chart-body svg{height:155px}.notification-settings{padding:13px}.setting-numbers{grid-template-columns:1fr}}:root{--bg:#07111f;--panel:#0d1b2c;--panel2:#10233a;--border:#263c58;--muted:#9aabc4;--green:#9bb5ff;--red:#f49aa7;--amber:#d8c18d;--blue:#8da7ff;color:#edf1ff;background:#07111f}body{background:radial-gradient(circle at 65% -18%,#17355b 0,transparent 43%),var(--bg)}.shell{grid-template-columns:238px minmax(0,1fr)}.sidebar{background:#091727}.identity{padding:27px 28px 23px}.sidebar nav{gap:5px;padding:14px 10px}.sidebar nav button{color:#aab8cc;border-left-width:2px;border-radius:8px;padding:13px 16px}.sidebar nav button:hover{background:#10243b}.sidebar nav button.active{background:#1b3760}.sidebar footer{padding:20px 28px}.topbar{background:#07111fe0;min-height:96px;padding:20px 28px}.content{padding:24px 28px}.overview-layout{grid-template-columns:minmax(680px,1fr) 300px;gap:18px}.overview-main{gap:18px}.metric-grid{gap:14px}.metric-card,.chart-frame,.service-table,.attention,.quick-panel,.panel,.infra-view{border-color:#263c58;border-radius:12px}.metric-card{background:#0d1b2c;min-height:106px;padding:17px}.metric-card.healthy{border-color:#385b98}.metric-card.warning{border-color:#665b7d}.metric-card.critical{border-color:#774959}.metric-card:hover{background:#142b48;transform:translateY(-2px);box-shadow:0 14px 28px #0208144d}.chart-frame{padding:19px 20px 14px}.quick-panel{background:#0d1b2c;padding:16px;top:116px}.quick-panel>button{background:#10233a;border-radius:9px;padding:13px}.quick-panel>button:hover{background:#183352;border-color:#456a9c}.service-row:hover,.service-row>button:hover,.attention>button:hover,.infra-row:hover{background:#122946}.grid path{stroke:#263c58}.service-row{border-color:#203752}.service-row>a,.domain-table a>svg{color:#9bb5ff}i.ok,.state-cell i.ok,.service-row i.ok{box-shadow:0 0 10px #9bb5ff60}.top-check,.overall,.view-heading button,.heading-actions button{background:#10233a;border-radius:8px}.top-check:hover,.overall:hover,.view-heading button:hover,.heading-actions button:hover{background:#183352;border-color:#456a9c}.login{background:radial-gradient(circle at 50% 0,#193c67 0,transparent 45%),var(--bg)}.login form{background:#0d1b2c;border-color:#385374;border-radius:14px;padding:34px;box-shadow:0 30px 80px #01071299}.login input{background:#091625;border-color:#314a69;border-radius:7px;padding:12px}.login button{color:#fff;background:#3159a6;border-color:#7194e8;border-radius:7px;padding:12px}.proxy-form button,.reminder-form button,.plan-button,.apply-button,.save-settings{color:#fff;background:#3159a6;border-color:#7194e8}.toast{color:#edf1ff;background:#142b48;border-color:#526fa7}@media (width<=850px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar nav button.active{border-bottom-color:var(--green)}.content{padding:12px}}:root .brand-logo{filter:invert()sepia(.2)saturate(1.3)hue-rotate(175deg)brightness(1.9);width:93px;height:32px;display:block}.brand-logo-login{margin-bottom:28px}
