:root{--p:#713df5;--n:#141629;--m:#667085;--l:#e5e7ee}*{box-sizing:border-box}body{margin:0;background:#f7f8fc;color:#111827;font-family:Arial,sans-serif}a{text-decoration:none;color:inherit}header{height:72px;background:#fff;border-bottom:1px solid var(--l);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:fixed;inset:0 0 auto;z-index:5}.brand{display:flex;align-items:center;gap:10px}.mark{width:39px;height:39px;border-radius:11px;display:inline-grid;place-items:center;background:linear-gradient(135deg,#8b5bff,#6333e8);color:#fff;font-weight:bold}.brand b{display:block}nav{display:flex;gap:10px}nav a{border:1px solid var(--l);padding:9px 13px;border-radius:9px;font-size:12px}aside{position:fixed;top:72px;bottom:0;width:230px;background:var(--n);padding:30px 14px;color:#aeb2c7}aside a{display:block;padding:13px;border-radius:10px;margin:4px 0;font-size:14px}aside a.active{background:var(--p);color:#fff}.tag{font-size:10px;font-weight:bold;letter-spacing:.16em;color:#858aa0}.purple{color:var(--p)}main{margin-left:230px;padding:110px 5vw 60px;max-width:1450px}h1{font-size:38px;margin:5px 0 9px;letter-spacing:-.04em}.muted{color:var(--m)}.course{display:grid;grid-template-columns:1.6fr .8fr;gap:20px;margin-top:30px}.video,.summary,.panel,.cards article{background:#fff;border:1px solid var(--l);border-radius:17px;overflow:hidden}.video{aspect-ratio:16/9;background:radial-gradient(circle,#3b327a,var(--n));display:grid;place-items:center}.video video{width:100%;height:100%;object-fit:contain}.placeholder{color:#fff;font-size:48px;text-align:center}.placeholder small{display:block;font-size:12px;margin-top:15px}.summary{padding:25px}.summary li{padding:16px 5px;border-bottom:1px solid var(--l)}.section{margin-top:45px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--l);overflow:auto}.tab{border:0;background:none;padding:15px;color:var(--m);font-weight:bold}.tab.active{color:var(--p);border-bottom:3px solid var(--p)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.cards article{padding:20px}.cards img{width:100%;border-radius:10px}.cards small{color:var(--p)}.code{font-size:23px;font-weight:bold;color:var(--p);margin-top:12px}.empty{padding:30px;color:var(--m)}.login{display:grid;grid-template-columns:1.1fr .9fr;min-height:100vh}.hero{background:radial-gradient(circle at 75% 20%,#3e2f83,var(--n) 48%);color:#fff;padding:8vw;display:flex;flex-direction:column;justify-content:space-between}.hero h1{font-size:60px;max-width:600px}.hero p{color:#c9c9d8;max-width:520px;line-height:1.7}.center{min-height:100vh;display:grid;place-items:center;padding:25px}.loginCard{width:min(410px,100%);background:#fff;padding:34px;border-radius:18px}.loginCard h2{font-size:34px}.loginCard label,.panel label{display:block;font-size:12px;font-weight:bold;margin-top:16px}.loginCard input,.panel input,.panel textarea,.panel select{width:100%;padding:13px;border:1px solid #d9dde7;border-radius:10px;margin-top:7px}.panel textarea{min-height:85px}.loginCard button,.panel button{border:0;background:linear-gradient(90deg,#6d38f3,#8d5aff);color:#fff;padding:14px 20px;border-radius:10px;font-weight:bold;margin-top:22px}.loginCard button{width:100%}.error,.notice{padding:12px;border-radius:9px;background:#fff1f1;color:#a92525;margin:15px 0}.notice{background:#edfff7;color:#08784b}.panel{padding:28px;max-width:900px}.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.upload{min-height:180px;border:2px dashed #d8cff8;background:#faf9ff;border-radius:14px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;font-size:26px!important;color:var(--p);cursor:pointer}.upload b{font-size:14px;color:#111827;margin-top:10px}.upload input{width:auto;border:0}.panel h2{margin-top:0}@media(max-width:850px){aside{display:none}main{margin-left:0;padding:100px 18px 45px}.course{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.login{grid-template-columns:1fr}.hero{display:none}.two{grid-template-columns:1fr}}@media(max-width:520px){header{padding:0 15px}.brand{font-size:12px}nav a{padding:8px}.cards{grid-template-columns:1fr}h1{font-size:31px}.tabs{font-size:11px}.panel{padding:20px}}
