/* Portal-specific styles (prototype) */
body.portal{background:#F3F0E8}
.demo-bar{background:#FFF1C9;color:#6B5318;text-align:center;font-size:.85rem;padding:.45rem 1rem;border-bottom:1px dashed var(--gold)}
.p-header{background:var(--ink);border-bottom:1px solid rgba(205,166,94,.25)}
.p-header .nav{height:68px}
.p-user{display:flex;align-items:center;gap:.8rem;color:#D6DDEA;font-size:.9rem}
.p-user .avatar{width:36px;height:36px;font-size:.9rem;border-style:solid;background:var(--navy-3)}
.p-user button{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:999px;padding:.4rem .9rem;cursor:pointer;font:inherit;font-size:.85rem}
.login-wrap{min-height:calc(100vh - 100px);display:grid;grid-template-columns:1fr 1fr}
.login-art{background:radial-gradient(800px 500px at 70% 0%,#24427A,transparent 60%),linear-gradient(160deg,var(--ink),var(--navy));color:#fff;padding:clamp(2rem,6vw,5rem);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.login-art::after{content:"";position:absolute;right:-150px;bottom:-150px;width:500px;height:500px;background:url("../assets/img/rings.svg") center/contain no-repeat;opacity:.45}
.login-art h1{color:#fff}
.login-form{display:flex;align-items:center;justify-content:center;padding:2rem}
.login-form .form-card{width:min(440px,100%)}
@media (max-width:820px){.login-wrap{grid-template-columns:1fr}.login-art{padding:2.5rem 6%}}
.dash{padding:2.2rem 0 4rem}
.dash-top{display:grid;grid-template-columns:1.6fr 1fr;gap:1.4rem;margin-bottom:1.4rem}
@media (max-width:860px){.dash-top{grid-template-columns:1fr}}
.enrol{background:linear-gradient(140deg,var(--ink),var(--navy-2));color:#fff;border-radius:18px;padding:1.8rem;position:relative;overflow:hidden}
.enrol::after{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;background:url("../assets/img/rings.svg") center/contain no-repeat;opacity:.4}
.enrol h2{color:#fff;margin-bottom:.2rem}
.enrol .meta{color:#BFC8DA;font-size:.92rem}
.bar{height:10px;background:rgba(255,255,255,.15);border-radius:99px;overflow:hidden;margin:.6rem 0}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2));border-radius:99px;transition:width .4s}
.card .bar{background:#ECE6D8}
.ring{--p:0;width:120px;height:120px;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--p)*1%),#ECE6D8 0);display:grid;place-items:center;margin:0 auto .8rem}
.ring span{width:94px;height:94px;border-radius:50%;background:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:1.6rem;font-weight:600;color:var(--ink)}
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.mod{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.2rem;text-decoration:none;color:var(--text);display:flex;flex-direction:column;gap:.3rem;transition:.2s}
.mod:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow);color:var(--text)}
.mod small{color:var(--gold-d);font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem}
.mod b{font-family:var(--serif);font-size:1.08rem;color:var(--ink);font-weight:600;line-height:1.3}
.mod .pc{font-size:.82rem;color:var(--muted)}
.mod.done{border-color:var(--ok)} .mod.done small{color:var(--ok)}
.side-list{list-style:none;margin:0;padding:0}
.side-list li{display:flex;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.side-list li:last-child{border:0}
.side-list b{display:block;color:var(--ink)}
.course{display:grid;grid-template-columns:320px 1fr;gap:1.6rem;padding:2rem 0 4rem;align-items:start}
@media (max-width:900px){.course{grid-template-columns:1fr}.course aside{order:2}}
.lessons{list-style:none;margin:0;padding:0}
.lessons a{display:flex;gap:.7rem;align-items:flex-start;padding:.75rem .8rem;border-radius:10px;text-decoration:none;color:var(--text);font-size:.93rem}
.lessons a:hover{background:#F6F1E4;color:var(--text)}
.lessons a[aria-current=true]{background:var(--navy);color:#fff}
.lessons a[aria-current=true] .tick{border-color:var(--gold-2)}
.tick{flex:0 0 22px;height:22px;border-radius:50%;border:2px solid #C9BFA6;display:grid;place-items:center;font-size:.75rem;font-weight:800;margin-top:.1rem}
.tick.on{background:var(--ok);border-color:var(--ok);color:#fff}
.lessons small{display:block;opacity:.7;font-size:.8rem}
.video{aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;position:relative}
.video iframe{width:100%;height:100%;border:0}
.poster{position:absolute;inset:0;background:radial-gradient(600px 300px at 70% 0%,#24427A,transparent 60%),linear-gradient(160deg,var(--ink),var(--navy));display:grid;place-items:center;text-align:center;color:#C8D0E0;padding:1rem}
.poster .play{width:78px;height:78px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-size:1.8rem;margin:0 auto 1rem}
.lesson-actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:space-between;margin:1.2rem 0}
.done-msg{color:var(--ok);font-weight:700}
.enrol .eyebrow,.login-art .eyebrow,.hero .eyebrow,.page-hero .eyebrow{color:var(--gold-2)}
@media (max-width:860px){.dash-top[style]{grid-template-columns:1fr!important}}
.mod .bar{background:#ECE6D8;margin:.5rem 0 .2rem}.mod b{min-height:2.6em}.side-list .tbc{align-self:flex-start;flex:0 0 auto}
.p-header .brand img{height:48px}
