:root{--bg:#f6f7f9;--card:#fff;--ink:#17212b;--muted:#5d6b78;--line:#e2e6ea;--accent:#0f766e;--accent2:#1d4ed8;--bronze:#b45309;--silver:#64748b;--gold:#ca8a04;--bad:#b91c1c;--good:#15803d}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
code,pre,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#0b1f2a;color:#e8f1f5;gap:12px;flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center}.logo{font-size:26px;color:#5eead4}.title{font-weight:700;font-size:18px}.sub{font-size:13px;color:#9fb7c3}
.mode button{background:transparent;color:#cfe3ea;border:1px solid #33505f;padding:6px 12px;cursor:pointer}.mode button:first-child{border-radius:6px 0 0 6px}.mode button:last-child{border-radius:0 6px 6px 0}
.mode button.on{background:#5eead4;color:#0b1f2a;border-color:#5eead4;font-weight:600}
.tabs{display:flex;gap:2px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto;position:sticky;top:0;z-index:5}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:12px 14px;cursor:pointer;font-size:14px;color:var(--muted);white-space:nowrap}
.tabs button.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
main{max-width:1240px;margin:0 auto;padding:20px 24px 60px}.tab{display:none}.tab.on{display:block}
h1{font-size:24px;margin:8px 0 6px}h3{margin:0 0 8px;font-size:16px}.lead{color:var(--muted);max-width:900px;margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 16px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.cols2,.cols3{grid-template-columns:1fr}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 18px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px}.kpi .v{font-size:22px;font-weight:700}.kpi .l{font-size:12.5px;color:var(--muted)}
.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0 0 18px}
@media(max-width:900px){.flow{grid-template-columns:1fr 1fr}}
.stage{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;position:relative}
.stage h4{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.stage .it{font-size:13px;padding:3px 0;border-bottom:1px dashed var(--line)}.stage .it:last-child{border:0}
.stage.bronze{border-top:4px solid var(--bronze)}.stage.silver{border-top:4px solid var(--silver)}.stage.gold{border-top:4px solid var(--gold)}.stage.src{border-top:4px solid #475569}.stage.int{border-top:4px solid var(--accent2)}.stage.use{border-top:4px solid var(--accent)}
.small{font-size:13px}.muted{color:var(--muted)}.tech-only{display:none}body.tech .tech-only{display:block}body.tech span.tech-only{display:inline}
.note{font-size:13px;color:var(--muted);border-left:3px solid var(--accent);padding:6px 12px;background:#eef7f6}
.layers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@media(max-width:900px){.layers{grid-template-columns:1fr}}
.layer h3 .pill{font-size:11px;padding:2px 7px;border-radius:9px;color:#fff;margin-left:6px;vertical-align:middle}
.tbl-link{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13.5px}
.tbl-link:hover,.tbl-link.on{background:#eef2f6}.tbl-link .n{color:var(--muted);font-variant-numeric:tabular-nums}
.badge{font-size:10.5px;padding:1px 6px;border-radius:8px;border:1px solid var(--line);color:var(--muted);margin-left:6px}
.scroll{overflow:auto;max-height:440px;border:1px solid var(--line);border-radius:8px}
table.data{border-collapse:collapse;width:100%;font-size:12.5px;background:#fff}
table.data th{position:sticky;top:0;background:#f1f4f7;text-align:left;font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
table.data td{padding:5px 8px;border-bottom:1px solid #f0f2f4;vertical-align:top;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cdm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:0 0 16px}
.ent{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}.ent:hover,.ent.on{border-color:var(--accent)}
.ent .t{font-weight:600}.ent .lv{font-size:12.5px;color:var(--accent)}.ent .m{font-size:11.5px;color:var(--muted)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 10px}
select,input,textarea,button{font:inherit}select,input{padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff}input{flex:1;min-width:220px}
button{padding:7px 13px;border-radius:7px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}button.ghost{background:#fff;color:var(--accent)}
textarea{width:100%;min-height:150px;border:1px solid var(--line);border-radius:7px;padding:8px;font-family:ui-monospace,monospace;font-size:12.5px}
pre.out{background:#0f1720;color:#dbe7ee;padding:10px;border-radius:8px;overflow:auto;max-height:320px;font-size:12px}
.ok{color:var(--good);font-weight:600}.err{color:var(--bad);font-weight:600}
.timeline{display:flex;flex-direction:column;gap:6px}.snap{display:grid;grid-template-columns:150px 1fr 120px;gap:10px;align-items:center;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fff}
.bar{height:8px;background:var(--accent);border-radius:4px}
.ask .card{min-height:200px}.ask .wh{border-top:4px solid #94a3b8}.ask .lh{border-top:4px solid var(--accent)}
.finding{padding:6px 0;border-bottom:1px dashed var(--line);font-size:14px}.reco{margin-top:10px;padding:10px;background:#eef7f6;border-radius:8px}
.step{margin-top:10px}.step summary{cursor:pointer;font-size:13px}.layer-tag{font-size:10.5px;padding:1px 6px;border-radius:8px;color:#fff;margin-right:6px;text-transform:uppercase}
.lt-bronze{background:var(--bronze)}.lt-silver{background:var(--silver)}.lt-gold{background:var(--gold)}.lt-mdm,.lt-meta{background:var(--accent2)}.lt-docs{background:#7c3aed}
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.tool a{color:var(--accent2);font-weight:600;text-decoration:none}
.st{font-size:12px;margin-left:6px}.st.up{color:var(--good)}.st.down{color:var(--muted)}
svg text{font-size:11px;fill:#5d6b78}footer{text-align:center;color:var(--muted);font-size:12.5px;padding:20px}

.flowcard{padding:8px}.legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--muted);padding:6px 8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}.legend button{margin-left:auto;padding:4px 10px}
#eco .node rect{fill:#fff;stroke:#c9d3de;stroke-width:1.2;rx:9}#eco .node{cursor:pointer}#eco .node:hover rect,#eco .node.on rect{stroke:#0f766e;stroke-width:2}
#eco .node text{fill:#17212b;font-size:12.5px}#eco .node .sub{fill:#5d6b78;font-size:10.5px}#eco .edge{fill:none;stroke:#cfd8e1}
#eco .zone{fill:#f3f6f9;stroke:#e2e6ea}#eco .zt{fill:#5d6b78;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.ds-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.6fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:10px}
@media(max-width:900px){.ds-row{grid-template-columns:1fr}}.ds-row .id{font-size:11.5px;color:var(--muted)}.ds-row .nm{font-weight:600}.ds-row .lv{color:var(--accent);font-size:13px}
.chip{display:inline-block;font-size:11px;padding:1px 7px;border-radius:9px;border:1px solid var(--line);margin:2px 3px 2px 0;background:#f8fafb}
.chip.b{border-color:#e8c9a8;background:#fbf3ea}.chip.s{border-color:#cdd5df;background:#f2f4f7}.chip.g{border-color:#ecd9a0;background:#fbf6e6}
.qbar{height:6px;background:#f1d5d5;border-radius:3px;overflow:hidden;margin-top:4px}.qbar i{display:block;height:100%;background:var(--good)}

.steps{padding-left:18px;margin:6px 0}.steps li{margin:0 0 6px}
