:root{--iv-kn:#7c5cff;--iv-cp:#2563eb;--iv-wb:#0f9fa8;--iv-hm:#e07a1f;--iv-ag:#d14f8a;--iv-ph:#2f855a}
.iv-list{display:grid;gap:0;margin-top:28px;border-top:1px solid var(--border)}
.iv-row{display:grid;grid-template-columns:92px 180px minmax(0,1fr);gap:22px;padding:24px 0;border-bottom:1px solid var(--border-subtle);align-items:start}
.iv-code{font:700 .82rem/1 var(--font-mono);letter-spacing:.08em}
.iv-name{font-weight:680}.iv-row p{margin:0!important;font-size:.94rem!important}
.iv-kn .iv-code{color:var(--iv-kn)}.iv-cp .iv-code{color:var(--iv-cp)}.iv-wb .iv-code{color:var(--iv-wb)}
.iv-hm .iv-code{color:var(--iv-hm)}.iv-ag .iv-code{color:var(--iv-ag)}.iv-ph .iv-code{color:var(--iv-ph)}
.iv-rule{margin:28px 0;padding:22px 24px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text-secondary);line-height:1.7}
.iv-example{margin-top:18px;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--bg-card-solid)}
.iv-example code{font-family:var(--font-mono);font-size:.78rem;line-height:1.8;white-space:pre-wrap}
.iv-map{margin-top:30px;padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--bg-card-solid);overflow:auto}
.iv-map .mermaid{min-width:760px;margin:0}.iv-note{font-size:.84rem!important;color:var(--text-muted)!important}
.iv-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.iv-tag{padding:7px 10px;border:1px solid var(--border);border-radius:999px;font-family:var(--font-mono);font-size:.68rem}
.iv-tag b{margin-right:5px}.iv-tag--kn b{color:var(--iv-kn)}.iv-tag--cp b{color:var(--iv-cp)}.iv-tag--wb b{color:var(--iv-wb)}
.iv-tag--hm b{color:var(--iv-hm)}.iv-tag--ag b{color:var(--iv-ag)}.iv-tag--ph b{color:var(--iv-ph)}
@media(max-width:700px){.iv-row{grid-template-columns:64px 1fr}.iv-row p{grid-column:1/-1}.iv-map{padding:10px}}

/* Responsive Sankey: avoid right-side clipping on portrait / narrow monitors */
.iv-map{max-width:100%;overflow:hidden}
.iv-map .mermaid{min-width:0;width:100%;max-width:100%}
.iv-map .mermaid svg{display:block;width:100%!important;height:auto!important;max-width:100%!important}
@media(max-width:1180px){
  .term-layout{grid-template-columns:1fr}
  .term-side{position:static}
  .iv-map{padding:14px}
}
@media(max-width:700px){
  .iv-map{padding:8px}
  .iv-map .mermaid{width:100%}
}

/* Compact vector legend: easier to scan on portrait monitors */
.iv-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px}
.iv-row{grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;gap:7px 14px;padding:18px 0}
.iv-code{grid-column:1;grid-row:1/3;padding-top:3px}
.iv-name{grid-column:2;grid-row:1;font-size:1rem;line-height:1.25}
.iv-row p{grid-column:2;grid-row:2;font-size:.86rem!important;line-height:1.55!important;color:var(--text-muted)!important}
@media(max-width:900px){.iv-list{grid-template-columns:1fr}.iv-row{padding:16px 0}}

/* AIV grouped model */
.iv-groups{display:grid;grid-template-columns:.85fr 1.35fr 1fr;gap:12px;margin-top:26px}
.iv-groups>div{padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--bg-card-solid);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.iv-groups>div:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.iv-groups span,.iv-axis>span{display:block;margin-bottom:10px;color:var(--text-muted);font:600 .62rem/1.2 var(--font-mono);letter-spacing:.09em}
.iv-groups strong{display:block;font-size:.92rem;line-height:1.55}.iv-groups p{margin:7px 0 0!important;font-size:.8rem!important;color:var(--text-muted)!important}
.iv-c-kn{color:var(--iv-kn)}.iv-c-cp{color:var(--iv-cp)}.iv-c-wb{color:var(--iv-wb)}.iv-c-ph{color:var(--iv-ph)}.iv-c-hm{color:var(--iv-hm)}.iv-c-ag{color:var(--iv-ag)}
.iv-axis{display:grid;grid-template-columns:120px 240px minmax(0,1fr);align-items:center;gap:18px;margin-top:14px;padding:18px 20px;border:1px dashed var(--border-strong);border-radius:14px}.iv-axis>span{margin:0}.iv-axis strong{font-family:var(--font-mono);font-size:.8rem}.iv-axis p{margin:0!important;font-size:.82rem!important;color:var(--text-muted)!important}
@media(max-width:900px){.iv-groups{grid-template-columns:1fr}.iv-axis{grid-template-columns:1fr;gap:8px}.iv-axis>span{margin-bottom:2px}}
@media(prefers-reduced-motion:reduce){.iv-groups>div{transition:none!important;transform:none!important}}

.aiv-reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.aiv-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.aiv-reveal{opacity:1!important;transform:none!important;transition:none!important}}
