:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;font-size:14px;color-scheme:dark;--bg:#10161e;--panel:#18212b;--panel2:#1c2733;--text:#e3eaf2;--muted:#92a0b1;--line:#2a3542;--accent:#6cd8bd;--accent-soft:#203c38;--blue:#7aabec;--warn:#e4bb74;--bad:#ed99a0;--grid-dot:#303b47;--shadow:0 20px 80px #0005;background:var(--bg);color:var(--text)}:root[data-theme=light]{color-scheme:light;--bg:#f2f5f8;--panel:#fff;--panel2:#f4f7fa;--text:#1f3043;--muted:#65778a;--line:#dce4ec;--accent:#17856e;--accent-soft:#e6f4ee;--blue:#3d78c6;--warn:#996719;--bad:#b33c4f;--grid-dot:#d9e3ec;--shadow:0 20px 80px #16304820}*{box-sizing:border-box}body{margin:0;min-width:320px}button,select,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,strong,b{font-weight:500}svg{flex-shrink:0}button{border:0;background:none}small{font-size:12px}::selection{background:var(--accent-soft)}.app{min-height:100vh}.app-header{padding:25px 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--panel);gap:20px}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;color:var(--bg);background:var(--text);font-size:23px;font-weight:500}.brand>div>span{font-size:10px;letter-spacing:.16em;color:var(--muted)}h1{font-size:23px;letter-spacing:.01em;margin-top:3px}.header-right{display:flex;align-items:center;gap:22px}.private-tag{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.updated{display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--line);padding-left:20px}.updated span{font-size:11px;color:var(--muted)}.updated strong{font-size:13px;font-variant-numeric:tabular-nums}.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;background:var(--panel2)}.dashboard{padding:22px 38px 18px;max-width:1900px;margin:auto}.rollout-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--muted);background:var(--panel2)}.rollout-banner>span:first-child{display:flex;align-items:center;gap:9px;color:var(--text);flex-shrink:0}.rollout-banner b{font-variant-numeric:tabular-nums;color:var(--accent)}.pulse-dot,.dot,.state-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.pulse-dot{color:var(--accent)}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:25px 0;gap:20px}.summary>div{border-left:1px solid var(--line);padding-left:18px;display:flex;flex-direction:column;gap:5px}.summary>div:first-child{border-color:var(--accent)}.summary>div>span{color:var(--muted);font-size:12px}.summary strong{font-size:31px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.summary strong small{font-size:12px;color:var(--muted);margin-left:7px;letter-spacing:0}.summary em{font-style:normal;color:var(--muted);font-size:11px}.warning{color:var(--warn)}.host-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.host-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;text-align:left;padding:17px;min-width:0;transition:border-color .2s}.host-card:hover{border-color:var(--muted)}.host-card.selected{border-color:var(--accent)}.host-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.host-heading>strong{font-size:16px}.host-icon{color:var(--muted);display:flex}.host-heading .badge{margin-left:auto}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:var(--muted)}.badge.good,.good{color:var(--accent)}.badge.warn,.warn{color:var(--warn)}.badge.bad,.bad{color:var(--bad)}.host-card>p{font-size:12px;color:var(--muted);margin:7px 0 17px}.meter{margin-top:11px}.meter>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.meter>div>span{font-size:12px;color:var(--muted)}.meter strong{font-size:15px;font-variant-numeric:tabular-nums}.meter small{font-size:11px;color:var(--muted);margin-left:3px}.track{height:4px;background:var(--panel2);border-radius:4px;overflow:hidden}.track>div{height:100%;background:var(--accent);border-radius:4px}.track>div.hot{background:var(--warn)}.host-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:17px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);gap:6px}.host-bottom small{font-size:10px;opacity:.8}.host-source{font-size:11px;color:var(--muted);margin-top:7px}.primary-grid,.secondary-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:18px;margin-top:20px}.panel{border:1px solid var(--line);border-radius:11px;background:var(--panel);min-width:0;padding:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.panel-title>div:first-child{display:flex;align-items:center;gap:8px}.panel-title svg{color:var(--muted)}h2{font-size:14px}.panel-title>span{font-size:11px;color:var(--muted)}.flow-desktop{height:355px;margin:10px -4px 0}.react-flow__node-default{border:0;border-radius:9px;padding:0;width:160px;background:var(--panel2);box-shadow:none;color:var(--text)}.topo-node{padding:12px;border:1px solid var(--line);border-radius:9px;text-align:left}.topo-node.connected{border-color:var(--accent)}.topo-node>div{display:flex;gap:7px;align-items:center}.topo-node i{width:5px;height:5px;border-radius:50%;background:var(--muted);margin-left:auto}.topo-node.connected i{background:var(--accent)}.topo-node strong{font-size:13px}.topo-node small{font-size:10px;display:block;color:var(--muted);margin:6px 0;white-space:nowrap}.topo-node>span{font-size:11px;color:var(--muted)}.react-flow__handle{opacity:0}.react-flow__attribution{background:var(--panel)!important;font-size:9px!important;color:var(--muted)}.dependency-notes{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted)}.dependency-notes>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dependency-notes strong{color:var(--text)}.line-key{width:16px;height:0;border-top:1px dashed var(--muted)}.line-key.good{border-top:2px solid var(--accent)}.flow-mobile{display:none}.events-panel{display:flex;flex-direction:column}.event-list{margin-top:15px;flex:1;max-height:395px;overflow:auto}.event{width:100%;display:flex;gap:11px;text-align:left;padding:13px 0;border-bottom:1px solid var(--line)}.event:last-child{border-bottom:0}.event-icon{width:25px;height:25px;border-radius:7px;background:var(--panel2);display:grid;place-items:center;color:var(--warn);flex-shrink:0}.event.info .event-icon{color:var(--muted)}.event>span:last-child{min-width:0}.event strong{font-size:12px;display:block;overflow-wrap:anywhere}.event small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.event em{display:block;font-size:11px;color:var(--muted);font-style:normal;margin-top:5px;line-height:1.5}.event-pagination{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);padding-top:11px;border-top:1px solid var(--line)}.event-pagination span{margin-right:auto}.event-pagination button{border:1px solid var(--line);border-radius:5px;width:25px;height:25px;display:grid;place-items:center}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:260px;color:var(--muted);text-align:center;padding:15px}.empty strong{color:var(--text);font-size:13px}.empty span{font-size:12px;max-width:230px;line-height:1.7}.empty svg{color:var(--accent)}.empty.compact{min-height:80px;font-size:12px}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:15px;gap:10px}.chart-tabs{display:flex;gap:4px}.chart-tabs button{font-size:12px;color:var(--muted);padding:5px 9px;border-radius:5px}.chart-tabs button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.chart-toolbar small{font-size:11px;color:var(--muted)}.chart{height:225px;margin-top:5px;min-width:0}.chart-caption{color:var(--muted);font-size:11px;margin-top:8px}.segmented{display:flex;border:1px solid var(--line);padding:2px;border-radius:6px;gap:2px}.segmented button{font-size:11px;padding:4px 7px;border-radius:4px;color:var(--muted)}.segmented button[aria-pressed=true]{background:var(--panel2);color:var(--text)}.text-button{display:flex;gap:5px;align-items:center;font-size:11px;color:var(--muted)}.live-values{margin-top:15px}.live-values>div{display:flex;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.live-values svg{color:var(--muted)}.live-values span{color:var(--muted)}.live-values strong{margin-left:auto;font-size:13px;font-variant-numeric:tabular-nums}.live-values small{color:var(--muted);font-size:10px;margin-left:3px}.selected-source{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;font-size:11px;margin-top:15px}.selected-source>span{color:var(--muted)}.selected-source strong{text-align:right;overflow-wrap:anywhere}footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;color:var(--muted);font-size:11px;padding-top:18px}footer>span{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.notice{padding:11px 14px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);font-size:12px;color:var(--muted);margin-bottom:14px;line-height:1.6}.notice.error{color:var(--bad);border-color:var(--bad)}.notice.demo{color:var(--warn)}.initial{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:20px}.initial h1{font-size:20px}.initial p{color:var(--muted)}.initial button{padding:9px 14px;border:1px solid var(--line);border-radius:7px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-backdrop{position:fixed;inset:0;background:#0007;backdrop-filter:blur(5px);z-index:30;display:flex;justify-content:flex-end;padding:18px}.detail-dialog{width:min(720px,100%);max-height:100%;background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.detail-dialog>header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 18px;gap:15px}.detail-dialog>header small{font-size:10px;letter-spacing:.16em;color:var(--muted)}.detail-dialog h2{font-size:25px;margin:6px 0}.detail-dialog>header span{font-size:12px;color:var(--muted)}.detail-tabs{display:flex;gap:6px;padding:0 24px 12px;border-bottom:1px solid var(--line)}.detail-tabs button{padding:8px 12px;font-size:12px;border-radius:6px;color:var(--muted)}.detail-tabs button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.detail-content{overflow:auto;padding:18px 24px 28px;overscroll-behavior:contain}.source-line{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:15px}.detail-content h3{font-size:13px;margin:20px 0 11px}.detail-content h3>span{color:var(--muted);margin-left:4px}.table-wrap{max-width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}td,th{text-align:left;vertical-align:top;padding:10px 7px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}th{font-size:11px;color:var(--muted);font-weight:400}td:first-child,th:first-child{padding-left:0}td strong{font-size:12px}td small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.service-grid>div{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:6px;min-width:0}.service-grid strong{font-size:11px;overflow-wrap:anywhere;flex:1;min-width:0}.service-grid small{display:block;width:100%;padding-left:12px;font-size:10px;color:var(--muted)}.compose-item{display:flex;flex-wrap:wrap;gap:5px;justify-content:space-between;font-size:12px;border-bottom:1px solid var(--line);padding:10px 0}.compose-item span{color:var(--muted);font-size:11px}.compose-item code{width:100%;font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:4px}.probe{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;padding:8px 0}.probe>span{font-size:11px;color:var(--muted)}.muted{color:var(--muted);font-size:12px;line-height:1.7;margin:14px 0}.outline-button,.package-pager button{border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:12px}.packages{margin-top:15px}.package-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:15px;font-size:11px;color:var(--muted)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 25px}.facts dt{font-size:11px;color:var(--muted)}.facts dd{font-size:13px;margin:6px 0 0;overflow-wrap:anywhere}@media(min-width:1700px){.flow-desktop{height:340px}.chart{height:230px}.host-card{padding:20px}.primary-grid,.secondary-grid{grid-template-columns:minmax(0,1.8fr) minmax(360px,1fr)}}@media(max-width:1150px){.app-header,.dashboard{padding:20px 24px}.host-grid{gap:10px}.host-card{padding:13px}.host-heading{gap:6px}.host-heading>strong{font-size:14px}.host-icon{display:none}.primary-grid,.secondary-grid{grid-template-columns:1fr}.events-panel{min-height:200px}.event-list{max-height:230px}.empty{min-height:160px}.flow-desktop{height:350px}.selected-panel .live-values{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}}@media(max-width:800px){.host-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rollout-banner{align-items:flex-start;flex-direction:column;gap:7px}.private-tag{display:none}.host-icon{display:flex}.host-heading>strong{font-size:16px}}@media(max-width:650px){.flow-desktop{display:none}.flow-mobile{display:grid;gap:10px;margin:18px 0}.flow-mobile button{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px;border:1px solid var(--line);border-radius:7px;padding:13px}.flow-mobile button>span{display:flex;gap:9px;align-items:center;font-size:13px}.flow-mobile small{font-size:11px;color:var(--muted)}.dependency-notes{font-size:10px;gap:10px}.panel{padding:15px}.summary{gap:16px}.summary>div{padding-left:12px}.summary strong{font-size:27px}.summary em{font-size:10px;line-height:1.5}.chart-toolbar small{font-size:10px}.modal-backdrop{padding:8px}.detail-dialog>header{padding:19px 17px 15px}.detail-tabs{padding:0 17px 12px}.detail-content{padding:17px}.detail-dialog h2{font-size:23px}.probe{align-items:flex-start;flex-direction:column;gap:5px}.service-grid{grid-template-columns:1fr}}@media(max-width:450px){.app-header{padding:17px 15px;gap:10px}.dashboard{padding:14px 12px}.brand{gap:10px}.brand-mark{width:33px;height:33px;font-size:20px;border-radius:9px}.brand>div>span{font-size:8px;letter-spacing:.1em}h1{font-size:19px}.header-right{gap:10px}.updated{display:none}.host-grid{grid-template-columns:1fr}.host-card{padding:16px}.host-icon{display:flex}.host-card>p{margin-bottom:15px}.meter strong{font-size:16px}.summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:20px 0}.summary strong{font-size:29px}.summary em,.host-bottom small{font-size:11px}.host-heading>strong{font-size:16px}.panel-title{gap:8px;flex-wrap:wrap}.panel-title>span{font-size:10px}.selected-panel .live-values{display:block}.chart-toolbar{align-items:flex-start;flex-wrap:wrap}.chart-toolbar small{width:100%;padding-left:8px}.chart{height:220px}.primary-grid,.secondary-grid{margin-top:14px;gap:14px}.chart-caption{font-size:10px}.facts{grid-template-columns:1fr 1fr;gap:17px 12px}table{font-size:11px}td,th{padding:9px 4px}.detail-tabs{gap:3px}.detail-tabs button{padding:8px 9px}.package-pager{flex-wrap:wrap;justify-content:center}.package-pager span{order:3;width:100%;text-align:center}footer{line-height:1.7}.flow-mobile button{padding:12px 9px}.flow-mobile small{font-size:10px}}@media(pointer:coarse){button{min-height:44px}.event-pagination button,.icon-button{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.reduce-motion .react-flow__edge.animated path{animation:none!important}
