:root{--bg: #eef1f4;--panel: #ffffff;--panel-2: #f6f8fa;--text: #1a2330;--muted: #5c6b7c;--line: #e2e7ee;--line-strong: #c9d2dc;--accent: #0f6e64;--accent-hover: #0c5a52;--accent-soft: #e5f4f1;--accent-text: #ffffff;--ok: #1d6b3a;--warn: #8a5a00;--bad: #b3261e;--warn-bg: #fdf3dd;--bad-bg: #fce9e7;--ok-bg: #e5f4ea;--shadow: 0 1px 2px rgb(22 32 44 / .04), 0 8px 24px rgb(22 32 44 / .04);--ring: 0 0 0 3px rgb(15 110 100 / .22);--r: 8px;--r-lg: 12px;--sidebar: #15202b;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14.5px;line-height:1.5;color:var(--text);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme: dark){:root{--bg: #10151b;--panel: #181e26;--panel-2: #1e2630;--text: #e7edf4;--muted: #9aabbd;--line: #2a3441;--line-strong: #3c4a5c;--accent: #3dbeae;--accent-hover: #67d0c3;--accent-soft: #16332f;--accent-text: #04221e;--ok: #7dcea0;--warn: #e6b555;--bad: #f0a097;--warn-bg: #33290f;--bad-bg: #3a1d1b;--ok-bg: #16301f;--shadow: 0 1px 2px rgb(0 0 0 / .35), 0 8px 24px rgb(0 0 0 / .18);--ring: 0 0 0 3px rgb(61 190 174 / .32);--sidebar: #0d141c;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1100px 420px at 100% -80px,color-mix(in srgb,var(--accent) 9%,transparent),transparent 55%),var(--bg);color:var(--text)}a{color:var(--accent);text-underline-offset:2px}::selection{background:var(--accent-soft);color:var(--text)}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.boot,.gate{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(720px 360px at 50% 0%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%),var(--bg)}.boot{color:var(--muted)}.layout{display:flex;min-height:100dvh}.sidebar{width:256px;flex-shrink:0;background:var(--sidebar);color:#e8eef6;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;color-scheme:dark}.side-head{display:flex;align-items:center;gap:12px;padding:18px 16px 14px}.mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-weight:700;letter-spacing:-.04em;background:var(--accent);color:var(--accent-text)}.side-titles{min-width:0;flex:1}.sidebar .brand{font-weight:680;font-size:14px;letter-spacing:-.02em;line-height:1.25;color:#fff}.sidebar .company{color:#93a3b5;font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar nav{flex:1;overflow-y:auto;padding:4px 10px 16px}.sidebar h4{margin:18px 10px 6px;font-size:12px;font-weight:650;color:#8b9cb0}.sidebar nav a{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 10px;border-radius:var(--r);text-decoration:none;color:#d5dee8;font-size:13.5px}.sidebar nav a svg{color:#8b9cb0;flex-shrink:0}.sidebar nav a:hover{background:#ffffff0f;color:#fff}.sidebar nav a:hover svg{color:#d5dee8}.sidebar nav a.active{background:#3dbeae29;color:#8eebdf;font-weight:650}.sidebar nav a.active svg{color:#8eebdf}.sidebar .foot{position:relative;border-top:1px solid rgb(255 255 255 / .08);padding:10px}.avatar{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;flex-shrink:0;background:#3dbeae2e;color:#8eebdf;font-size:12px;font-weight:700}.user-btn{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:var(--r);background:none;color:#fff;font:inherit;text-align:left;cursor:pointer}.user-btn b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}.sidebar .user-btn:hover,.sidebar .user-btn[aria-expanded=true]{background:#ffffff0f;border-color:#ffffff1a}.user-menu{position:absolute;left:10px;right:10px;bottom:calc(100% + 6px);z-index:30;overflow:hidden;border:1px solid rgb(255 255 255 / .12);border-radius:var(--r-lg);background:#1c2733;box-shadow:0 12px 32px #00000059;color:#e8eef6}.user-menu-head{display:flex;align-items:center;gap:10px;padding:12px 14px}.user-menu-head b{display:block;color:#fff;font-size:13.5px;font-weight:650}.user-menu-head span{display:block;overflow:hidden;color:#93a3b5;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.user-menu-version{padding:9px 14px;border-top:1px solid rgb(255 255 255 / .08);color:#c3cfdc;font-size:13px}.user-menu-version b{color:#fff}.user-menu-group{display:flex;flex-direction:column;padding:4px;border-top:1px solid rgb(255 255 255 / .08)}.user-menu-group button{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 10px;border:0;border-radius:var(--r);background:none;color:#e8eef6;font:inherit;font-size:13.5px;text-align:left;cursor:pointer}.user-menu-group button svg{color:#8b9cb0}.sidebar .user-menu-group button:hover,.sidebar .user-menu-group button:focus-visible{background:#ffffff12;outline:none}.user-menu-group button.danger,.user-menu-group button.danger svg{color:#f0a097}main{flex:1;min-width:0;padding:28px 32px 72px}h1{font-size:26px;font-weight:680;letter-spacing:-.03em;line-height:1.2;margin:0 0 20px}h2{font-size:15px;font-weight:680;letter-spacing:-.015em;margin:28px 0 12px}.panel>h2:first-child,.panel>.row:first-child>h2{margin-top:0}.muted{color:var(--muted)}.lede{margin:-6px 0 18px;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}form.row:not(.panel){background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow)}label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted)}label .muted{font-weight:400}input,select,textarea{font:inherit;font-size:14.5px;font-weight:450;color:var(--text);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 11px;min-width:0;min-height:38px;transition:border-color .15s ease,box-shadow .15s ease}textarea{min-height:88px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input:disabled,select:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--accent)}input[type=file]{padding:6px}button{font:inherit;font-weight:600;border:1px solid var(--line-strong);background:var(--panel);color:var(--text);border-radius:var(--r);padding:8px 14px;min-height:38px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,transform .08s ease}button:hover:not(:disabled){background:var(--panel-2);border-color:var(--muted)}button:active:not(:disabled){transform:translateY(1px)}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--bad)}button.danger:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad)}button:disabled{opacity:.5;cursor:default}td button{min-height:32px;padding:4px 10px;font-size:13px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;background:var(--panel);font-variant-numeric:tabular-nums}th,td{border-bottom:1px solid var(--line);padding:10px 14px;text-align:left;white-space:nowrap;vertical-align:middle}tbody tr:last-child td{border-bottom:none}th{font-size:12px;color:var(--muted);font-weight:650;background:var(--panel-2)}td.num,th.num{text-align:right}tbody tr:hover td{background:var(--panel-2)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--accent-soft)}tr.muted td{color:var(--muted)}td select{padding:4px 8px;min-height:32px}td .row{flex-wrap:nowrap;gap:8px}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:650;line-height:1.5;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);vertical-align:1px}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}.badge.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}.msg{padding:10px 12px;border-radius:var(--r);margin:10px 0;border:1px solid transparent}.msg.error{background:var(--bad-bg);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 25%,transparent)}.msg.warn{background:var(--warn-bg);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.msg.ok{background:var(--ok-bg);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px 14px 18px;box-shadow:var(--shadow);border-left:3px solid var(--accent)}.kpi .v{font-size:24px;font-weight:680;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15}.kpi .l{margin-top:4px;font-size:12.5px;color:var(--muted)}.grid input{border:none;border-radius:0;width:100%;min-height:32px;padding:6px 8px;background:transparent;box-shadow:none}.grid input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.grid td{padding:0;border:1px solid var(--line)}.grid tbody tr:hover td{background:transparent}.grid td.rowno{padding:0 8px;color:var(--muted);font-size:12px;background:var(--panel-2)}.grid tr.err td{background:var(--bad-bg)}.grid tr.ok td{background:var(--ok-bg)}.table-wrap>.row{padding:10px 12px 12px}pre{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);padding:12px;overflow:auto;font-size:12.5px}summary{cursor:pointer;font-weight:650}.login{width:min(420px,100%);margin:0;padding:28px 28px 24px}.login .mark{margin-bottom:16px}.login .brand{font-weight:680;font-size:13px;letter-spacing:-.01em;color:var(--accent);margin-bottom:6px}.login h1{margin-bottom:6px}.login form,.login-form{display:flex;flex-direction:column;gap:14px}.login button.primary{margin-top:2px}.menu-btn{display:none}@media (max-width: 760px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar nav,.sidebar .foot{display:none}.sidebar.open nav{display:block}.sidebar.open .foot{display:flex}.side-head{padding:12px 14px}.menu-btn{display:inline-flex;align-items:center;gap:6px;margin:0;min-height:36px;padding:6px 10px;background:transparent;color:#e8eef6;border-color:#ffffff29}.menu-btn:hover:not(:disabled){background:#ffffff0f;color:#fff}main{padding:18px 16px 48px}.panel .row>label,form.row>label{flex:1 1 100%}h1{font-size:22px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.live-log{height:420px;overflow:auto;margin:0;padding:12px 14px;border-radius:8px;background:#0b0d10;color:#d6dde3;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.sidebar .cfg-back{display:flex;align-items:center;gap:8px;width:100%;margin:8px 0 4px;padding:7px 10px;border:0;border-radius:var(--r);background:none;color:#fff;font-weight:650;cursor:pointer}.sidebar .cfg-back:hover{background:#ffffff0f}.sidebar .cfg-back kbd{margin-left:auto;padding:0 5px;border:1px solid rgb(255 255 255 / .2);border-radius:4px;color:#8b9cb0;font:10px/1.6 inherit}.cfg-page{max-width:880px}.crumbs{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:var(--muted);font-size:13px}.crumbs b{color:var(--text);font-weight:600}.cfg-next{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);color:var(--text);text-decoration:none}.cfg-next:hover{border-color:var(--line-strong);color:var(--accent)}.upd{margin-top:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel-2)}.upd-steps{display:grid;gap:8px;margin:0 0 12px;padding:0;list-style:none;font-size:13.5px}.upd-steps li{display:flex;align-items:center;gap:10px;color:var(--muted)}.upd-steps li:before{content:"";flex:none;box-sizing:border-box;width:16px;height:16px;border:2px solid var(--line-strong);border-radius:50%}.upd-steps li.done{color:var(--text)}.upd-steps li.done:before{background:var(--ok);border-color:var(--ok)}.upd-steps li.active{color:var(--text);font-weight:600}.upd-steps li.active:before{border-color:var(--accent);border-top-color:transparent;animation:upd-spin .8s linear infinite}.upd-steps li.fail{color:var(--bad);font-weight:600}.upd-steps li.fail:before{background:var(--bad);border-color:var(--bad)}.upd-bar{height:6px;overflow:hidden;border-radius:99px;background:var(--line)}.upd-bar>i{display:block;height:100%;border-radius:99px;background:var(--ok);transition:width .4s ease}.upd-bar>i.fail{background:var(--bad)}.upd-log{max-height:260px;margin:8px 0 0;white-space:pre-wrap}@keyframes upd-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.upd-steps li.active:before{animation:none;border-top-color:var(--accent)}}
