:root{--bg:#09131f;--panel:#0d1b2a;--panel2:#102235;--line:#20354a;--text:#eef4fb;--muted:#94a8bc;--blue:#5f85ff;--green:#3ddc97;--red:#ff5f76;--amber:#ffb45e;--purple:#7f71ff}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#08131f,#0b1724);color:var(--text);font:14px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;display:grid;grid-template-columns:212px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:18px 12px;background:#0a1623}.brand{font-weight:800;font-size:19px;padding:2px 10px 24px}.sidebar nav{display:grid;gap:5px}.sidebar a{padding:10px 12px;border-radius:8px;color:#c6d4e2}.sidebar a.active{background:#182a3d;color:white}.badge{float:right;background:#d64f67;border-radius:99px;padding:1px 7px}main{padding:0 22px 28px;max-width:1600px}.topbar{height:56px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.search{border:1px solid var(--line);border-radius:8px;padding:8px 14px;width:360px}.hero{display:flex;justify-content:space-between;gap:24px;padding:20px 0 14px}.title-row{display:flex;align-items:center;gap:12px}h1{font-size:24px;margin:0}h2{font-size:15px;margin:0}.hero p,.panel-head p{margin:4px 0;color:var(--muted)}.meta{color:var(--muted);margin-top:10px}.actions{display:flex;gap:8px}.actions button,select{background:#0d1b2a;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 12px}.pill{padding:4px 9px;border-radius:99px;font-size:12px}.purple{background:#272358;color:#c9c4ff}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line)}.tab{border:0;background:none;color:#b8c6d4;padding:11px 2px}.tab.active{color:#5ff2cb;border-bottom:2px solid #5ff2cb}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.card,.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:10px}.card{padding:15px}.kpi{font-weight:800;font-size:22px}.micro{color:var(--muted);margin-top:9px;font-size:12px}.good{color:var(--green)}.danger .kpi{color:#ffd7de}.workspace{display:grid;grid-template-columns:minmax(600px,1.7fr) minmax(360px,.8fr);gap:14px}.panel{padding:14px}.panel-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:12px}.graph{height:440px;position:relative;overflow:hidden;border:1px solid #172c40;border-radius:8px;background-image:radial-gradient(#1d344a 1px,transparent 1px);background-size:22px 22px}.node{position:absolute;min-width:150px;padding:10px 12px;border-radius:9px;border:1px solid var(--line);background:#102033;box-shadow:0 6px 20px #0005;cursor:pointer}.node strong{display:block}.node small{color:var(--muted)}.node.modify{border-color:var(--blue)}.node.create{border-color:var(--green)}.node.replace,.node.delete{border-color:var(--red);background:#251421}.node.selected{outline:2px solid #e7edf5}.edge{position:absolute;height:1px;background:#6e879f;transform-origin:left center;z-index:0}.details-panel{min-height:468px}.resource-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.resource-title code{font-size:12px}.alert{border:1px solid #6a2f3c;background:#28141b;color:#ffb4bf;padding:10px;border-radius:8px;margin:12px 0}.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kv{border:1px solid var(--line);border-radius:8px;padding:9px}.kv h3{font-size:12px;margin:0 0 8px;color:var(--muted)}.row{display:flex;justify-content:space-between;border-top:1px solid #173047;padding:6px 0;font-size:12px}.row:first-of-type{border-top:0}.changed{color:#76e4b4}.table-panel{margin-top:14px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid #1a3044;font-size:12px}th{color:#93a8bc}.risk,.action{padding:3px 7px;border-radius:99px;font-size:11px;display:inline-block}.risk.critical,.action.replace{background:#3a1821;color:#ff9baa}.risk.high{background:#3b2614;color:#ffc176}.risk.medium{background:#30290e;color:#f5d86a}.risk.low,.action.modify{background:#142451;color:#91a8ff}.action.create{background:#103828;color:#71e2ae}.action.delete{background:#472119;color:#ffb08e}tr:hover{background:#102235}tr.selected{background:#14283b}@media(max-width:1000px){body{grid-template-columns:1fr}.sidebar{display:none}.cards{grid-template-columns:1fr 1fr}.workspace{grid-template-columns:1fr}.search{display:none}}
caption[data-viewrule="context"]{text-align:left;color:var(--muted);font-size:12px;padding:0 8px 10px}[data-viewrule-number]{text-align:right;font-variant-numeric:tabular-nums}
