:root{--bg: #000;--text: rgba(255,255,255,.92);--muted: rgba(255,255,255,.65);--line: rgba(255,255,255,.12);--card: #111111;--card2: #151515;--accent: #3b82f6;--accentHover: #2563eb;--radius: 16px;--shadow: 0 22px 70px rgba(0,0,0,.55)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}.muted{color:var(--muted)}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:#000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-weight:800;letter-spacing:.2px}.nav{display:flex;align-items:center;gap:12px}.container{width:min(980px,calc(100% - 40px));margin:26px auto;flex:1}.footer{border-top:1px solid var(--line);padding:16px 18px;color:var(--muted);background:#000}.loginMain{flex:1}.btn{border:1px solid var(--line);background:#ffffff0a;color:var(--text);padding:10px 14px;border-radius:12px;cursor:pointer;font-weight:650}.btn:hover{background:#ffffff12}.btn-primary{border-color:#3b82f673;background:#3b82f6e6}.btn-primary:hover{background:#2563ebf2}.btn-ghost{background:transparent}.loginScreen{min-height:100vh;display:grid;place-items:center;background:#000}.loginCard{width:320px;padding:28px 24px;border-radius:22px;background:#111;box-shadow:0 30px 90px #000c;text-align:center}.loginLogo{width:64px;height:64px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:800;background:#3b82f6;color:#fff}.loginForm{display:grid;gap:12px}.loginInput{height:44px;padding:0 14px;border-radius:999px;border:none;background:#000;color:#fff;font-size:14px}.loginInput::placeholder{color:#ffffff80}.loginInput:focus{outline:none;box-shadow:0 0 0 2px #3b82f680}.loginBtn{height:44px;border-radius:999px;border:none;margin-top:6px;font-weight:700;cursor:pointer;background:#3b82f6;color:#fff}.loginBtn:hover{background:#2563eb}.loginBtn:disabled{opacity:.6;cursor:not-allowed}.loginError{font-size:13px;color:#ff9b9b}.loginFooter{margin-top:18px;font-size:12px;color:#ffffff8c}.loginFooter span{opacity:.6}.specDarkPage{min-height:100vh;background:#000;color:#ffffffeb}.specTopBar{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.08);background:#000000eb}.specBrand{font-weight:800;letter-spacing:.2px;color:#ffffffd9}.specBrandA{color:#00c5a5}.specBrandB{color:#ce8700;font-weight:800}.specAvatar{justify-self:end;width:46px;height:28px;border-radius:999px;display:grid;place-items:center;font-weight:800;color:#000000d9;background:#ce8700}.specTabs{list-style:none;display:flex;gap:18px;margin:0;padding:0;justify-content:center;align-items:center;font-size:20px;font-weight:900}.specTabItem{margin:0;padding:0}.specTab{height:40px;line-height:40px;background:transparent;border:none;cursor:pointer;color:#ffffff59;font:inherit;padding:0 6px}.specTab:hover{color:#ffffffb8}.specTab.active{color:#ce8700;border-top:dotted 5px #ce8700}.specWrap{width:min(980px,calc(100% - 40px));margin:28px auto 70px}.specHeader{text-align:left;margin:18px 0}.specTitle{font-size:54px;font-weight:950;letter-spacing:.2px;line-height:1.05;background:linear-gradient(90deg,#ae7300 25%,#81bd00);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.specYear{font-size:20px;font-weight:900;margin-top:8px;color:#ae7300}.specTwoCols{display:flex;gap:38px;margin-top:16px;flex-wrap:wrap}.specCol{display:flex;align-items:flex-start;gap:12px;min-width:260px}.dot{width:14px;height:14px;border-radius:50%;margin-top:6px}.dot.teal{background:#00c5a5}.dot.orange{background:#b76200}.specColTitle{font-size:22px;font-weight:900;color:#ce8700}.specColSub{font-size:18px;font-weight:800;color:#00c5a5}.specColSub2{font-size:18px;font-weight:800;color:#b76200}.tagRow{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 22px}.tagPill{border:none;cursor:pointer;padding:8px 14px;border-radius:999px;background:#ffffff0f;color:#ff9614d9;font-weight:800}.tagPill:hover{background:#ffffff17}.tagPill.on{background:#0000008c;color:#ff9614f2;box-shadow:0 0 0 1px #ff961440 inset}.lessonList{display:grid;gap:16px}.lessonCard{position:relative;border-radius:18px;padding:18px 18px 16px;background:#0000008c;box-shadow:0 30px 90px #0000008c;border:1px solid rgba(255,255,255,.06);transition:background .18s ease,border-color .18s ease,transform .18s ease}.lessonCard:hover{background:linear-gradient(90deg,#0a1e789e,#00000073);border-color:#ffffff1f;transform:translateY(-1px)}.lessonMeta{display:flex;align-items:center;gap:12px;margin-bottom:10px}.lessonLogo{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#ffffff8c;background:#ffffff0f}.lessonDt{color:#ffffff8c;font-weight:800;letter-spacing:.2px}.lessonTitle{font-size:22px;font-weight:950;margin-bottom:6px;color:#ffffffe6}.lessonSubtitle{color:#ffffffa6;font-weight:700;margin-bottom:10px}.lessonReq{color:#ffffff8c;font-weight:650;line-height:1.25;margin-bottom:12px}.reqLine{margin:2px 0}.classRow{display:flex;gap:8px;flex-wrap:wrap}.classPill{display:inline-block;padding:6px 10px;border-radius:999px;font-weight:800;color:#ffffffa6;background:#ffffff0f}.lessonBadge{position:absolute;right:18px;top:18px;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-weight:950;color:#ffffff38;background:#ffffff0a}.specEmptyDark{border:1px dashed rgba(255,255,255,.16);border-radius:14px;padding:18px;background:#ffffff08}.specEmptyDarkTitle{font-weight:900;font-size:18px;margin-bottom:6px}.specEmptyDarkText{color:#ffffff9e;font-weight:650}@media(max-width:640px){.specWrap{width:calc(100% - 24px);margin:16px auto 40px}.specTopBar{height:auto;grid-template-columns:1fr auto;grid-auto-rows:auto;row-gap:10px;padding:12px}.specTabs{grid-column:1 / -1;justify-content:flex-start;overflow-x:auto;gap:14px;font-size:16px;padding-bottom:6px;-webkit-overflow-scrolling:touch}.specTabs::-webkit-scrollbar{display:none}.specTitle{font-size:30px}.specYear{font-size:16px}.specTwoCols{gap:12px}.tagRow{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}.tagRow::-webkit-scrollbar{display:none}.lessonCard{padding:14px;border-radius:14px}.lessonTitle{font-size:17px}.lessonSubtitle,.lessonReq{font-size:13px}.lessonBadge{display:none}}
