/* v9e: Modules visuals */
.v9e-keys{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:6px 0 18px}
.v9e-key{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg,16px);padding:16px;display:flex;flex-direction:column;gap:10px}
.v9e-key p{margin:0;font-size:14.5px;line-height:1.45;font-weight:500}
.v9e-key-ic{position:relative;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent)}
.v9e-key-ic i{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--c);color:#fff;font:800 11px/20px var(--display,inherit);font-style:normal;text-align:center}
.v9e-lbl{font-size:13px;font-weight:700;color:var(--c);margin:0 0 8px}
.v9e-sec{padding:22px 0;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.v9e-sec>h2{display:flex;align-items:center;gap:10px;font-size:20px;margin:0 0 12px}
.v9e-sec>h2 .n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff;font:800 13px/28px var(--display,inherit);text-align:center}
.v9e-tile{display:flex;align-items:center;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg,16px);padding:12px 18px 12px 12px}
.v9e-tile p{margin:0;font-size:16px;font-weight:600;line-height:1.4;font-family:var(--display,inherit)}
.v9e-art{position:relative;flex:none;width:120px;height:90px;border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--c) 9%,var(--panel))}
.v9e-art svg{position:absolute;inset:0;width:100%;height:100%}
.v9e-art .a1{fill:color-mix(in srgb,var(--c) 22%,transparent)}.v9e-art .a2{fill:color-mix(in srgb,var(--c) 14%,transparent)}.v9e-art .a3{fill:color-mix(in srgb,var(--c) 30%,transparent)}
.v9e-art span{position:absolute;inset:0;display:grid;place-items:center;color:var(--c)}
@media(max-width:520px){.v9e-art{width:84px;height:68px}.v9e-tile p{font-size:15px}}
.v9e-fold{margin-top:12px}
.v9e-fold>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--c);padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}
.v9e-fold>summary::-webkit-details-marker{display:none}
.v9e-fold>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.v9e-fold[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.v9e-fold[open]>summary{margin-bottom:14px}
.v9e-fold .prose{font-size:15.5px;line-height:1.7;max-width:70ch}
.v9e-sec .dg{margin:0 0 6px}
.v9e-sec .dg+.dg{margin-top:14px}
.v9e-task{border:1.5px solid var(--c);border-radius:var(--r-lg,16px);background:color-mix(in srgb,var(--c) 7%,var(--panel));padding:18px;margin:0 0 6px}
.v9e-task .lbl{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--c);margin-bottom:6px}
.v9e-task h3{font-size:18px;line-height:1.35;margin:0}
/* extra diagram types */
.v9e-bars .v9e-bar{display:grid;grid-template-columns:minmax(80px,150px) 1fr auto;align-items:center;gap:12px;margin:8px 0}
.v9e-bl{font-size:14px;font-weight:600}.v9e-bl small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.v9e-track{height:16px;border-radius:999px;background:color-mix(in srgb,var(--c) 10%,transparent);overflow:hidden}
.v9e-track i{display:block;height:100%;border-radius:999px;background:var(--c)}
.v9e-bar b{font:800 15px var(--display,inherit);white-space:nowrap}
.v9e-steps ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.v9e-steps li{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r,12px);padding:10px 12px}
.v9e-sic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent)}
.v9e-steps small{display:block;color:var(--muted);font-size:12.5px}
.v9e-check ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.v9e-check li{display:flex;gap:10px;align-items:flex-start;color:var(--c)}.v9e-check li span{color:var(--text);font-size:14.5px}
.v9e-pyr{display:flex;flex-direction:column;align-items:center;gap:6px}
.v9e-pyr .dg-title,.v9e-pyr .dg-cap{align-self:stretch}
.v9e-py{text-align:center;padding:10px;border-radius:10px;background:color-mix(in srgb,var(--c) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--c) 40%,transparent)}
.v9e-py small{display:block;color:var(--muted);font-size:12px}
/* Modules page */
.v9e-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:18px 20px;margin:0 0 18px}
.v9e-hero h2{font-size:20px;margin:0}.v9e-hero p{margin:4px 0 0}
.v9e-hero .v9e-ring{color:var(--text)}
@media(max-width:620px){.v9e-hero{grid-template-columns:auto 1fr}.v9e-hero .btn{grid-column:1/-1}}
.v9e-start{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;padding:14px 18px;margin:0 0 22px;border:1.5px solid var(--teal,#19e3cf);border-radius:var(--r-lg,16px);background:color-mix(in srgb,var(--teal,#19e3cf) 8%,var(--panel))}
.v9e-start .v9e-sic{color:var(--teal-d,#0b8f82)}
.v9e-start b{font-size:16px}.v9e-start .v9e-tag{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-d,#0b8f82)}
.v9e-start span.go{margin-left:auto;font-weight:700;white-space:nowrap}
.v9e-stagering{display:flex;align-items:center;gap:12px}
.v9e-dots{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}
.v9e-dots i{width:22px;height:6px;border-radius:3px;background:var(--line)}.v9e-dots i.on{background:var(--c)}
.mod-card .mod-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

@media(max-width:560px){.v9e-keys{grid-template-columns:1fr}}
@media(max-width:900px){.lesson-grid{grid-template-columns:minmax(0,1fr)!important}}
