
.summon-stage { position: relative; margin-top: 10px; aspect-ratio: 3 / 2; overflow: hidden; border: 1px solid #e0e8f1; border-radius: 16px; background: #f3f7fc; isolation: isolate; }
.summon-art { display: block; width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 88%; }
.summon-ticket { position: absolute; left: 45%; top: 66%; width: 11%; aspect-ratio: 3 / 4; display: grid; place-items: center; overflow: hidden; border: 2px solid #285daa; border-radius: 6px; background: #e6eefb; opacity: 0; transform: translate(-50%, -10%) scale(.4); }
.summon-ticket img { width: 100%; height: 100%; object-fit: cover; }
.summon-ticket strong { position: absolute; bottom: 0; inset-inline: 0; padding: 2px; text-align: center; font-size: 11px; background: #173d6d; color: white; }
.summon-ticket[data-rarity='SR'] { border-color: #8e64b7; }
.summon-ticket[data-rarity='SSR'] { border-color: #d89b21; box-shadow: 0 5px 15px #dab36366; }
.summon-status { position: absolute; left: 8px; right: 8px; bottom: 8px; text-align: center; font-size: 12px; font-weight: 600; color: #566c89; }
.phase-charging .summon-art { animation: arcade-rock .32s ease-in-out infinite; }
.phase-charging .summon-status { color: #2463bd; }
.phase-reveal .summon-ticket { animation: arcade-dispense 1.3s cubic-bezier(.2,.65,.3,1) both; }
.teacher-draw-note { margin: 12px 0 0; font-size: 13px; color: #356847; }
@keyframes arcade-rock { 0%,100% { transform: rotate(-.6deg); } 50% { transform: rotate(.6deg) translateY(-2px); } }
@keyframes arcade-dispense { 0% { opacity: 0; transform: translate(-50%,-10%) scale(.4); } 25% { opacity: 1; } 65%,100% { opacity: 1; transform: translate(-50%,18%) scale(1.3) rotate(-7deg); } }
@media (prefers-reduced-motion: reduce) { .phase-charging .summon-art { animation: none; } .phase-reveal .summon-ticket { animation: none; opacity: 1; transform: translate(-50%,18%); } }

.teacher-dashboard .teacher-menu .menu-icon-swatch-points { background: #fff5d8 !important; color: #b77d13 !important; }
.teacher-dashboard-marker .dashboard-sidebar .teacher-menu .menu-item .menu-icon-swatch-points .anticon-trophy { display: inline-flex !important; font-size: 20px !important; color: #b77d13 !important; }
.teacher-dashboard-marker .dashboard-sidebar .teacher-menu .menu-item .menu-icon-swatch-points .anticon-trophy > svg { display: block !important; width: 1em !important; height: 1em !important; }
@media (max-width: 1023px) {
  .teacher-dashboard .teacher-menu { flex-wrap: wrap; overflow: visible; justify-content: center; }
  .teacher-dashboard .teacher-menu .menu-item { flex: 0 0 auto; width: auto; }
}
