.achievement-notifications{position:fixed;z-index:10050;bottom:28px;left:50%;transform:translateX(-50%);width:min(460px,calc(100vw - 24px));pointer-events:none}
.achievement-toast{--achievement-color:#d8ac35;position:relative;min-height:88px;border-radius:48px;background:linear-gradient(#454b4d,#282e30);border:2px solid var(--achievement-color);box-shadow:0 6px 24px #0008,inset 0 1px 2px #fff4;color:#fff;display:flex;align-items:center;gap:12px;padding:8px 20px 8px 8px;overflow:hidden;animation:achievement-expand 5s ease-in-out both;font-family:var(--ludicon-number-font), Arial,sans-serif;box-sizing:border-box}
.achievement-circle{flex:0 0 64px;width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--achievement-color) 0deg 82deg,#252a2b 82deg 90deg,var(--achievement-color) 90deg 172deg,#252a2b 172deg 180deg,var(--achievement-color) 180deg 262deg,#252a2b 262deg 270deg,var(--achievement-color) 270deg 352deg,#252a2b 352deg);border:3px solid #191c1d;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #fff3;box-sizing:border-box}
.achievement-circle img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 2px 2px #0008)}
.achievement-copy{min-width:0;display:grid;gap:3px;animation:achievement-copy 5s ease-in-out both;text-align:left}
.achievement-copy strong{font-size:19px;font-weight:400;color:#fff}.achievement-copy span{font-size:15px;font-weight:700;overflow-wrap:anywhere;color:#fff}.achievement-copy small{font-size:12px;color:#e5e7e8}
@keyframes achievement-expand{0%{clip-path:inset(0 calc(100% - 86px) 0 0 round 48px);opacity:0;transform:translateY(12px)}8%{opacity:1;transform:translateY(0)}20%,80%{clip-path:inset(0 0 0 0 round 48px);opacity:1;transform:translateY(0)}94%{clip-path:inset(0 calc(100% - 86px) 0 0 round 48px);opacity:1}100%{clip-path:inset(0 calc(100% - 86px) 0 0 round 48px);opacity:0}}
@keyframes achievement-copy{0%,10%,94%,100%{opacity:0;transform:translateX(-12px)}24%,78%{opacity:1;transform:translateX(0)}}
.profile-achievements{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;max-width:100%}.profile-achievements:empty{display:none}
.achievement-badge{display:flex;align-items:center;gap:8px;margin:0;max-width:240px;text-align:left}.achievement-badge img{flex-shrink:0;object-fit:contain;border-radius:50%;border:3px solid var(--achievement-color);background:#202530}.achievement-badge figcaption{font-size:13px;overflow-wrap:anywhere}.achievement-badge small{display:block;font-size:11px;opacity:.85}
.achievement-form{padding:22px;max-width:720px;margin:24px 0}.achievement-form fieldset{border:0;padding:0;display:grid;gap:16px;min-width:0}.achievement-form label{display:grid;gap:6px}.achievement-form label:has(input[type=checkbox]){display:flex;align-items:center}.achievement-form input[type=color]{width:80px;min-height:44px;padding:4px}.achievement-form input{max-width:100%;box-sizing:border-box}.achievement-form-actions{display:flex;gap:10px}.achievement-form-actions button{min-width:44px;min-height:44px}.achievement-admin-list{display:grid;gap:12px}.achievement-admin-item{display:flex;align-items:center;gap:16px;padding:16px}.achievement-admin-item img{object-fit:contain;border:3px solid;border-radius:50%}.achievement-admin-item p{flex:1;min-width:0;overflow-wrap:anywhere}.achievements-admin{padding-block:32px}
@media(max-width:480px){.achievement-notifications{bottom:16px}.achievement-copy strong{font-size:16px}.achievement-copy span{font-size:13px}.achievement-toast{gap:8px;padding-right:14px}.achievement-admin-item{gap:8px}.achievement-form{padding:16px}}
@media(prefers-reduced-motion:reduce){.achievement-toast,.achievement-copy{animation:none}}
.teacher-challenge-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
.teacher-challenge-card { display:grid; grid-template-columns:88px minmax(0,1fr) auto; gap:22px; align-items:start; padding:24px; border:2px solid var(--nes-edge,#03506f); min-width:0; scroll-margin-top:110px; }
.teacher-challenge-card > div { min-width:0; }
.teacher-challenge-card h3 { margin:6px 0; overflow-wrap:anywhere; }
.teacher-challenge-card p { font-size:.88rem; line-height:1.5; }
.teacher-challenge-badge { width:88px; height:88px; object-fit:contain; image-rendering:auto; }
.teacher-challenge-copy { width:100%; }
.teacher-challenge-actions { display:grid; gap:12px; justify-items:start; }
.teacher-challenge-actions .button { max-width:230px; }
.teacher-challenge-card.is-complete { border-color:#3c9d57; }
.teacher-challenge-card .teacher-challenge-note { font-size:.8rem; color:var(--nes-muted,#526070); }
.teacher-challenge-goal { margin-bottom:6px; }
.teacher-challenge-prize { display:flex; align-items:center; gap:10px; font-size:.85rem; }
.teacher-challenge-prize img { width:48px; height:48px; object-fit:contain; }
.teacher-challenge-card progress { width:100%; accent-color:#3c9d57; }
.profile-challenges { margin:0; }
.profile-challenges .teacher-challenge-card { grid-template-columns:88px minmax(0,1fr); }
.teacher-challenges-page .portal-hero { color:#fff3cc; }
.teacher-challenges-page .portal-hero p { color:#fff3cc; }
.teacher-challenges-page .portal-hero .section-kicker { color:#ffd16b; }
@media(max-width:900px) { .teacher-challenge-card { grid-template-columns:72px minmax(0,1fr); }.teacher-challenge-actions { grid-column:2; }.teacher-challenge-badge { width:72px; height:72px; } }
@media(max-width:560px) { .teacher-challenge-card,.profile-challenges .teacher-challenge-card { grid-template-columns:1fr; padding:16px; gap:12px; }.teacher-challenge-actions { grid-column:auto; }.teacher-challenge-actions .button { max-width:100%; } }
