@font-face{font-family:Geist;src:url('/geist.woff2') format('woff2');font-weight:400;font-display:swap}
aside,nav,.panel,.panel-title,.metric{min-width:0} .shell{max-width:100%} @media(max-width:1000px){.shell{grid-template-columns:minmax(0,1fr)!important}aside nav{max-width:100%}}
:root{font-family:Geist,'Microsoft YaHei',sans-serif;color:#233746;background:#f3f6f8;font-size:14px;line-height:20px;--ink:#164e63;--line:#d9e2e8;--muted:#647787;--bad:#ad2b32;--good:#16734b}
*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0;text-wrap:pretty}h1{font-size:30px;line-height:36px;font-weight:600}h2{font-size:20px;line-height:28px;font-weight:600}button,input{font:inherit}button{cursor:pointer;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font-weight:600}button:hover{background:#e7f0f4}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #0891b2;outline-offset:4px}.primary{background:var(--ink);color:white;border-color:var(--ink);font-size:16px;line-height:24px}.primary:hover{background:#216980}input{padding:12px;border:1px solid var(--line);border-radius:8px;min-width:0;background:#fff;color:inherit}small,.muted{color:var(--muted);font-size:12px;line-height:16px}.skip{position:absolute;left:16px;top:-100px;background:white;padding:12px;z-index:5}.skip:focus{top:16px}.loading{padding:48px}
.login{max-width:480px;margin:12vh auto;padding:32px;background:#fff;border:1px solid var(--line);border-radius:16px}.brand{display:flex;gap:12px;align-items:center}.brand img{width:40px;height:40px}.login h1{margin:32px 0 12px}.login form{display:grid;gap:16px;margin-top:32px}.login label{display:grid;gap:8px}.login .error{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--bad)}
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}aside{padding:32px 24px;background:#fff;border:1px solid var(--line)}aside .brand{font-size:18px;line-height:28px;font-weight:600}aside nav{display:grid;gap:8px;margin:40px 0}aside nav button{text-align:left;border-color:transparent;font-weight:400;padding:12px}aside nav button[aria-current=page]{background:#e7f0f4;color:var(--ink);font-weight:600}.aside-note{font-size:12px;line-height:20px;color:var(--muted)}main.dashboard{padding:32px;min-width:0}header{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}.actions{display:flex;align-items:center;gap:8px}.subtitle{color:var(--muted);margin-top:8px}.notice{padding:16px;border:1px solid #e5b5b8;background:#fff3f3;color:var(--bad);border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:16px}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.metric strong{display:block;font-size:30px;line-height:36px;margin:12px 0;font-weight:600;font-variant-numeric:tabular-nums}.metric span{color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:24px;overflow:hidden}.panel-title{display:flex;justify-content:space-between;gap:16px;padding:24px;align-items:center}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th,td{padding:16px;border-bottom:1px solid #edf1f4;font-size:14px;line-height:20px}th{background:#f7f9fb;font-size:12px;color:var(--muted);font-weight:600}td small{display:block;margin-top:4px}tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:4px 8px;border-radius:4px;font-size:12px;line-height:16px;background:#e8f5ee;color:var(--good)}.badge.bad{background:#fce9e9;color:var(--bad)}.badge.warn{background:#fff3d7;color:#8c5a00}.empty{padding:32px;color:var(--muted)}.filter{width:280px}.meter{display:block;width:120px;height:8px;margin-top:8px;accent-color:#287e95}.foot{color:var(--muted);font-size:12px;line-height:20px}.error-detail{white-space:pre-wrap;max-width:480px;overflow-wrap:anywhere}.status-line{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;background:#16734b;border-radius:999px}.status-dot.bad{background:#ad2b32}.pagination{display:flex;justify-content:space-between;align-items:center;padding:16px}.nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:0 24px 24px}.node{padding:16px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px}.node b{display:block;margin-bottom:8px}.node p{margin:8px 0}.node .meter{width:100%}
@media(max-width:1000px){.shell{grid-template-columns:1fr}aside{padding:16px}aside nav{display:flex;overflow:auto;margin:16px 0 0}aside nav button{white-space:nowrap}.aside-note{display:none}main.dashboard{padding:24px}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}header{flex-wrap:wrap}}@media(max-width:560px){main.dashboard{padding:16px}.metric{padding:16px}.metric strong{font-size:24px;line-height:32px}.login{margin:32px 16px;padding:24px}h1{font-size:24px;line-height:32px}.panel-title{padding:16px;flex-wrap:wrap}.filter{width:100%}.actions{flex-wrap:wrap}td,th{padding:12px}}
