/* Slovra V32 — Curriculum Graph */
.v32-screen{overflow-x:hidden}.v32-shell{width:min(980px,100%);margin:0 auto;padding:18px 14px 44px;box-sizing:border-box}.v32-topbar{display:flex;align-items:center;gap:12px;max-width:980px;margin:0 auto;padding:12px 14px;box-sizing:border-box}.v32-topbar>button{width:42px;height:42px;border-radius:14px;border:1px solid var(--border-color,#2c3941);background:var(--card-bg,#172127);color:var(--text-color,#fff);font-size:20px}.v32-topbar>div{flex:1;min-width:0}.v32-topbar span,.v32-card-head span,.v32-entry-copy span{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#22d3ee}.v32-topbar strong{display:block;font-size:18px}.v32-hero,.v32-card{border:1px solid rgba(34,211,238,.18);background:linear-gradient(145deg,rgba(34,211,238,.08),rgba(168,85,247,.055)),var(--card-bg,#152027);border-radius:24px;box-shadow:0 12px 35px rgba(0,0,0,.12)}.v32-hero{padding:20px;display:flex;gap:18px;align-items:center}.v32-hero>div:first-child{flex:1;min-width:0}.v32-hero h2{font-size:24px;margin:4px 0 6px}.v32-hero p{margin:0;color:var(--muted-text,#93a3ad);line-height:1.55}.v32-hero-stat{width:112px;height:112px;flex:0 0 112px;border-radius:50%;border:8px solid rgba(34,211,238,.16);display:flex;flex-direction:column;justify-content:center;align-items:center;background:rgba(34,211,238,.06)}.v32-hero-stat strong{font-size:29px}.v32-hero-stat small{font-size:10px;color:var(--muted-text,#93a3ad);text-align:center}.v32-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.v32-summary article{padding:14px 12px;border:1px solid var(--border-color,#2a3940);border-radius:18px;background:var(--card-bg,#152027);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px}.v32-summary span{grid-row:1/3;font-size:22px;align-self:center}.v32-summary b{font-size:20px}.v32-summary small{color:var(--muted-text,#93a3ad);font-size:10px}.v32-card{padding:16px;margin-top:12px}.v32-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.v32-card-head h3{margin:2px 0 0}.v32-card-head>small{color:var(--muted-text,#93a3ad);text-align:right}.v32-tabs{display:flex;gap:7px;overflow:auto;padding:14px 0 12px;scrollbar-width:none}.v32-tabs::-webkit-scrollbar{display:none}.v32-tabs button{white-space:nowrap;border:1px solid var(--border-color,#2a3940);border-radius:999px;padding:8px 13px;background:transparent;color:var(--text-color,#fff);font-weight:800}.v32-tabs button.active{background:#22d3ee;color:#062027;border-color:#22d3ee}.v32-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.v32-node{min-width:0;padding:15px;border-radius:19px;border:1px solid var(--border-color,#2a3940);background:rgba(255,255,255,.025)}.v32-node.ready{border-color:rgba(34,197,94,.24)}.v32-node.later{border-color:rgba(245,158,11,.26)}.v32-node-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.v32-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:rgba(34,211,238,.09);font-size:20px}.v32-node-head div{min-width:0}.v32-node-head small{display:block;color:var(--muted-text,#93a3ad);font-size:9px;font-weight:900}.v32-node-head strong{display:block;margin-top:2px;font-size:15px}.v32-node-head>b{font-size:16px}.v32-objective{font-size:12px;color:var(--muted-text,#93a3ad);line-height:1.45;margin:11px 0}.v32-prereq{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 9px;border-radius:12px;background:rgba(255,255,255,.035)}.v32-prereq>span{font-size:9px;font-weight:900;padding:4px 7px;border-radius:99px;background:rgba(34,197,94,.1);color:#4ade80}.v32-node.later .v32-prereq>span{background:rgba(245,158,11,.1);color:#fbbf24}.v32-prereq small{font-size:10px;color:var(--muted-text,#93a3ad)}.v32-resources{display:grid;gap:7px;margin-top:10px}.v32-resources button{min-width:0;border:1px solid var(--border-color,#2a3940);border-radius:13px;padding:9px 10px;background:var(--card-bg,#152027);color:var(--text-color,#fff);text-align:left;display:flex;justify-content:space-between;gap:8px;align-items:center}.v32-resources button span{font-size:10px;font-weight:900;white-space:nowrap}.v32-resources button small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-text,#93a3ad)}.v32-empty-resource,.v32-loading,.v32-error{padding:16px;border-radius:14px;color:var(--muted-text,#93a3ad);background:rgba(255,255,255,.025);font-size:12px}.v32-note{margin-top:12px;padding:12px 14px;border-radius:15px;background:rgba(34,211,238,.055);color:var(--muted-text,#93a3ad);font-size:11px;line-height:1.5}.v32-entry{display:grid!important;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.v32-entry-icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:rgba(34,211,238,.12);font-size:22px}.v32-entry-copy{min-width:0}.v32-entry-copy strong,.v32-entry-copy small{display:block}.v32-entry-copy small{color:var(--muted-text,#93a3ad);margin-top:2px}.v32-entry>button,.v32-mastery-btn{border:0;border-radius:12px;padding:9px 12px;background:#22d3ee;color:#062027;font-weight:900}.v32-mastery-btn{margin-left:auto}.v30-hero{position:relative;flex-wrap:wrap}
body.light .v32-hero,body.light .v32-card,body.light .v32-summary article,body.light .v32-node,body.light .v32-resources button{background:#fff;color:#172027}body.light .v32-node{background:#f9fcfd}body.light .v32-prereq{background:#f2f7f9}
@media(max-width:720px){.v32-shell,.v32-topbar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.v32-hero{padding:16px;border-radius:20px}.v32-hero h2{font-size:20px}.v32-hero-stat{width:82px;height:82px;flex-basis:82px;border-width:6px}.v32-hero-stat strong{font-size:23px}.v32-summary{grid-template-columns:repeat(2,1fr)}.v32-grid{grid-template-columns:1fr}.v32-card{padding:13px;border-radius:20px}.v32-card-head{align-items:flex-start;flex-direction:column}.v32-card-head>small{text-align:left}.v32-entry{grid-template-columns:auto 1fr!important}.v32-entry>button{grid-column:1/-1;width:100%}.v32-resources button{align-items:flex-start;flex-direction:column}.v32-resources button small{max-width:100%}}
@media(max-width:390px){.v32-shell,.v32-topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.v32-hero-stat{display:none}.v32-summary article{padding:11px}.v32-node{padding:12px}}
