:root{--ink:#0b1220;--ink2:#475467;--line:#e4e7ec;--line2:#d0d5dd;--bg:#f6f7f9;--card:#fff;--brand:#2b3fd6;--brand-ink:#1e2c9e;--brand-soft:#eef0ff;--ok:#067647;--ok-soft:#ecfdf3;--ok-line:#abefc6;--warn:#93370d;--warn-soft:#fffaeb;--warn-line:#fedf89;--crit:#b42318;--crit-soft:#fef3f2;--crit-line:#fecdca;--info:#175cd3;--info-soft:#eff8ff;--info-line:#b2ddff;--neu:#344054;--neu-soft:#f2f4f7;--night:#0b1220;--night2:#121b2e;--night-line:#24304a;--night-ink:#e6ebf5;--night-ink2:#a9b4c9;--sans:"Inter","Noto Sans SC",system-ui,-apple-system,sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}body{font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--brand)}a:hover{color:var(--brand-ink)}code,.mono{font-family:var(--mono)}.app{background:var(--bg);flex-wrap:wrap;min-height:100vh;display:flex}.side{background:var(--card);border-right:1px solid var(--line);flex-direction:column;flex:220px;gap:20px;max-width:100%;padding:20px 14px;display:flex}@media (min-width:900px){.side{max-width:240px}}.brandmark{color:var(--ink);align-items:center;gap:10px;padding:4px 8px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.brandmark svg{flex:none}.proj{border:1px solid var(--line);background:var(--card);font:inherit;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:10px 12px;display:flex}.proj small{color:var(--ink2);font-size:12px;display:block}.nav{flex-direction:column;gap:2px;display:flex}.nav a{color:var(--ink2);border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:10px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:var(--neu-soft);color:var(--ink)}.nav a.on{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}.nav .count{background:var(--crit-soft);color:var(--crit);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:600}.navlabel{color:var(--ink2);margin-top:8px;padding:0 10px;font-size:12px}.sidefoot{border-top:1px solid var(--line);color:var(--ink2);align-items:center;gap:10px;margin-top:auto;padding-top:14px;font-size:13px;display:flex}.avatar{background:var(--brand-soft);width:32px;height:32px;color:var(--brand-ink);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.main{flex-direction:column;flex:999 560px;gap:24px;min-width:0;padding:28px 36px 56px;display:flex}.wrap{flex-direction:column;gap:24px;width:100%;max-width:1160px;margin:0 auto;display:flex}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--brand);font-size:12px;font-weight:600}.h1{letter-spacing:-.01em;margin:0;font-size:26px;font-weight:700;line-height:1.25}.h2{margin:0;font-size:18px;font-weight:650;line-height:1.35}.h3{margin:0;font-size:15px;font-weight:600;line-height:1.4}.sub{color:var(--ink2);margin:0;font-size:14px;line-height:1.6}.small{color:var(--ink2);font-size:13px;line-height:1.5}.tiny{color:var(--ink2);font-size:12px}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;display:grid}.grid3{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px;display:grid}.grid4{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px;display:grid}.split{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.split>.wide{flex-direction:column;flex:999 560px;gap:20px;min-width:0;display:flex}.split>.narrow{flex-direction:column;flex:300px;gap:20px;min-width:0;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;min-width:0;padding:20px;display:flex}@media (max-width:600px){.main{padding:20px 16px 48px}.card{padding:16px}.side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;gap:10px;padding:12px 16px}.side .proj{flex:auto;width:auto}.nav{flex-flow:row;gap:4px;width:100%;overflow-x:auto}.nav a{white-space:nowrap;flex:none}.navlabel,.sidefoot{display:none}}.card.flat{gap:0;padding:0;overflow:hidden}.cardhead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.divider{background:var(--line);border:0;height:1px;margin:0}.callout{border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:14px;line-height:1.55;display:flex}.callout.ok{background:var(--ok-soft);border:1px solid var(--ok-line)}.callout.warn{background:var(--warn-soft);border:1px solid var(--warn-line)}.callout.crit{background:var(--crit-soft);border:1px solid var(--crit-line)}.callout.info{background:var(--info-soft);border:1px solid var(--info-line)}.btn{border:1px solid var(--line2);background:var(--card);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--neu-soft);color:var(--ink)}.btn.p{background:var(--brand);border-color:var(--brand);color:#fff}.btn.p:hover{background:var(--brand-ink);color:#fff}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.sm{min-height:36px;padding:0 12px;font-size:13px}.btn.lg{min-height:52px;padding:0 22px;font-size:16px}.btn.ghost{color:var(--ink2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--neu-soft);color:var(--ink)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.crit{background:var(--crit-soft);color:var(--crit)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.neu{background:var(--neu-soft);color:var(--neu)}.badge.brand{background:var(--brand-soft);color:var(--brand-ink)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:#dc6803}.dot.crit{background:var(--crit)}.dot.info{background:var(--info)}.dot.neu{background:#98a2b3}.tblwrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;min-width:720px;font-size:14px}.tbl th{text-align:left;color:var(--ink2);border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfc;padding:12px 16px;font-size:12px;font-weight:600}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 16px}.tbl tr:last-child td{border-bottom:0}.tbl .t-main{color:var(--ink);font-weight:600}.tbl .t-sub{color:var(--ink2);margin-top:3px;font-size:12px}.stat{flex-direction:column;gap:6px;display:flex}.stat .k{color:var(--ink2);font-size:13px}.stat .v{letter-spacing:-.02em;font-size:28px;font-weight:700}.stat .d{color:var(--ink2);font-size:12px}.meter{background:var(--neu-soft);border-radius:999px;height:8px;overflow:hidden}.meter>span{background:var(--brand);border-radius:999px;height:100%;display:block}.grade{border-radius:50%;flex:none;place-items:center;width:88px;height:88px;font-size:36px;font-weight:800;display:grid}.grade.a{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 6px var(--ok-line)}.grade.c{background:var(--warn-soft);color:var(--warn);box-shadow:inset 0 0 0 6px var(--warn-line)}.grade.f{background:var(--crit-soft);color:var(--crit);box-shadow:inset 0 0 0 6px var(--crit-line)}.code{background:var(--night);color:var(--night-ink);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;border-radius:12px;margin:0;padding:16px 18px;font-size:13px;line-height:1.65;overflow-x:auto}.code .c{color:#8fa0bd}.code .k{color:#9db4ff}.code .s{color:#8ee3b5}.code .r{color:#ffa39a}.inlinecode{font-family:var(--mono);background:var(--neu-soft);color:var(--ink);border-radius:6px;padding:2px 6px;font-size:12.5px}.diffdel{background:#f044382e;margin:0 -18px;padding:0 18px;display:block}.diffadd{background:#12b76a2e;margin:0 -18px;padding:0 18px;display:block}.list{flex-direction:column;display:flex}.li{border-bottom:1px solid var(--line);align-items:flex-start;gap:14px;padding:14px 20px;display:flex}.li:last-child{border-bottom:0}.li .body{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.li .meta{color:var(--ink2);font-size:12px}.ico{border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.ico.ok{background:var(--ok-soft);color:var(--ok)}.ico.warn{background:var(--warn-soft);color:var(--warn)}.ico.crit{background:var(--crit-soft);color:var(--crit)}.ico.info{background:var(--info-soft);color:var(--info)}.ico.neu{background:var(--neu-soft);color:var(--neu)}.ico.brand{background:var(--brand-soft);color:var(--brand-ink)}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}.tabs a{color:var(--ink2);border-bottom:2px solid #0000;align-items:center;gap:6px;min-height:44px;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.tabs a.on{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}.chip{border:1px solid var(--line2);min-height:36px;font:inherit;color:var(--ink);background:var(--card);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:13px;display:inline-flex}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink);font-size:13px;font-weight:600}.input{border:1px solid var(--line2);min-height:44px;font:inherit;color:var(--ink);background:#fff;border-radius:10px;width:100%;padding:0 14px;font-size:14px}.switch{background:var(--line2);cursor:pointer;border:0;border-radius:999px;flex:none;width:44px;height:26px;padding:0;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #10182833}.switch.on{background:var(--ok)}.switch.on:after{left:21px}.check{width:20px;height:20px;accent-color:var(--brand)}.steps{flex-direction:column;gap:0;display:flex}.step{align-items:flex-start;gap:14px;padding-bottom:18px;display:flex;position:relative}.step:last-child{padding-bottom:0}.step .n{background:var(--neu-soft);width:28px;height:28px;color:var(--neu);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.step .n.ok{background:var(--ok);color:#fff}.step .n.cur{background:var(--brand);color:#fff}.search{border:1px solid var(--line2);min-height:40px;color:var(--ink2);background:#fff;border-radius:10px;align-items:center;gap:8px;min-width:240px;padding:0 12px;font-size:14px;display:flex}
.page{flex-direction:column;gap:24px;max-width:760px;margin:0 auto;padding:64px 16px 80px;display:flex}.hero{flex-direction:column;gap:12px;display:flex}.checkform{flex-wrap:wrap;gap:10px;display:flex}.checkform .input{flex:320px}.err{color:var(--crit);margin:0;font-size:13px}.redacted{font-family:var(--mono);background:var(--neu-soft);word-break:break-all;border-radius:6px;padding:2px 6px;font-size:12.5px}
