:root{color:#17202a;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}main{max-width:1440px;margin:0 auto;padding:32px}.hero{justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#67748a;margin:0 0 4px;font-size:12px}h1{margin:0;font-size:42px;line-height:1}h2{margin:0 0 12px}.muted,p{color:#667085}button{cursor:pointer;background:#e6ebf2;border:0;border-radius:14px;align-items:center;gap:8px;padding:12px 16px;font-weight:700;display:inline-flex}button:disabled{opacity:.55;cursor:not-allowed}.iconButton{flex:none;justify-content:center;width:38px;height:38px;padding:0}.primary{color:#fff;background:#17202a}.danger{color:#b42318;background:#fff1f3;border:1px solid #fecdca}.danger:hover{background:#ffe4e8;border-color:#fda29b}.full{justify-content:center;width:100%;margin-top:12px}input,textarea,select{box-sizing:border-box;width:100%;font:inherit;background:#fff;border:1px solid #d0d7e2;border-radius:12px;padding:12px}textarea{resize:vertical;min-height:96px}select{cursor:pointer}label{color:#536173;margin:14px 0 6px;font-size:13px;font-weight:700;display:block}.card,.stats article,.stats .statButton{background:#fff;border:1px solid #e1e7ef;border-radius:24px;box-shadow:0 12px 34px #1018280f}.stats{grid-template-columns:minmax(150px,.65fr) repeat(2,minmax(360px,1.5fr));gap:16px;margin:20px 0;display:grid}.stats article,.stats .statButton{text-align:left;font:inherit;color:inherit;align-items:start;gap:8px;padding:20px;display:grid}.stats .statButton:hover{background:#f7f9fc;border-color:#17202a}.stats svg{color:#536173}.stats strong{font-size:30px}.environmentStatCard{box-sizing:border-box;gap:12px;width:100%;padding:20px;display:grid}.statGroupHeader{color:#536173;align-items:center;gap:8px;font-weight:800;display:flex}.statMetricGrid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.statMetric{box-sizing:border-box;background:#fbfcfe;border:1px solid #e4e9f1;border-radius:14px;align-items:start;gap:4px;width:100%;min-width:0;padding:10px 12px;display:grid}.statMetric span{color:#667085;font-weight:700}.statMetric.clickable{color:inherit;background:snow;border-color:#fecdca;justify-items:start}.statMetric.clickable:hover{background:#fff1f3;border-color:#b42318}.grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.dashboardGrid{grid-template-columns:minmax(260px,.75fr) minmax(320px,1fr) minmax(420px,1.35fr)}.card{padding:24px}.wide{margin-top:20px}.list{gap:10px;display:grid}.compactList{max-height:420px;padding-right:4px;overflow:auto}.row{background:#fff;border:1px solid #eef2f6;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.asButton{text-align:left;width:100%;font:inherit;font-weight:inherit}.asButton:hover,.selected{background:#f7f9fc;border-color:#17202a}.row p{margin:4px 0 0}.repoMeta{color:#667085;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px;font-weight:700;display:flex}.repoMeta code{font-size:12px}.error{color:#912018;white-space:pre-wrap;background:#fff1f3;border-radius:16px;padding:16px}.notice{color:#027a48;white-space:pre-wrap;background:#ecfdf3;border-radius:16px;padding:16px}.tabs{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 20px;display:flex}.tabs button.active{color:#fff;background:#17202a}.envGrid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.env{background:#fbfcfe;border:1px solid #e4e9f1;border-radius:18px;padding:16px}.envHeader{justify-content:space-between;align-items:start;gap:12px;display:flex}.envHeader p{margin:4px 0 0}.sectionHeader,.popupHeader{justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;display:flex}.sectionHeader h2,.popupHeader h2{margin:0}.compactHeader{align-items:start;margin-bottom:8px}.compactHeader p{margin:4px 0 0}.ok,.warn{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}.ok{color:#027a48;background:#ecfdf3}.warn{color:#b54708;background:#fffaeb}.components{gap:8px;margin-top:14px;display:grid}.components div{border-top:1px dashed #d7deea;gap:4px;padding-top:8px;display:grid}code{overflow-wrap:anywhere;color:#344054;background:#eef2f6;border-radius:6px;padding:2px 6px}small{color:#667085}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.single{grid-template-columns:minmax(320px,520px);justify-content:center}.loginCard{width:100%;max-width:520px}.small{font-size:13px}.sectionGap{margin-top:28px}.inlineCheck{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.inlineCheck input[type=checkbox]{appearance:none;cursor:pointer;background:#e4e9f1;border:1px solid #cbd5e1;border-radius:999px;flex:0 0 44px;width:44px;height:24px;padding:0;transition:background .2s,border-color .2s,box-shadow .2s;position:relative;box-shadow:inset 0 1px 2px #10182814}.inlineCheck input[type=checkbox]:before{content:"";background:#fff;border-radius:999px;width:18px;height:18px;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #10182838}.inlineCheck input[type=checkbox]:checked{background:#12b76a;border-color:#12b76a}.inlineCheck input[type=checkbox]:checked:before{transform:translate(20px)}.inlineCheck input[type=checkbox]:focus-visible{outline-offset:2px;outline:3px solid #84caff}.inlineCheck input[type=checkbox]:disabled{opacity:.55;cursor:not-allowed}.twoCols{grid-template-columns:1fr 1fr;gap:12px;display:grid}.templateDataSection{border-top:1px dashed #d7dfec;margin-top:18px;padding-top:16px}.templateVariableGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.templateVariableField{min-width:0}.templateVariableField label{justify-content:space-between;align-items:center;gap:8px;display:flex}.templateVariableField p{margin:6px 0 0}.requiredMark{color:#b42318;text-transform:uppercase;white-space:nowrap;background:#fff1f3;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:900}.resultBox{background:#fbfcfe;border:1px solid #d0d7e2;border-radius:18px;margin-top:16px;padding:14px}.resultBox p{overflow-wrap:anywhere;margin:8px 0 0}a{color:#175cd3;font-weight:700}@media (width<=920px){main{padding:18px}.hero,.grid,.stats,.twoCols{grid-template-columns:1fr;display:grid}.templateVariableGrid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.dashboardGrid{grid-template-columns:1fr}}@media (width<=560px){.stats{grid-template-columns:1fr}}.detailStack{gap:20px;display:grid}.entrypointList{max-height:260px;padding-right:4px;overflow:auto}.environmentMapCard{width:100%;overflow:hidden}.environmentMapCard .topologyGraph{width:100%}.environmentMapCard .topologyGraphScroll{max-height:820px;padding-bottom:8px;overflow:auto}.tall{max-height:620px}.buttonLink{color:#17202a;background:#e6ebf2;border-radius:14px;align-items:center;padding:12px 16px;font-weight:800;text-decoration:none;display:inline-flex}.serviceEditor{gap:14px;margin:10px 0 14px;display:grid}.deploymentActions{grid-template-columns:minmax(220px,.55fr) minmax(260px,1fr);gap:12px;margin-top:16px;display:grid}.deploymentActions .primary{justify-content:center}.editorRow{background:#fbfcfe;border:1px solid #e4e9f1;border-radius:18px;padding:14px}.fourCols{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.podCard{background:#fbfcfe;border:1px solid #e4e9f1;border-radius:18px;padding:14px}.containerMenuWrap{position:relative}.containerButton{text-align:left;background:#fff;border:1px dashed #d7deea;border-radius:12px;padding:10px;font-weight:600;display:grid}.containerActionMenu{z-index:30;background:#fff;border:1px solid #d0d7e2;border-radius:14px;gap:4px;min-width:180px;padding:6px;display:grid;position:fixed;box-shadow:0 16px 34px #10182829}.containerActionMenu button{background:0 0;border-radius:10px;justify-content:flex-start;width:100%;padding:9px 10px}.containerActionMenu button:hover{background:#eef4ff}.logBox{color:#e6edf3;white-space:pre-wrap;background:#101828;border-radius:16px;min-height:360px;max-height:560px;padding:14px;font-size:12px;line-height:1.45;overflow:auto}.runtimePopupBackdrop{z-index:20;background:#10182861;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.runtimePopup{width:min(920px,100vw - 48px);max-height:calc(100vh - 48px);overflow:auto}.runtimePopup.widePopup{width:min(1500px,100vw - 48px)}.runtimePopup .logBox{min-height:420px;max-height:58vh}.logTailToggle{background:#fbfcfe;border:1px solid #e4e9f1;border-radius:12px;padding:10px 12px}.descriptionBox{gap:12px;margin-top:14px;display:grid}.descriptionGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.descriptionGrid div{background:#fbfcfe;border:1px solid #eef2f6;border-radius:12px;padding:10px}.descriptionGrid p{overflow-wrap:anywhere;margin:4px 0 0}.actionPanelList{margin-top:14px}.topologyGraph{gap:16px;display:grid}.topologyGraphHeader{background:linear-gradient(135deg,#fbfcfe,#f0f5ff);border:1px solid #d9e2f0;border-radius:18px;justify-content:space-between;align-items:start;gap:12px;padding:14px 16px;display:flex}.topologyGraphHeader p{margin:6px 0 0}.topologyCount{color:#fff;white-space:nowrap;background:#17202a;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.topologyEdgeLegend{color:#667085;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:12px;font-weight:800;display:flex}.topologyEdgeLegend span{align-items:center;gap:6px;display:inline-flex}.topologyEdgeLegend i{background:#98a2b3;border-radius:999px;width:22px;height:3px;display:inline-block}.topologyEdgeLegend i.route{background:#2e90fa}.topologyEdgeLegend i.select{background:#12b76a}.topologyEdgeLegend i.contain{background:#667085}.topologyEdgeLegend i.ownership{background:#f79009}.topologyEdgeLegend i.recursive{background:repeating-linear-gradient(90deg,#7a5af8 0 7px,#0000 7px 12px)}.topologyGraphScroll{max-width:100%;padding-bottom:8px;overflow:auto}.topologyGraphCanvas{background:radial-gradient(circle at 0 0,#f4f8ff,#fff 42%);border:1px solid #e4e9f1;border-radius:22px;position:relative;overflow:hidden}.topologyGraphEdges{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:visible}.topologyGraphEdgePath{fill:none;stroke:#98a2b3;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round}.topologyGraphEdgePath.default{stroke:#98a2b3}.topologyGraphEdgePath.route{stroke:#2e90fa}.topologyGraphEdgePath.select{stroke:#12b76a}.topologyGraphEdgePath.contain{stroke:#667085}.topologyGraphEdgePath.ownership{stroke:#f79009}.topologyGraphEdgePath.recursive{stroke-dasharray:7 6;stroke:#7a5af8}.topologyGraphEdgeLabel{fill:#667085;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;font-size:11px;font-weight:800}.topologyGraphNode{z-index:1;width:240px;position:absolute}.topologyNodeCard{background:#fff;border:1px solid #d0d7e2;border-radius:16px;gap:6px;min-width:180px;max-width:280px;padding:12px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #1018280f}.topologyNodeCard:before{content:"";background:#98a2b3;width:5px;position:absolute;inset:0 auto 0 0}.topologyNodeCard.host:before,.topologyNodeCard.ingress:before{background:#2e90fa}.topologyNodeCard.service:before{background:#12b76a}.topologyNodeCard.deployment:before{background:#7a5af8}.topologyNodeCard.pod:before{background:#f79009}.topologyNodeCard.environment:before{background:#344054}.topologyNodeCard.good{border-color:#abefc6}.topologyNodeCard.bad{background:snow;border-color:#fecdca}.topologyNodeCard.pending{background:#fffdf5;border-color:#fedf89}.topologyNodeCard.sharedTarget{box-shadow:0 0 0 3px #eef4ff,0 10px 24px #1018280f}.topologyNodeCard:target{outline-offset:3px;outline:3px solid #84caff}.topologyNodeCard strong{overflow-wrap:anywhere;line-height:1.15}.topologyNodeCard small{overflow-wrap:anywhere;line-height:1.35}.topologyNodeCard.compact{min-width:0;max-width:none}.topologyType{text-transform:uppercase;letter-spacing:.12em;color:#667085;background:#eef2f6;border-radius:999px;width:fit-content;padding:3px 8px;font-size:10px;font-weight:900}.topologyUnconnected{background:#fbfcfe;border:1px dashed #d0d7e2;border-radius:18px;gap:10px;padding:14px;display:grid}.topologyNodeGrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.topologyEmptyGraph{background:#fbfcfe;border:1px dashed #d0d7e2;border-radius:18px;padding:16px}.card h2 svg{vertical-align:text-bottom;margin-right:6px}@media (width<=920px){.fourCols{grid-template-columns:1fr 1fr}}@media (width<=560px){.fourCols,.deploymentActions{grid-template-columns:1fr}}.nestedEditor{border-top:1px dashed #d7dfec;margin-top:12px;padding-top:12px}.envHeader.compact{margin-bottom:6px}.inlineRow{align-items:end;margin:8px 0}.inlineRow button{align-self:end}.threeCols{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.editorRow.subtle{background:#ffffff08;border-style:dashed}.deploymentDefinitionLayout{grid-template-columns:minmax(0,1fr);display:grid}.secretPickerRow{grid-template-columns:1fr minmax(220px,1.4fr) 1fr 1fr auto;align-items:end;gap:12px;margin:8px 0;display:grid}.secretPickerActions{align-items:end;gap:8px;display:flex}.inlineError{grid-column:1/-1;margin:0;padding:10px 12px}@media (width<=900px){.threeCols{grid-template-columns:1fr}}@media (width<=1180px){.secretPickerRow{grid-template-columns:1fr 1fr}}@media (width<=560px){.secretPickerRow{grid-template-columns:1fr}}.loadingBanner{color:#1849a9;background:#eef4ff;border:1px solid #c7d7fe;border-radius:16px;align-items:center;gap:10px;margin:0 0 16px;padding:14px 16px;font-weight:800;display:flex}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:16px;height:16px;animation:.75s linear infinite spin;display:inline-block}.spinner.inline{vertical-align:-2px;width:12px;height:12px}.loadingRows{gap:10px;display:grid}.skeletonRow{background:linear-gradient(90deg,#f2f4f7 25%,#e9eef6 37%,#f2f4f7 63%) 0 0/400% 100%;border:1px solid #eef2f6;border-radius:16px;gap:10px;padding:14px;animation:1.2s ease-in-out infinite shimmer;display:grid}.skeletonRow span,.skeletonRow small{background:#ffffffbf;border-radius:999px;height:14px;display:block}.skeletonRow span{width:62%}.skeletonRow small{width:38%}.emptyState{background:#fbfcfe;border:1px dashed #d0d7e2;border-radius:16px;padding:16px}.emptyState p{margin:6px 0 0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.helpBox{background:#fbfcfe;border:1px solid #d0d7e2;border-radius:16px;margin:0 0 14px;padding:12px 14px}.helpBox p{margin:6px 0 0}@media (width<=560px){.topologyGraphHeader{display:grid}.topologyNodeCard{min-width:0;max-width:none}}
