.pf-app{--pf-blue:#2452df;--pf-purple:#5828b4;--pf-ink:#20243a;--pf-muted:#646b80;box-sizing:border-box;max-width:1180px;margin:32px auto;padding:28px;color:var(--pf-ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6;background:#f6f7fc;border-radius:24px}.pf-app *{box-sizing:border-box}.pf-app h1{font-size:clamp(28px,4vw,40px);line-height:1.2;margin:30px 0 10px;letter-spacing:-1px}.pf-app h2{font-size:23px;line-height:1.3}.pf-app a{color:var(--pf-blue);text-decoration:none}.pf-app a:hover{text-decoration:underline}.pf-app :focus-visible{outline:3px solid #b55b00;outline-offset:4px}.pf-nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid #dfe3ee}.pf-nav .pf-brand{font-weight:800;font-size:25px;margin-right:auto;color:var(--pf-purple)}.pf-brand span{font-size:14px;font-weight:500}.pf-lead{color:var(--pf-muted);margin-bottom:28px}.pf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0}.pf-stats>div{background:white;border:1px solid #e2e5ee;border-radius:16px;padding:22px}.pf-stats strong{display:block;font-size:32px;color:var(--pf-purple)}.pf-stats span{color:var(--pf-muted);font-size:14px}.pf-filters{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.pf-filters a{padding:8px 14px;border-radius:24px;background:white;border:1px solid #dfe3ee;font-size:14px}.pf-filters a[aria-current]{color:white;background:var(--pf-purple);border-color:var(--pf-purple)}.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.pf-card{background:white;border:1px solid #e0e4ef;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.pf-cover{width:100%;height:170px;object-fit:cover;display:block}.pf-placeholder{background:linear-gradient(120deg,#432391,#2358df);color:white;font-size:24px;font-weight:750;display:flex;align-items:center;padding:24px}.pf-card-body{padding:22px;display:flex;flex-direction:column;align-items:flex-start;flex:1}.pf-card h2{font-size:20px;line-height:1.4;margin:16px 0 10px}.pf-card p{font-size:14px;color:var(--pf-muted)}.pf-badge{background:#eee8fc;color:#4d2699;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:650;display:inline-block}.pf-app .pf-button,.pf-app input[type=submit]{display:inline-block;background:var(--pf-blue);color:white;border:0;border-radius:10px;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}.pf-card .pf-button{margin-top:auto;width:100%}.pf-app .pf-button:hover,.pf-app input[type=submit]:hover{background:#173cba}.pf-app progress{width:100%;height:9px;border:0;border-radius:10px;overflow:hidden;accent-color:var(--pf-purple)}.pf-app progress::-webkit-progress-bar{background:#eeeaf6}.pf-app progress::-webkit-progress-value{background:var(--pf-purple)}.pf-panel{background:white;border:1px solid #e0e4ef;border-radius:16px;padding:24px;margin:18px 0}.pf-panel label{display:block}.pf-panel input[type=text],.pf-panel input[type=password]{max-width:100%;width:380px;border:1px solid #b9c0d3;border-radius:8px;padding:12px;font:inherit}.pf-panel .login-remember label{display:flex;gap:8px;align-items:center}.pf-classroom{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px}.pf-classroom aside li{padding:12px 0;border-bottom:1px solid #eee}.pf-classroom small{display:block;color:var(--pf-muted)}.pf-classroom a[aria-current]{font-weight:750}.pf-classroom article{min-width:0}.pf-classroom article img{max-width:100%;height:auto}.pf-video iframe{width:100%;aspect-ratio:16/9;height:auto;border:0}.pf-syllabus{padding-left:26px}.pf-syllabus li{padding:10px}.pf-app form{margin:16px 0}@media(max-width:950px){.pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-classroom{grid-template-columns:1fr}}@media(max-width:600px){.pf-app{padding:18px;margin:12px auto;border-radius:12px}.pf-nav{gap:14px;font-size:14px}.pf-nav .pf-brand{width:100%}.pf-grid{grid-template-columns:1fr}.pf-stats{gap:8px}.pf-stats>div{padding:12px}.pf-stats strong{font-size:26px}.pf-stats span{font-size:12px}.pf-panel{padding:18px}.pf-filters{gap:8px}.pf-filters a{font-size:12px}}
